Commit a9e6060b authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull sound updates from Takashi Iwai:
 "We've received a lot of activities in this cycle, mostly about leaf
  driver codes rather than the core part, but with a good mixture of
  code cleanups and new driver additions. Below are some highlights:

  ASoC:
   - Support for automatically enumerating DAIs from standards
     conforming SoundWire SDCA devices; not much used as of this
     writing, rather for future implementations
   - Conversion of quite a few drivers to newer GPIO APIs
   - Continued cleanups and helper usages in allover places
   - Support for a wider range of Intel AVS platforms
   - Support for AMD ACP 7.x platforms, Cirrus Logic CS35L63 and CS48L32
     Everest Semiconductor ES8375 and ES8389, Longsoon-1 AC'97
     controllers, nVidia Tegra264, Richtek ALC203 and RT9123 and
     Rockchip SAI controllers

  HD-audio:
   - Lots of cleanups of TAS2781 codec drivers
   - A new HD-audio control bound via ACPI for Nvidia
   - Support for Tegra264, Intel WCL, usual new codec quirks

  USB-audio:
   - Fix a race at removal of MIDI device
   - Pioneer DJM-V10 support, Scarlett2 driver cleanups

  Misc:
   - Cleanups of deprecated PCI functions
   - Removal of unused / dead function codes"

* tag 'sound-6.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (364 commits)
  firmware: cs_dsp: Fix OOB memory read access in KUnit test
  ASoC: codecs: add support for ES8375
  ASoC: dt-bindings: Add Everest ES8375 audio CODEC
  ALSA: hda: acpi: Make driver's match data const static
  ALSA: hda: acpi: Use SYSTEM_SLEEP_PM_OPS()
  ALSA: atmel: Replace deprecated strcpy() with strscpy()
  ALSA: core: fix up bus match const issues.
  ASoC: wm_adsp: Make cirrus_dir const
  ASoC: tegra: Tegra264 support in isomgr_bw
  ASoC: tegra: AHUB: Add Tegra264 support
  ASoC: tegra: ADX: Add Tegra264 support
  ASoC: tegra: AMX: Add Tegra264 support
  ASoC: tegra: I2S: Add Tegra264 support
  ASoC: tegra: Update PLL rate for Tegra264
  ASoC: tegra: ASRC: Update ARAM address
  ASoC: tegra: ADMAIF: Add Tegra264 support
  ASoC: tegra: CIF: Add Tegra264 support
  dt-bindings: ASoC: Document Tegra264 APE support
  dt-bindings: ASoC: admaif: Add missing properties
  ASoC: dt-bindings: audio-graph-card2: reference audio-graph routing property
  ...
parents 11147c16 534e9cf3
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ properties:
      - const: nvidia,tegra210-aconnect
      - items:
          - enum:
              - nvidia,tegra264-aconnect
              - nvidia,tegra234-aconnect
              - nvidia,tegra186-aconnect
              - nvidia,tegra194-aconnect
+3 −5
Original line number Diff line number Diff line
@@ -18,11 +18,7 @@ properties:
  label:
    maxItems: 1
  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.
    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
    $ref: audio-graph.yaml#/properties/routing
  aux-devs:
    description: |
      List of phandles pointing to auxiliary devices, such
@@ -39,6 +35,8 @@ properties:
    description: Codec to Codec node
  hp-det-gpios:
    $ref: audio-graph.yaml#/properties/hp-det-gpios
  mic-det-gpios:
    $ref: audio-graph.yaml#/properties/mic-det-gpios
  widgets:
    $ref: audio-graph.yaml#/properties/widgets

+195 −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/cirrus,cs48l32.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cirrus Logic CS48L32 audio DSP.

maintainers:
  - patches@opensource.cirrus.com

description: |
  The CS48L32 is a high-performance low-power audio DSP for smartphones and
  other portable audio devices. The CS48L32 combines a programmable Halo Core
  DSP with a variety of power-efficient fixed-function audio processors.

  See also the binding headers:

    include/dt-bindings/sound/cs48l32.yaml

allOf:
  - $ref: /schemas/spi/spi-peripheral-props.yaml#
  - $ref: dai-common.yaml#

properties:
  compatible:
    enum:
      - cirrus,cs48l32

  reg:
    description: SPI chip-select number.
    maxItems: 1

  spi-max-frequency:
    maximum: 25000000

  vdd-a-supply:
    description: Regulator supplying VDD_A

  vdd-d-supply:
    description: Regulator supplying VDD_D

  vdd-io-supply:
    description: Regulator supplying VDD_IO

  vdd-cp-supply:
    description: Regulator supplying VDD_CP

  reset-gpios:
    description:
      One entry specifying the GPIO controlling /RESET. Although optional,
      it is strongly recommended to use a hardware reset.
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: The clock supplied on MCLK1

  clock-names:
    const: mclk1

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

  cirrus,in-type:
    description: |
      A list of input type settings for each ADC input.
      Inputs are one of these types:
        CS48L32_IN_TYPE_DIFF : analog differential (default)
        CS48L32_IN_TYPE_SE :   analog single-ended

      The type of the left (L) and right (R) channel on each input is
      independently configured, as are the two groups of pins muxable to
      the input (referred to in the datasheet as "1" and "2").

    $ref: /schemas/types.yaml#/definitions/uint32-array
    items:
      - description:
          IN1L_1 analog input type. One of the CS48L32_IN_TYPE_xxx.
        minimum: 0
        maximum: 1
        default: 0
      - description:
          IN1R_1 analog input type. One of the CS48L32_IN_TYPE_xxx.
        minimum: 0
        maximum: 1
        default: 0
      - description:
          IN1L_2 analog input type. One of the CS48L32_IN_TYPE_xxx.
        minimum: 0
        maximum: 1
        default: 0
      - description:
          IN1R_2 analog input type. One of the CS48L32_IN_TYPE_xxx.
        minimum: 0
        maximum: 1
        default: 0

  cirrus,pdm-sup:
    description: |
      Indicate which MICBIAS output supplies bias to the microphone.
      There is one cell per input (IN1, IN2, ...).

      One of the CS48L32_MICBIAS_xxx values.
        CS48L32_PDM_SUP_VOUT_MIC : mic biased from VOUT_MIC
        CS48L32_PDM_SUP_MICBIAS1 : mic biased from MICBIAS1

      Also see the INn_PDM_SUP field in the datasheet.
    $ref: /schemas/types.yaml#/definitions/uint32-array
    items:
      - description: IN1 PDM supply source
        minimum: 0
        maximum: 1
        default: 0
      - description: IN2 PDM supply source
        minimum: 0
        maximum: 1
        default: 0

required:
  - compatible
  - reg
  - vdd-a-supply
  - vdd-d-supply
  - vdd-io-supply
  - vdd-cp-supply

additionalProperties: false

examples:
  - |
    #include <dt-bindings/sound/cs48l32.h>

    spi@e0006000 {
        #address-cells = <1>;
        #size-cells = <0>;
        reg = <0xe0006000 0x1000>;

        codec@1 {
            compatible = "cirrus,cs48l32";

            reg = <0x1>;
            spi-max-frequency = <2500000>;

            vdd-a-supply = <&regulator_1v8>;
            vdd-d-supply = <&regulator_1v2>;
            vdd-io-supply = <&regulator_1v8>;
            vdd-cp-supply = <&regulator_1v8>;

            reset-gpios = <&gpio 0 0>;

            clocks = <&clks 0>;
            clock-names = "mclk1";

            interrupt-parent = <&gpio0>;
            interrupts = <56 8>;

            #sound-dai-cells = <1>;

            cirrus,in-type = <
                CS48L32_IN_TYPE_DIFF CS48L32_IN_TYPE_DIFF
                CS48L32_IN_TYPE_SE   CS48L32_IN_TYPE_SE
            >;

            cirrus,pdm-sup = <
              CS48L32_PDM_SUP_MICBIAS1 CS48L32_PDM_SUP_MICBIAS1
            >;
        };
    };

#
# Minimal config
#
  - |
    #include <dt-bindings/sound/cs48l32.h>

    spi@e0006000 {
        #address-cells = <1>;
        #size-cells = <0>;
        reg = <0xe0006000 0x1000>;

        codec@1 {
            compatible = "cirrus,cs48l32";

            reg = <0x1>;

            vdd-a-supply = <&regulator_1v8>;
            vdd-d-supply = <&regulator_1v2>;
            vdd-io-supply = <&regulator_1v8>;
            vdd-cp-supply = <&regulator_1v8>;
        };
    };
+71 −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/everest,es8375.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Everest ES8375 audio CODEC

maintainers:
  - Michael Zhang <zhangyi@everest-semi.com>

allOf:
  - $ref: dai-common.yaml#

properties:
  compatible:
    const: everest,es8375

  reg:
    maxItems: 1

  clocks:
    items:
      - description: clock for master clock (MCLK)

  clock-names:
    items:
      - const: mclk

  vdda-supply:
    description:
      Analogue power supply.

  vddd-supply:
    description:
      Interface power supply.

  everest,mclk-src:
    $ref: /schemas/types.yaml#/definitions/uint8
    description: |
      Represents the MCLK/SCLK pair pins used as the internal clock.
      0 represents selecting MCLK.
      1 represents selecting SCLK.
    enum: [0, 1]
    default: 0

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

required:
  - compatible
  - reg
  - "#sound-dai-cells"
  - vdda-supply
  - vddd-supply

additionalProperties: false

examples:
  - |
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;
      es8375: codec@18 {
        compatible = "everest,es8375";
        reg = <0x18>;
        vdda-supply = <&vdd3v3>;
        vddd-supply = <&vdd3v3>;
        #sound-dai-cells = <0>;
      };
    };
+50 −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/everest,es8389.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Everest ES8389 audio CODEC

maintainers:
  - Michael Zhang <zhangyi@everest-semi.com>

allOf:
  - $ref: dai-common.yaml#

properties:
  compatible:
    const: everest,es8389

  reg:
    maxItems: 1

  clocks:
    items:
      - description: clock for master clock (MCLK)

  clock-names:
    items:
      - const: mclk

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

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

additionalProperties: false

examples:
  - |
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;
      es8389: codec@10 {
        compatible = "everest,es8389";
        reg = <0x10>;
        #sound-dai-cells = <0>;
      };
    };
Loading