Commit f8824e15 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull sound updates from Takashi Iwai:
 "Lots of changes as usual, but the only significant stuff in ALSA core
  part is the MIDI 2.0 support, while ASoC core kept receiving the code
  refactoring. The majority of changes are seen rather in device
  drivers, and quite a few new drivers can be found there.

  Here we go, some highlights:

  ALSA and ASoC Core:
   - Support of MIDI 2.0 devices: rawmidi and sequencer API have been
     extended for the support of the new UMP (Universal MIDI Packet)
     protocol, USB audio driver got the USB MIDI 2.0 interface support
   - Continued refactoring around ASoC DAI links and the ordering of
     trigger callbacks
   - PCM ABI extension for better drain support

  ASoC Drivers:
   - Conversions of many drivers to use maple tree based caches
   - Everlasting improvement works on ASoC Intel drivers
   - Compressed audio support for Qualcomm
   - Support for AMD SoundWire, Analog Devices SSM3515, Google
     Chameleon, Ingenic X1000, Intel systems with various CODECs,
     Loongson platforms, Maxim MAX98388, Mediatek MT8188, Nuvoton
     NAU8825C, NXP platforms with NAU8822, Qualcomm WSA884x, StarFive
     JH7110, Texas Instruments TAS2781

  HD-audio:
   - Quirks for HP and ASUS machines
   - CS35L41 HD-audio codec fixes
   - Loongson HD-audio support

  Misc:
   - A new virtual PCM test driver for kselftests
   - Continued refactoring and improvements on the legacy emu10k1
     driver"

* tag 'sound-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (556 commits)
  ALSA: hda/realtek: Enable mute/micmute LEDs and limit mic boost on EliteBook
  ASoC: hdmi-codec: fix channel info for compressed formats
  ALSA: pcm: fix ELD constraints for (E)AC3, DTS(-HD) and MLP formats
  ASoC: core: Always store of_node when getting DAI link component
  ASoC: tas2781: Fix error code in tas2781_load_calibration()
  ASoC: amd: update pm_runtime enable sequence
  ALSA: ump: Export MIDI1 / UMP conversion helpers
  ASoC: tas2781: fix Kconfig dependencies
  ASoC: amd: acp: remove acp poweroff function
  ASoC: amd: acp: clear pdm dma interrupt mask
  ASoC: codecs: max98090: Allow dsp_a mode
  ASoC: qcom: common: add default jack dapm pins
  ASoC: loongson: fix address space confusion
  ASoC: dt-bindings: microchip,sama7g5-pdmc: Simplify "microchip,mic-pos" constraints
  ASoC: tegra: Remove stale comments in AHUB
  ASoC: tegra: Use normal system sleep for ASRC
  ALSA: hda/realtek: Add quirks for ROG ALLY CS35l41 audio
  ASoC: fsl-asoc-card: Allow passing the number of slots in use
  ASoC: codecs: wsa884x: Add WSA884x family of speakers
  ASoC: dt-bindings: qcom,wsa8840: Add WSA884x family of speakers
  ...
parents 86e203ed d6048fdc
Loading
Loading
Loading
Loading
+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,max98388.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices MAX98388 Speaker Amplifier

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

description:
  The MAX98388 is a mono Class-D speaker amplifier with I/V feedback.
  The device provides a PCM interface for audio data and a standard
  I2C interface for control data communication.

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

properties:
  compatible:
    enum:
      - adi,max98388

  reg:
    maxItems: 1

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

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

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

  adi,interleave-mode:
    description:
      For cases where a single combined channel for the I/V feedback 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
  - '#sound-dai-cells'

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;
        max98388: amplifier@39 {
            compatible = "adi,max98388";
            reg = <0x39>;
            #sound-dai-cells = <0>;
            adi,vmon-slot-no = <0>;
            adi,imon-slot-no = <1>;
            adi,interleave-mode;
            reset-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
        };
    };
+47 −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,ssm2518.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices SSM2518 audio amplifier

maintainers:
  - Lars-Peter Clausen <lars@metafoo.de>

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

properties:
  compatible:
    const: adi,ssm2518

  reg:
    maxItems: 1
    description: |
       I2C address of the device. This will either be 0x34 (ADDR pin low)
       or 0x35 (ADDR pin high)

  gpios:
    maxItems: 1
    description: |
       GPIO connected to the nSD pin. If the property is not present
       it is assumed that the nSD pin is hardwired to always on.

required:
  - compatible
  - reg

unevaluatedProperties: false

examples:
  - |
   i2c {
     #address-cells = <1>;
     #size-cells = <0>;
     codec@34 {
       compatible = "adi,ssm2518";
       reg = <0x34>;
       gpios = <&gpio 5 0>;
     };
   };
+49 −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,ssm3515.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices SSM3515 Audio Amplifier

maintainers:
  - Martin Povišer <povik+lin@cutebit.org>

description: |
  SSM3515 is a mono Class-D audio amplifier with digital input.

  https://www.analog.com/media/en/technical-documentation/data-sheets/SSM3515.pdf

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

properties:
  compatible:
    enum:
      - adi,ssm3515

  reg:
    maxItems: 1

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

required:
  - compatible
  - reg

unevaluatedProperties: false

examples:
  - |
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      codec@14 {
        compatible = "adi,ssm3515";
        reg = <0x14>;
        #sound-dai-cells = <0>;
        sound-name-prefix = "Left Tweeter";
      };
    };
+5 −1
Original line number Diff line number Diff line
@@ -24,7 +24,11 @@ properties:
      connection's sink, the second being the connection's source.
    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
  widgets:
    description: User specified audio sound widgets.
    description: |
      User specified audio sound widgets.
      Each entry is a pair of strings, the first being the type of
      widget ("Microphone", "Line", "Headphone", "Speaker"), the
      second being the machine specific name for the widget.
    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
  convert-rate:
    $ref: /schemas/sound/dai-params.yaml#/$defs/dai-sample-rate
+5 −5
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ patternProperties:
          GPIO pin direction. Valid only when 'gpio-ctrl' is 1
            0 = Output
            1 = Input
        $ref: "/schemas/types.yaml#/definitions/uint32"
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 1
        default: 1
@@ -71,7 +71,7 @@ patternProperties:
          GPIO level. Valid only when 'gpio-ctrl' is 1 and 'gpio-dir' is 0
            0 = Low
            1 = High
        $ref: "/schemas/types.yaml#/definitions/uint32"
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 1
        default: 0
@@ -80,7 +80,7 @@ patternProperties:
          GPIO level. Valid only when 'gpio-ctrl' is 1 and 'gpio-dir' is 0
            0 = CMOS
            1 = Open Drain
        $ref: "/schemas/types.yaml#/definitions/uint32"
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 1
        default: 0
@@ -90,7 +90,7 @@ patternProperties:
          and 'gpio-dir' is 0
            0 = Non-inverted, Active High
            1 = Inverted, Active Low
        $ref: "/schemas/types.yaml#/definitions/uint32"
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 1
        default: 0
@@ -114,7 +114,7 @@ patternProperties:
            0 = High impedance input
            1 = Pin acts as a GPIO, direction controlled by 'gpio-dir'
            2-7 = Reserved
        $ref: "/schemas/types.yaml#/definitions/uint32"
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 7
        default: 0
Loading