Commit 3f1b210a authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull sound updates from Takashi Iwai:
 "There have been some significant changes in the core side, both for
  ALSA and ASoC, while lots of development have been seen in SOF, as
  well as many small fixes/improvements for ASoC codecs and platforms.
  Below is a highlight in this cycle:

  Core:
   - The unification of PCM vmalloc buffer allocation helpers into the
     standard API
   - Clean up of the default PCM mmap handling for vmalloc & SG-buffer
   - Fix potential races at ALSA timer open
   - A few new PCM API extensions; just preliminary core changes, the
     actual changes in drivers will be merged in 5.6
   - Continued ASoC componentization works; now almost everything is a
     common ASoC component object. A lot of refactoring and
     simplification have been done along with it.

  ASoC:
   - Many fixes to the Sound Open Firmware (SOF) code
   - Wake on voice support for Chromebooks
   - SPI support and trigger word detection for RT5677
   - New drivers for Analog Devices ADAU7118, Intel Cannonlake systems
     with RT1011 and RT5682, Texas Instruments TAS2562 and TAS2770

  HD-audio:
   - Improved Intel DSP configuration / probe code for SOF
   - Plumbing the legacy HD-audio driver with Intel SOF HDMI
   - DP-MST support for Nvidia HDMI codecs
   - Realtek quirks cleanups and new additions as usual

  Others:
   - Lots of refactoring and cleanups for FireWire; period-size sharing,
     h/w IRQ interval configuration, clock recovery improvements, etc
   - USB-audio: Scarlett mixer quirks
   - Cleanups of PCM calls in various drivers (including media and USB)
     to adapt the core API changes"

* tag 'sound-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (497 commits)
  ALSA: usb-audio: Fix Focusrite Scarlett 6i6 gen1 - input handling
  ALSA: hda/realtek - Enable internal speaker of ASUS UX431FLC
  ALSA: aloop: Fix dependency on timer API
  ASoC: DMI long name - avoid to add board name if matches with product name
  ASoC: improve the DMI long card code in asoc-core
  ASoC: rsnd: fix DALIGN register for SSIU
  ALSA: aloop: Avoid unexpected timer event callback tasklets
  ALSA: aloop: Remove redundant locking in timer open function
  ASoC: component: Add sync_stop PCM ops
  ASoC: pcm: Make ioctl ops optional
  ALSA: hda/hdmi - Clear codec->relaxed_resume flag at unbinding
  ALSA: hda - Disable audio component for legacy Nvidia HDMI codecs
  ALSA: cs4236: fix error return comparison of an unsigned integer
  ALSA: usb-audio: Fix NULL dereference at parsing BADD
  ALSA: usb-audio: Fix Scarlett 6i6 Gen 2 port data
  ALSA: hda/realtek - Enable the headset-mic on a Xiaomi's laptop
  ALSA: hda/realtek - Move some alc236 pintbls to fallback table
  ALSA: hda/realtek - Move some alc256 pintbls to fallback table
  ALSA: docs: Update about the new PCM sync_stop ops
  ALSA: pcm: Add card sync_irq field
  ...
parents 361b0d28 bf2aa5ca
Loading
Loading
Loading
Loading
+85 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/adi,adau7118.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#


title: Analog Devices ADAU7118 8 Channel PDM to I2S/TDM Converter

maintainers:
  - Nuno Sá <nuno.sa@analog.com>

description: |
  Analog Devices ADAU7118 8 Channel PDM to I2S/TDM Converter over I2C or HW
  standalone mode.
  https://www.analog.com/media/en/technical-documentation/data-sheets/ADAU7118.pdf

properties:
  compatible:
    enum:
      - adi,adau7118

  reg:
    maxItems: 1

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

  iovdd-supply:
    description: Digital Input/Output Power Supply.

  dvdd-supply:
    description: Internal Core Digital Power Supply.

  adi,decimation-ratio:
    description: |
      This property set's the decimation ratio of PDM to PCM audio data.
    allOf:
      - $ref: /schemas/types.yaml#/definitions/uint32
      - enum: [64, 32, 16]
        default: 64

  adi,pdm-clk-map:
    description: |
      The ADAU7118 has two PDM clocks for the four Inputs. Each input must be
      assigned to one of these two clocks. This property set's the mapping
      between the clocks and the inputs.
    allOf:
      - $ref: /schemas/types.yaml#/definitions/uint32-array
      - minItems: 4
        maxItems: 4
        items:
          maximum: 1
        default: [0, 0, 1, 1]

required:
  - "#sound-dai-cells"
  - compatible
  - iovdd-supply
  - dvdd-supply

examples:
  - |
    i2c {
        /* example with i2c support */
        #address-cells = <1>;
        #size-cells = <0>;
        adau7118_codec: audio-codec@14 {
                compatible = "adi,adau7118";
                reg = <0x14>;
                #sound-dai-cells = <0>;
                iovdd-supply = <&supply>;
                dvdd-supply = <&supply>;
                adi,pdm-clk-map = <1 1 0 0>;
                adi,decimation-ratio = <16>;
        };
    };

    /* example with hw standalone mode */
    adau7118_codec_hw: adau7118-codec-hw {
            compatible = "adi,adau7118";
            #sound-dai-cells = <0>;
            iovdd-supply = <&supply>;
            dvdd-supply = <&supply>;
    };
+267 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-codec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A10 Codec Device Tree Bindings

maintainers:
  - Chen-Yu Tsai <wens@csie.org>
  - Maxime Ripard <maxime.ripard@bootlin.com>

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

  compatible:
    enum:
      - allwinner,sun4i-a10-codec
      - allwinner,sun6i-a31-codec
      - allwinner,sun7i-a20-codec
      - allwinner,sun8i-a23-codec
      - allwinner,sun8i-h3-codec
      - allwinner,sun8i-v3s-codec

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: Bus Clock
      - description: Module Clock

  clock-names:
    items:
      - const: apb
      - const: codec

  dmas:
    items:
      - description: RX DMA Channel
      - description: TX DMA Channel

  dma-names:
    items:
      - const: rx
      - const: tx

  resets:
    maxItems: 1

  allwinner,audio-routing:
    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.
    allOf:
      - $ref: /schemas/types.yaml#definitions/non-unique-string-array
      - minItems: 2
        maxItems: 18
        items:
          enum:
            # Audio Pins on the SoC
            - HP
            - HPCOM
            - LINEIN
            - LINEOUT
            - MIC1
            - MIC2
            - MIC3

            # Microphone Biases from the SoC
            - HBIAS
            - MBIAS

            # Board Connectors
            - Headphone
            - Headset Mic
            - Line In
            - Line Out
            - Mic
            - Speaker

  allwinner,codec-analog-controls:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: Phandle to the codec analog controls in the PRCM

  allwinner,pa-gpios:
    description: GPIO to enable the external amplifier

required:
  - "#sound-dai-cells"
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - dmas
  - dma-names

allOf:
  - if:
      properties:
        compatible:
          enum:
            - allwinner,sun6i-a31-codec
            - allwinner,sun8i-a23-codec
            - allwinner,sun8i-h3-codec
            - allwinner,sun8i-v3s-codec

    then:
      if:
        properties:
          compatible:
            const: allwinner,sun6i-a31-codec

      then:
        required:
          - resets
          - allwinner,audio-routing

      else:
        required:
          - resets
          - allwinner,audio-routing
          - allwinner,codec-analog-controls

  - if:
      properties:
        compatible:
          enum:
            - allwinner,sun6i-a31-codec

    then:
      properties:
        allwinner,audio-routing:
          items:
            enum:
              - HP
              - HPCOM
              - LINEIN
              - LINEOUT
              - MIC1
              - MIC2
              - MIC3
              - HBIAS
              - MBIAS
              - Headphone
              - Headset Mic
              - Line In
              - Line Out
              - Mic
              - Speaker

  - if:
      properties:
        compatible:
          enum:
            - allwinner,sun8i-a23-codec

    then:
      properties:
        allwinner,audio-routing:
          items:
            enum:
              - HP
              - HPCOM
              - LINEIN
              - MIC1
              - MIC2
              - HBIAS
              - MBIAS
              - Headphone
              - Headset Mic
              - Line In
              - Line Out
              - Mic
              - Speaker

  - if:
      properties:
        compatible:
          enum:
            - allwinner,sun8i-h3-codec

    then:
      properties:
        allwinner,audio-routing:
          items:
            enum:
              - HP
              - HPCOM
              - LINEIN
              - LINEOUT
              - MIC1
              - MIC2
              - HBIAS
              - MBIAS
              - Headphone
              - Headset Mic
              - Line In
              - Line Out
              - Mic
              - Speaker

  - if:
      properties:
        compatible:
          enum:
            - allwinner,sun8i-v3s-codec

    then:
      properties:
        allwinner,audio-routing:
          items:
            enum:
              - HP
              - HPCOM
              - MIC1
              - HBIAS
              - Headphone
              - Headset Mic
              - Line In
              - Line Out
              - Mic
              - Speaker

additionalProperties: false

examples:
  - |
    codec@1c22c00 {
        #sound-dai-cells = <0>;
        compatible = "allwinner,sun7i-a20-codec";
        reg = <0x01c22c00 0x40>;
        interrupts = <0 30 4>;
        clocks = <&apb0_gates 0>, <&codec_clk>;
        clock-names = "apb", "codec";
        dmas = <&dma 0 19>, <&dma 0 19>;
        dma-names = "rx", "tx";
    };

  - |
    codec@1c22c00 {
        #sound-dai-cells = <0>;
        compatible = "allwinner,sun6i-a31-codec";
        reg = <0x01c22c00 0x98>;
        interrupts = <0 29 4>;
        clocks = <&ccu 61>, <&ccu 135>;
        clock-names = "apb", "codec";
        resets = <&ccu 42>;
        dmas = <&dma 15>, <&dma 15>;
        dma-names = "rx", "tx";
        allwinner,audio-routing =
            "Headphone", "HP",
            "Speaker", "LINEOUT",
            "LINEIN", "Line In",
            "MIC1", "MBIAS",
            "MIC1", "Mic",
            "MIC2", "HBIAS",
            "MIC2", "Headset Mic";
    };

...
+38 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/allwinner,sun8i-a23-codec-analog.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A23 Analog Codec Device Tree Bindings

maintainers:
  - Chen-Yu Tsai <wens@csie.org>
  - Maxime Ripard <maxime.ripard@bootlin.com>

properties:
  compatible:
    enum:
      # FIXME: This is documented in the PRCM binding, but needs to be
      # migrated here at some point
      # - allwinner,sun8i-a23-codec-analog
      - allwinner,sun8i-h3-codec-analog
      - allwinner,sun8i-v3s-codec-analog

  reg:
    maxItems: 1

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    codec_analog: codec-analog@1f015c0 {
      compatible = "allwinner,sun8i-h3-codec-analog";
      reg = <0x01f015c0 0x4>;
    };

...
+3 −2
Original line number Diff line number Diff line
Audio Binding for Arndale boards

Required properties:
- compatible : Can be the following,
			"samsung,arndale-rt5631"
- compatible : Can be one of the following:
		"samsung,arndale-rt5631",
		"samsung,arndale-wm1811"

- samsung,audio-cpu: The phandle of the Samsung I2S controller
- samsung,audio-codec: The phandle of the audio codec
+36 −0
Original line number Diff line number Diff line
fsl,mqs audio CODEC

Required properties:
  - compatible : Must contain one of "fsl,imx6sx-mqs", "fsl,codec-mqs"
		"fsl,imx8qm-mqs", "fsl,imx8qxp-mqs".
  - clocks : A list of phandles + clock-specifiers, one for each entry in
	     clock-names
  - clock-names : "mclk" - must required.
		  "core" - required if compatible is "fsl,imx8qm-mqs", it
		           is for register access.
  - gpr : A phandle of General Purpose Registers in IOMUX Controller.
	  Required if compatible is "fsl,imx6sx-mqs".

Required if compatible is "fsl,imx8qm-mqs":
  - power-domains: A phandle of PM domain provider node.
  - reg: Offset and length of the register set for the device.

Example:

mqs: mqs {
	compatible = "fsl,imx6sx-mqs";
	gpr = <&gpr>;
	clocks = <&clks IMX6SX_CLK_SAI1>;
	clock-names = "mclk";
	status = "disabled";
};

mqs: mqs@59850000 {
	compatible = "fsl,imx8qm-mqs";
	reg = <0x59850000 0x10000>;
	clocks = <&clk IMX8QM_AUD_MQS_IPG>,
		 <&clk IMX8QM_AUD_MQS_HMCLK>;
	clock-names = "core", "mclk";
	power-domains = <&pd_mqs0>;
	status = "disabled";
};
Loading