Commit 848960e5 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull sound updates from Takashi Iwai:
 "This became again a busy development cycle.  There are few ALSA core
  updates (merely API cleanups and sparse fixes), with the majority of
  other changes are found in ASoC scene.

  Here are some highlights:

  ALSA core:
   - More helper macros for sparse warning fixes (e.g. bitwise types)
   - Slight optimization of PCM OSS locks
   - Make common handling for PCM / compress buffers (for SOF)

  ASoC:
   - Lots of code refactoring and modernization for (still ongoing)
     componentization works
   - Conversion of SND_SOC_ALL_CODECS to use imply
   - Continued refactoring and fixing of the Intel SOF/SST support,
     including the initial (but still incomplete) SoundWire support
   - SoundWire and more advanced clocking support for Realtek RT5682
   - Support for amlogic GX, Meson 8, Meson 8B and T9015 DAC, Broadcom
     DSL/PON, Ingenic JZ4760 and JZ4770, Realtek RL6231, and TI TAS2563
     and TLV320ADCX140

  HD-audio:
   - Optimizations in HDMI jack handling
   - A few new quirks and fixups for Realtek codecs

  USB-audio:
   - Delayed registration support
   - New quirks for Motu, Kingston, Presonus"

* tag 'sound-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (415 commits)
  ALSA: usb-audio: Fix case when USB MIDI interface has more than one extra endpoint descriptor
  Revert "ALSA: uapi: Drop asound.h inclusion from asoc.h"
  ALSA: hda/realtek - Remove now-unnecessary XPS 13 headphone noise fixups
  ALSA: hda/realtek - Set principled PC Beep configuration for ALC256
  ALSA: doc: Document PC Beep Hidden Register on Realtek ALC256
  ALSA: hda/realtek - a fake key event is triggered by running shutup
  ALSA: hda: default enable CA0132 DSP support
  ASoC: amd: acp3x-pcm-dma: clean up two indentation issues
  ASoC: tlv320adcx140: Remove undocumented property
  ASoC: Intel: sof_sdw: Add Volteer support with RT5682 SNDW helper function
  ASoC: Intel: common: add match table for TGL RT5682 SoundWire driver
  ASoC: Intel: boards: add sof_sdw machine driver
  ASoC: Intel: soc-acpi: update topology and driver name for SoundWire platforms
  ASoC: rt5682: move DAI clock registry to I2S mode
  ASoC: pxa: magician: convert to use i2c_new_client_device()
  ASoC: SOF: Intel: hda-ctrl: add reset cycle before parsing capabilities
  Asoc: SOF: Intel: hda: check SoundWire wakeen interrupt in irq thread
  ASoC: SOF: Intel: hda: add WAKEEN interrupt support for SoundWire
  ASoC: SOF: Intel: hda: add parameter to control SoundWire clock stop quirks
  ASoC: SOF: Intel: hda: merge IPC, stream and SoundWire interrupt handlers
  ...
parents bc3b3f4b 5c6cd702
Loading
Loading
Loading
Loading
+113 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/amlogic,aiu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Amlogic AIU audio output controller

maintainers:
  - Jerome Brunet <jbrunet@baylibre.com>

properties:
  $nodename:
    pattern: "^audio-controller@.*"

  "#sound-dai-cells":
    const: 2

  compatible:
    items:
      - enum:
        - amlogic,aiu-gxbb
        - amlogic,aiu-gxl
        - amlogic,aiu-meson8
        - amlogic,aiu-meson8b
      - const:
          amlogic,aiu

  clocks:
    items:
      - description: AIU peripheral clock
      - description: I2S peripheral clock
      - description: I2S output clock
      - description: I2S master clock
      - description: I2S mixer clock
      - description: SPDIF peripheral clock
      - description: SPDIF output clock
      - description: SPDIF master clock
      - description: SPDIF master clock multiplexer

  clock-names:
    items:
      - const: pclk
      - const: i2s_pclk
      - const: i2s_aoclk
      - const: i2s_mclk
      - const: i2s_mixer
      - const: spdif_pclk
      - const: spdif_aoclk
      - const: spdif_mclk
      - const: spdif_mclk_sel

  interrupts:
    items:
      - description: I2S interrupt line
      - description: SPDIF interrupt line

  interrupt-names:
    items:
      - const: i2s
      - const: spdif

  reg:
    maxItems: 1

  resets:
    maxItems: 1

required:
  - "#sound-dai-cells"
  - compatible
  - clocks
  - clock-names
  - interrupts
  - interrupt-names
  - reg
  - resets

examples:
  - |
    #include <dt-bindings/clock/gxbb-clkc.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/reset/amlogic,meson-gxbb-reset.h>

    aiu: audio-controller@5400 {
        compatible = "amlogic,aiu-gxl", "amlogic,aiu";
        #sound-dai-cells = <2>;
        reg = <0x0 0x5400 0x0 0x2ac>;
        interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>,
                     <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
        interrupt-names = "i2s", "spdif";
        clocks = <&clkc CLKID_AIU_GLUE>,
                 <&clkc CLKID_I2S_OUT>,
                 <&clkc CLKID_AOCLK_GATE>,
                 <&clkc CLKID_CTS_AMCLK>,
                 <&clkc CLKID_MIXER_IFACE>,
                 <&clkc CLKID_IEC958>,
                 <&clkc CLKID_IEC958_GATE>,
                 <&clkc CLKID_CTS_MCLK_I958>,
                 <&clkc CLKID_CTS_I958>;
        clock-names = "pclk",
                      "i2s_pclk",
                      "i2s_aoclk",
                      "i2s_mclk",
                      "i2s_mixer",
                      "spdif_pclk",
                      "spdif_aoclk",
                      "spdif_mclk",
                      "spdif_mclk_sel";
        resets = <&reset RESET_AIU>;
    };
+51 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/amlogic,g12a-toacodec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Amlogic G12a Internal DAC Control Glue

maintainers:
  - Jerome Brunet <jbrunet@baylibre.com>

properties:
  $nodename:
    pattern: "^audio-controller@.*"

  "#sound-dai-cells":
    const: 1

  compatible:
    oneOf:
      - items:
        - const:
            amlogic,g12a-toacodec
      - items:
        - enum:
          - amlogic,sm1-toacodec
        - const:
            amlogic,g12a-toacodec

  reg:
    maxItems: 1

  resets:
    maxItems: 1

required:
  - "#sound-dai-cells"
  - compatible
  - reg
  - resets

examples:
  - |
    #include <dt-bindings/reset/amlogic,meson-g12a-audio-reset.h>

    toacodec: audio-controller@740 {
        compatible = "amlogic,g12a-toacodec";
        reg = <0x0 0x740 0x0 0x4>;
        #sound-dai-cells = <1>;
        resets = <&clkc_audio AUD_RESET_TOACODEC>;
    };
+113 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/amlogic,gx-sound-card.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Amlogic GX sound card

maintainers:
  - Jerome Brunet <jbrunet@baylibre.com>

properties:
  compatible:
    items:
      - const: amlogic,gx-sound-card

  audio-aux-devs:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    description: list of auxiliary devices

  audio-routing:
    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
    minItems: 2
    description: |-
      A list of the connections between audio components. Each entry is a
      pair of strings, the first being the connection's sink, the second
      being the connection's source.

  audio-widgets:
    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
    minItems: 2
    description: |-
      A list off component DAPM widget. Each entry is a pair of strings,
      the first being the widget type, the second being the widget name

  model:
    $ref: /schemas/types.yaml#/definitions/string
    description: User specified audio sound card name

patternProperties:
  "^dai-link-[0-9]+$":
    type: object
    description: |-
      dai-link child nodes:
        Container for dai-link level properties and the CODEC sub-nodes.
        There should be at least one (and probably more) subnode of this type

    properties:
      dai-format:
        $ref: /schemas/types.yaml#/definitions/string
        enum: [ i2s, left-j, dsp_a ]

      mclk-fs:
        $ref: /schemas/types.yaml#/definitions/uint32
        description: |-
          Multiplication factor between the frame rate and master clock
          rate

      sound-dai:
        $ref: /schemas/types.yaml#/definitions/phandle
        description: phandle of the CPU DAI

    patternProperties:
      "^codec-[0-9]+$":
        type: object
        description: |-
          Codecs:
          dai-link representing backend links should have at least one subnode.
          One subnode for each codec of the dai-link. dai-link representing
          frontend links have no codec, therefore have no subnodes

        properties:
          sound-dai:
            $ref: /schemas/types.yaml#/definitions/phandle
            description: phandle of the codec DAI

        required:
          - sound-dai

    required:
      - sound-dai

required:
  - model
  - dai-link-0

examples:
  - |
    sound {
        compatible = "amlogic,gx-sound-card";
        model = "GXL-ACME-S905X-FOO";
        audio-aux-devs = <&amp>;
        audio-routing = "I2S ENCODER I2S IN", "I2S FIFO Playback";

        dai-link-0 {
               sound-dai = <&i2s_fifo>;
        };

        dai-link-1 {
                sound-dai = <&i2s_encoder>;
                dai-format = "i2s";
                mclk-fs = <256>;

                codec-0 {
                        sound-dai = <&codec0>;
                };

                codec-1 {
                        sound-dai = <&codec1>;
                };
        };
    };
+58 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/amlogic,t9015.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Amlogic T9015 Internal Audio DAC

maintainers:
  - Jerome Brunet <jbrunet@baylibre.com>

properties:
  $nodename:
    pattern: "^audio-controller@.*"

  "#sound-dai-cells":
    const: 0

  compatible:
    items:
      - const: amlogic,t9015

  clocks:
    items:
      - description: Peripheral clock

  clock-names:
    items:
      - const: pclk

  reg:
    maxItems: 1

  resets:
    maxItems: 1

required:
  - "#sound-dai-cells"
  - compatible
  - reg
  - clocks
  - clock-names
  - resets

examples:
  - |
    #include <dt-bindings/clock/g12a-clkc.h>
    #include <dt-bindings/reset/amlogic,meson-g12a-reset.h>

    acodec: audio-controller@32000 {
        compatible = "amlogic,t9015";
        reg = <0x0 0x32000 0x0 0x14>;
        #sound-dai-cells = <0>;
        clocks = <&clkc CLKID_AUDIO_CODEC>;
        clock-names = "pclk";
        resets = <&reset RESET_AUDIO_CODEC>;
    };
+29 −0
Original line number Diff line number Diff line
Broadcom DSL/PON BCM63xx Audio I2S controller

Required properties:
- compatible:     Should be "brcm,bcm63xx-i2s".
- #address-cells: 32bit valued, 1 cell.
- #size-cells:    32bit valued, 0 cell.
- reg:            Should contain audio registers location and length
- interrupts:     Should contain the interrupt for the controller.
- clocks:         Must contain an entry for each entry in clock-names.
                  Please refer to clock-bindings.txt.
- clock-names:    One of each entry matching the clocks phandles list:
                  - "i2sclk" (generated clock) Required.
                  - "i2sosc" (fixed 200MHz clock) Required.

(1) : The generated clock is required only when any of TX and RX
      works on Master Mode.
(2) : The fixed 200MHz clock is from internal chip and always on

Example:

		i2s: bcm63xx-i2s {
			#address-cells = <1>;
			#size-cells = <0>;
			compatible = "brcm,bcm63xx-i2s";
			reg = <0xFF802080 0xFF>;
			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&i2sclk>, <&osc>;
			clock-names = "i2sclk","i2sosc";
		};
Loading