Commit d7227785 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull sound updates from Takashi Iwai:
 "Not much dramatic changes at this time, but we've received quite a lot
  of changes for ASoC, while there are still a few fixes and quirks for
  usual HD- and USB-auido. Here are some highlights.

  ASoC:

   - Overhaul of endianness specification for data formats, avoiding
     needless restrictions due to CODECs

   - Initial stages of Intel AVS driver merge

   - Introduction of v4 IPC mechanism for SOF

   - TDM mode support for AK4613

   - Support for Analog Devices ADAU1361, Cirrus Logic CS35L45, Maxim
     MAX98396, MediaTek MT8186, NXP i.MX8 micfil and SAI interfaces,
     nVidia Tegra186 ASRC, and Texas Instruments TAS2764 and TAS2780

  Others:

   - A few regression fixes after the USB-audio endpoint management
     refactoring

   - More enhancements for Cirrus HD-audio codec support (still ongoing)

   - Addition of generic serial MIDI driver"

* tag 'sound-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (504 commits)
  ALSA: hda/realtek - Add new type for ALC245
  ALSA: usb-audio: Configure sync endpoints before data
  ALSA: ctxfi: fix typo in comment
  ALSA: cs5535audio: fix typo in comment
  ALSA: ctxfi: Add SB046x PCI ID
  ALSA: usb-audio: Add missing ep_idx in fixed EP quirks
  ALSA: usb-audio: Workaround for clock setup on TEAC devices
  ALSA: lola: Bounds check loop iterator against streams array size
  ASoC: max98090: Move check for invalid values before casting in max98090_put_enab_tlv()
  ASoC: rt1308-sdw: add the default value of register 0xc320
  ASoC: rt9120: Use pm_runtime and regcache to optimize 'pwdnn' logic
  ASoC: rt9120: Fix 3byte read, valule offset typo
  ASoC: amd: acp: Set Speaker enable/disable pin through rt1019 codec driver.
  ASoC: amd: acp: Set Speaker enable/disable pin through rt1019 codec driver
  ASoC: wm2000: fix missing clk_disable_unprepare() on error in wm2000_anc_transition()
  ASoC: codecs: lpass: Fix passing zero to 'PTR_ERR'
  ASoC: SOF: sof-client-ipc-flood-test: use pm_runtime_resume_and_get()
  ASoC: SOF: mediatek: remove duplicate include in mt8195.c
  ASoC: SOF: mediatek: Add mt8195 debug dump
  ASoC: SOF: mediatek: Add mediatek common debug dump
  ...
parents 2518f226 60571929
Loading
Loading
Loading
Loading
+105 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dsp/mediatek,mt8195-dsp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Mediatek mt8195 DSP core

maintainers:
  - YC Hung <yc.hung@mediatek.com>

description: |
  Some boards from mt8195 contain a DSP core used for
  advanced pre- and post- audio processing.

properties:
  compatible:
    const: mediatek,mt8195-dsp

  reg:
    items:
      - description: Address and size of the DSP Cfg registers
      - description: Address and size of the DSP SRAM

  reg-names:
    items:
      - const: cfg
      - const: sram

  clocks:
    items:
      - description: mux for audio dsp clock
      - description: 26M clock
      - description: mux for audio dsp local bus
      - description: default audio dsp local bus clock source
      - description: clock gate for audio dsp clock
      - description: mux for audio dsp access external bus

  clock-names:
    items:
      - const: adsp_sel
      - const: clk26m_ck
      - const: audio_local_bus
      - const: mainpll_d7_d2
      - const: scp_adsp_audiodsp
      - const: audio_h

  power-domains:
    maxItems: 1

  mboxes:
    items:
      - description: ipc reply between host and audio DSP.
      - description: ipc request between host and audio DSP.

  mbox-names:
    items:
      - const: mbox0
      - const: mbox1

  memory-region:
    items:
      - description: dma buffer between host and DSP.
      - description: DSP system memory.

required:
  - compatible
  - reg
  - reg-names
  - clocks
  - clock-names
  - memory-region
  - power-domains
  - mbox-names
  - mboxes

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    dsp@10803000 {
       compatible =  "mediatek,mt8195-dsp";
       reg = <0x10803000  0x1000>,
             <0x10840000  0x40000>;
       reg-names = "cfg", "sram";
       clocks = <&topckgen 10>, //CLK_TOP_ADSP
                <&clk26m>,
                <&topckgen 107>, //CLK_TOP_AUDIO_LOCAL_BUS
                <&topckgen 136>, //CLK_TOP_MAINPLL_D7_D2
                <&scp_adsp 0>, //CLK_SCP_ADSP_AUDIODSP
                <&topckgen 34>; //CLK_TOP_AUDIO_H
       clock-names = "adsp_sel",
                     "clk26m_ck",
                     "audio_local_bus",
                     "mainpll_d7_d2",
                     "scp_adsp_audiodsp",
                     "audio_h";
       memory-region = <&adsp_dma_mem_reserved>,
                       <&adsp_mem_reserved>;
       power-domains = <&spm 6>; //MT8195_POWER_DOMAIN_ADSP
       mbox-names = "mbox0", "mbox1";
       mboxes = <&adsp_mailbox0>, <&adsp_mailbox1>;
    };
+79 −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,max98396.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices MAX98396 Speaker Amplifier Device Tree Bindings

maintainers:
  - Ryan Lee <ryans.lee@analog.com>

description:
  The MAX98396 is a mono Class-DG speaker amplifier with I/V sense.
  The device provides a PCM interface for audio data and a standard
  I2C interface for control data communication.
  The MAX98397 is a variant of MAX98396 with wide input supply range.

properties:
  compatible:
    enum:
      - adi,max98396
      - adi,max98397
  reg:
    maxItems: 1
    description: I2C address of the device.

  adi,vmon-slot-no:
    description: slot number of the voltage sense monitor
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 15
    default: 0

  adi,imon-slot-no:
    description: slot number of the current sense monitor
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 15
    default: 0

  adi,spkfb-slot-no:
    description: slot number of speaker DSP monitor
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 15
    default: 0

  adi,interleave-mode:
    description:
      For cases where a single combined channel for the I/V sense data
      is not sufficient, the device can also be configured to share
      a single data output channel on alternating frames.
      In this configuration, the current and voltage data will be frame
      interleaved on a single output channel.
    type: boolean

  reset-gpios:
    maxItems: 1

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;
        max98396: amplifier@39 {
            compatible = "adi,max98396";
            reg = <0x39>;
            adi,vmon-slot-no = <0>;
            adi,imon-slot-no = <1>;
            reset-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
        };
    };
+41 −3
Original line number Diff line number Diff line
@@ -75,6 +75,19 @@ properties:
    maximum: 3
    default: 2

  cirrus,boost-type:
    description:
      Configures the type of Boost being used.
      Internal boost requires boost-peak-milliamp, boost-ind-nanohenry and
      boost-cap-microfarad.
      External Boost must have GPIO1 as GPIO output. GPIO1 will be set high to
      enable boost voltage.
      0 = Internal Boost
      1 = External Boost
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 1

  cirrus,gpio1-polarity-invert:
    description:
      Boolean which specifies whether the GPIO1
@@ -131,9 +144,32 @@ required:
  - compatible
  - reg
  - "#sound-dai-cells"

allOf:
  - if:
      properties:
        cirrus,boost-type:
          const: 0
    then:
      required:
        - cirrus,boost-peak-milliamp
        - cirrus,boost-ind-nanohenry
        - cirrus,boost-cap-microfarad
    else:
      if:
        properties:
          cirrus,boost-type:
            const: 1
      then:
        required:
          - cirrus,gpio1-output-enable
          - cirrus,gpio1-src-select
        properties:
          cirrus,boost-peak-milliamp: false
          cirrus,boost-ind-nanohenry: false
          cirrus,boost-cap-microfarad: false
          cirrus,gpio1-src-select:
            enum: [1]

additionalProperties: false

@@ -150,6 +186,8 @@ examples:
          VA-supply = <&dummy_vreg>;
          VP-supply = <&dummy_vreg>;
          reset-gpios = <&gpio 110 0>;

          cirrus,boost-type = <0>;
          cirrus,boost-peak-milliamp = <4500>;
          cirrus,boost-ind-nanohenry = <1000>;
          cirrus,boost-cap-microfarad = <15>;
+75 −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,cs35l45.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cirrus Logic CS35L45 Speaker Amplifier

maintainers:
  - Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
  - Richard Fitzgerald <rf@opensource.cirrus.com>

description: |
  CS35L45 is a Boosted Mono Class D Amplifier with DSP
  Speaker Protection and Adaptive Battery Management.

properties:
  compatible:
    enum:
      - cirrus,cs35l45

  reg:
    maxItems: 1

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

  reset-gpios:
    maxItems: 1

  vdd-a-supply:
    description: voltage regulator phandle for the VDD_A supply

  vdd-batt-supply:
    description: voltage regulator phandle for the VDD_BATT supply

  spi-max-frequency:
    maximum: 5000000

  cirrus,asp-sdout-hiz-ctrl:
    description:
      Audio serial port SDOUT Hi-Z control. Sets the Hi-Z
      configuration for SDOUT pin of amplifier. Logical OR of
      CS35L45_ASP_TX_HIZ_xxx values.
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 3
    default: 2

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

additionalProperties: false

examples:
  - |
    #include <dt-bindings/sound/cs35l45.h>
    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        cs35l45: cs35l45@2 {
          #sound-dai-cells = <1>;
          compatible = "cirrus,cs35l45";
          reg = <2>;
          spi-max-frequency = <5000000>;
          vdd-a-supply = <&dummy_vreg>;
          vdd-batt-supply = <&dummy_vreg>;
          reset-gpios = <&gpio 110 0>;
          cirrus,asp-sdout-hiz-ctrl = <(CS35L45_ASP_TX_HIZ_UNUSED |
                                        CS35L45_ASP_TX_HIZ_DISABLED)>;
        };
    };
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ microphone bitstream in a configurable output sampling rate.
Required properties:

  - compatible		: Compatible list, contains "fsl,imx8mm-micfil"
			  or "fsl,imx8mp-micfil"

  - reg			: Offset and length of the register set for the device.

Loading