mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
Merge tag 'sound-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai:
"A fairly big update at this time, both in core and driver sides.
The core received rewrites in PCM buffer allocation handling and
locking optimizations, PCM rate updates followed by lots of cleanups.
In ASoC side, the legacy Intel drivers have been deprecated by AVS
drivers which leaded to the significant amount of code reduction.
SoundWire driver updates and other cleanups contributed more code
reduction, too.
USB-audio driver received a large cleanup of its big quirk table, and
the old snd_print*() API usages in many legacy drivers are replaced
with the standard print API.
Here are some highlights:
Core:
- More optimized locking in ALSA control code
- Rewrites of memalloc helpers for better DMA API usage
- Drop of obsoleted vmalloc PCM buffer helper API
- Continued MIDI2 UMP updates
- Support of a new user-space driven timer instance
- Update for more PCM support rates and cleanups
- Xrun counter report in the proc files
ASoC:
- Continued simplification and cleanup works for ASoC
- Extensive cleanups and refactoring of the Soundwire drivers
- Removal of Intel machine support obsoleted by the AVS driver
- Lots of DT schema conversions
- Machine support for many AMD and Intel x86 platforms
- Support for AMD ACP 7.1, Mediatek MT6367 and MT8365, Realtek
RTL1320 SoundWire and rev C, and Texas Instruments TAS2563
USB-audio:
- Add support of multiple control interfaces
- A large rewrite of quirk table with macros
- Support for RME Digiface USB
HD-audio:
- Cleanup of quirk code for Samsung Galaxy laptops
- Clean up of detection of Cirrus codecs
- C-Media CM9825 HD-audio codec support
Others:
- Rewrites to standard print API in a lot of legacy drivers"
* tag 'sound-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (410 commits)
ASoC: topology: Fix redundant logical jump
ASoC: tas2781: Add Calibration Kcontrols for Chromebook
ASoC: amd: acp: refactor SoundWire machine driver code
ASoC: sdw_utils/intel: move soundwire endpoint parsing helper functions
ASoC: sdw_util/intel: move soundwire endpoint and dai link structures
ASoC: intel: sof_sdw: rename soundwire parsing helper functions
ASoC: intel: sof_sdw: rename soundwire endpoint and dailink structures
ASoC: atmel: mchp-pdmc: Retain Non-Runtime Controls
ALSA: hda/realtek: Add support for Galaxy Book2 Pro (NP950XEE)
ASoC: mediatek: mt7986-afe-pcm: Remove redundant error message
ALSA: memalloc: Use proper DMA mapping API for x86 S/G buffer allocations
ALSA: memalloc: Use proper DMA mapping API for x86 WC buffer allocations
ALSA: usb-audio: Add logitech Audio profile quirk
ASoc: mediatek: mt8365: Remove unneeded assignment
ASoC: Intel: ARL: Add entry for HDMI-In capture support to non-I2S codec boards.
ASoC: Intel: sof_rt5682: Add HDMI-In capture with rt5682 support for ARL.
ASoC: SOF: Intel: hda: remove common_hdmi_codec_drv
ASoC: Intel: sof_pcm512x: do not check common_hdmi_codec_drv
ASoC: Intel: ehl_rt5660: do not check common_hdmi_codec_drv
ASoC: Intel: skl_hda_dsp_generic: use common module for DAI links
...
This commit is contained in:
@@ -37,6 +37,24 @@ properties:
|
||||
"#interrupt-cells":
|
||||
const: 2
|
||||
|
||||
mediatek,hp-pull-down:
|
||||
description:
|
||||
Earphone driver positive output stage short to
|
||||
the audio reference ground.
|
||||
type: boolean
|
||||
|
||||
mediatek,micbias0-microvolt:
|
||||
description: Selects MIC Bias 0 output voltage.
|
||||
enum: [1700000, 1800000, 1900000, 2000000,
|
||||
2100000, 2500000, 2600000, 2700000]
|
||||
default: 1700000
|
||||
|
||||
mediatek,micbias1-microvolt:
|
||||
description: Selects MIC Bias 1 output voltage.
|
||||
enum: [1700000, 1800000, 1900000, 2000000,
|
||||
2100000, 2500000, 2600000, 2700000]
|
||||
default: 1700000
|
||||
|
||||
regulators:
|
||||
type: object
|
||||
$ref: /schemas/regulator/mediatek,mt6357-regulator.yaml
|
||||
@@ -83,6 +101,9 @@ examples:
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
mediatek,micbias0-microvolt = <1700000>;
|
||||
mediatek,micbias1-microvolt = <1700000>;
|
||||
|
||||
regulators {
|
||||
mt6357_vproc_reg: buck-vproc {
|
||||
regulator-name = "vproc";
|
||||
|
||||
@@ -26,6 +26,13 @@ properties:
|
||||
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
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
maxItems: 3
|
||||
description:
|
||||
Base PLL clocks of audio susbsytem, used to configure base clock
|
||||
frequencies for different audio use-cases.
|
||||
|
||||
patternProperties:
|
||||
"^dai-link-[0-9]+$":
|
||||
type: object
|
||||
|
||||
@@ -27,6 +27,13 @@ properties:
|
||||
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
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
maxItems: 3
|
||||
description:
|
||||
Base PLL clocks of audio susbsytem, used to configure base clock
|
||||
frequencies for different audio use-cases.
|
||||
|
||||
patternProperties:
|
||||
"^dai-link-[0-9]+$":
|
||||
type: object
|
||||
|
||||
101
Documentation/devicetree/bindings/sound/cirrus,cs4271.yaml
Normal file
101
Documentation/devicetree/bindings/sound/cirrus,cs4271.yaml
Normal file
@@ -0,0 +1,101 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/cirrus,cs4271.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Cirrus Logic CS4271 audio CODEC
|
||||
|
||||
maintainers:
|
||||
- Alexander Sverdlin <alexander.sverdlin@gmail.com>
|
||||
- Nikita Shubin <nikita.shubin@maquefel.me>
|
||||
|
||||
description:
|
||||
The CS4271 is a stereo audio codec. This device supports both the I2C
|
||||
and the SPI bus.
|
||||
|
||||
allOf:
|
||||
- $ref: dai-common.yaml#
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: cirrus,cs4271
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
spi-cpha: true
|
||||
|
||||
spi-cpol: true
|
||||
|
||||
'#sound-dai-cells':
|
||||
const: 0
|
||||
|
||||
reset-gpios:
|
||||
description:
|
||||
This pin will be deasserted before communication to the codec starts.
|
||||
maxItems: 1
|
||||
|
||||
va-supply:
|
||||
description: Analog power supply.
|
||||
|
||||
vd-supply:
|
||||
description: Digital power supply.
|
||||
|
||||
vl-supply:
|
||||
description: Serial Control Port power supply.
|
||||
|
||||
port:
|
||||
$ref: audio-graph-port.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
cirrus,amuteb-eq-bmutec:
|
||||
description:
|
||||
When given, the Codec's AMUTEB=BMUTEC flag is enabled.
|
||||
type: boolean
|
||||
|
||||
cirrus,enable-soft-reset:
|
||||
description: |
|
||||
The CS4271 requires its LRCLK and MCLK to be stable before its RESET
|
||||
line is de-asserted. That also means that clocks cannot be changed
|
||||
without putting the chip back into hardware reset, which also requires
|
||||
a complete re-initialization of all registers.
|
||||
|
||||
One (undocumented) workaround is to assert and de-assert the PDN bit
|
||||
in the MODE2 register. This workaround can be enabled with this DT
|
||||
property.
|
||||
|
||||
Note that this is not needed in case the clocks are stable
|
||||
throughout the entire runtime of the codec.
|
||||
type: boolean
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
codec@0 {
|
||||
compatible = "cirrus,cs4271";
|
||||
reg = <0>;
|
||||
#sound-dai-cells = <0>;
|
||||
spi-max-frequency = <6000000>;
|
||||
spi-cpol;
|
||||
spi-cpha;
|
||||
reset-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
|
||||
port {
|
||||
endpoint {
|
||||
remote-endpoint = <&i2s_ep>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
||||
@@ -1,57 +0,0 @@
|
||||
Cirrus Logic CS4271 DT bindings
|
||||
|
||||
This driver supports both the I2C and the SPI bus.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: "cirrus,cs4271"
|
||||
|
||||
For required properties on SPI, please consult
|
||||
Documentation/devicetree/bindings/spi/spi-bus.txt
|
||||
|
||||
Required properties on I2C:
|
||||
|
||||
- reg: the i2c address
|
||||
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpio: a GPIO spec to define which pin is connected to the chip's
|
||||
!RESET pin
|
||||
- cirrus,amuteb-eq-bmutec: When given, the Codec's AMUTEB=BMUTEC flag
|
||||
is enabled.
|
||||
- cirrus,enable-soft-reset:
|
||||
The CS4271 requires its LRCLK and MCLK to be stable before its RESET
|
||||
line is de-asserted. That also means that clocks cannot be changed
|
||||
without putting the chip back into hardware reset, which also requires
|
||||
a complete re-initialization of all registers.
|
||||
|
||||
One (undocumented) workaround is to assert and de-assert the PDN bit
|
||||
in the MODE2 register. This workaround can be enabled with this DT
|
||||
property.
|
||||
|
||||
Note that this is not needed in case the clocks are stable
|
||||
throughout the entire runtime of the codec.
|
||||
|
||||
- vd-supply: Digital power
|
||||
- vl-supply: Logic power
|
||||
- va-supply: Analog Power
|
||||
|
||||
Examples:
|
||||
|
||||
codec_i2c: cs4271@10 {
|
||||
compatible = "cirrus,cs4271";
|
||||
reg = <0x10>;
|
||||
reset-gpio = <&gpio 23 0>;
|
||||
vd-supply = <&vdd_3v3_reg>;
|
||||
vl-supply = <&vdd_3v3_reg>;
|
||||
va-supply = <&vdd_3v3_reg>;
|
||||
};
|
||||
|
||||
codec_spi: cs4271@0 {
|
||||
compatible = "cirrus,cs4271";
|
||||
reg = <0x0>;
|
||||
reset-gpio = <&gpio 23 0>;
|
||||
spi-max-frequency = <6000000>;
|
||||
};
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
Dialog Semiconductor DA7212/DA7213 Audio Codec bindings
|
||||
|
||||
======
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "dlg,da7212" or "dlg,da7213"
|
||||
- reg: Specifies the I2C slave address
|
||||
|
||||
Optional properties:
|
||||
- clocks : phandle and clock specifier for codec MCLK.
|
||||
- clock-names : Clock name string for 'clocks' attribute, should be "mclk".
|
||||
|
||||
- dlg,micbias1-lvl : Voltage (mV) for Mic Bias 1
|
||||
[<1600>, <2200>, <2500>, <3000>]
|
||||
- dlg,micbias2-lvl : Voltage (mV) for Mic Bias 2
|
||||
[<1600>, <2200>, <2500>, <3000>]
|
||||
- dlg,dmic-data-sel : DMIC channel select based on clock edge.
|
||||
["lrise_rfall", "lfall_rrise"]
|
||||
- dlg,dmic-samplephase : When to sample audio from DMIC.
|
||||
["on_clkedge", "between_clkedge"]
|
||||
- dlg,dmic-clkrate : DMIC clock frequency (Hz).
|
||||
[<1500000>, <3000000>]
|
||||
|
||||
- VDDA-supply : Regulator phandle for Analogue power supply
|
||||
- VDDMIC-supply : Regulator phandle for Mic Bias
|
||||
- VDDIO-supply : Regulator phandle for I/O power supply
|
||||
|
||||
======
|
||||
|
||||
Example:
|
||||
|
||||
codec_i2c: da7213@1a {
|
||||
compatible = "dlg,da7213";
|
||||
reg = <0x1a>;
|
||||
|
||||
clocks = <&clks 201>;
|
||||
clock-names = "mclk";
|
||||
|
||||
dlg,micbias1-lvl = <2500>;
|
||||
dlg,micbias2-lvl = <2500>;
|
||||
|
||||
dlg,dmic-data-sel = "lrise_rfall";
|
||||
dlg,dmic-samplephase = "between_clkedge";
|
||||
dlg,dmic-clkrate = <3000000>;
|
||||
};
|
||||
103
Documentation/devicetree/bindings/sound/dlg,da7213.yaml
Normal file
103
Documentation/devicetree/bindings/sound/dlg,da7213.yaml
Normal file
@@ -0,0 +1,103 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/dlg,da7213.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Dialog Semiconductor DA7212/DA7213 Audio Codec
|
||||
|
||||
maintainers:
|
||||
- Support Opensource <support.opensource@diasemi.com>
|
||||
|
||||
allOf:
|
||||
- $ref: dai-common.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- dlg,da7212
|
||||
- dlg,da7213
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
const: mclk
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
dlg,micbias1-lvl:
|
||||
description: Voltage (mV) for Mic Bias 1
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [ 1600, 2200, 2500, 3000 ]
|
||||
|
||||
dlg,micbias2-lvl:
|
||||
description: Voltage (mV) for Mic Bias 2
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [ 1600, 2200, 2500, 3000 ]
|
||||
|
||||
dlg,dmic-data-sel:
|
||||
description: DMIC channel select based on clock edge
|
||||
enum: [ lrise_rfall, lfall_rrise ]
|
||||
|
||||
dlg,dmic-samplephase:
|
||||
description: When to sample audio from DMIC
|
||||
enum: [ on_clkedge, between_clkedge ]
|
||||
|
||||
dlg,dmic-clkrate:
|
||||
description: DMIC clock frequency (Hz)
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [ 1500000, 3000000 ]
|
||||
|
||||
VDDA-supply:
|
||||
description: Analogue power supply
|
||||
|
||||
VDDIO-supply:
|
||||
description: I/O power supply
|
||||
|
||||
VDDMIC-supply:
|
||||
description: Mic Bias
|
||||
|
||||
VDDSP-supply:
|
||||
description: Speaker supply
|
||||
|
||||
ports:
|
||||
$ref: audio-graph-port.yaml#/definitions/ports
|
||||
|
||||
port:
|
||||
$ref: audio-graph-port.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
codec@1a {
|
||||
compatible = "dlg,da7213";
|
||||
reg = <0x1a>;
|
||||
|
||||
clocks = <&clks 201>;
|
||||
clock-names = "mclk";
|
||||
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
dlg,micbias1-lvl = <2500>;
|
||||
dlg,micbias2-lvl = <2500>;
|
||||
|
||||
dlg,dmic-data-sel = "lrise_rfall";
|
||||
dlg,dmic-samplephase = "between_clkedge";
|
||||
dlg,dmic-clkrate = <3000000>;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,111 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/fsl,imx-audio-es8328.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Freescale i.MX audio complex with ES8328 codec
|
||||
|
||||
maintainers:
|
||||
- Shawn Guo <shawnguo@kernel.org>
|
||||
- Sascha Hauer <s.hauer@pengutronix.de>
|
||||
|
||||
allOf:
|
||||
- $ref: sound-card-common.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: fsl,imx-audio-es8328
|
||||
|
||||
model:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description: The user-visible name of this sound complex
|
||||
|
||||
ssi-controller:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: The phandle of the i.MX SSI controller
|
||||
|
||||
jack-gpio:
|
||||
description: Optional GPIO for headphone jack
|
||||
maxItems: 1
|
||||
|
||||
audio-amp-supply:
|
||||
description: Power regulator for speaker amps
|
||||
|
||||
audio-codec:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: The phandle to the ES8328 audio codec
|
||||
|
||||
audio-routing:
|
||||
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
|
||||
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. Valid names could be power supplies,
|
||||
ES8328 pins, and the jacks on the board:
|
||||
|
||||
Power supplies:
|
||||
* audio-amp
|
||||
|
||||
ES8328 pins:
|
||||
* LOUT1
|
||||
* LOUT2
|
||||
* ROUT1
|
||||
* ROUT2
|
||||
* LINPUT1
|
||||
* LINPUT2
|
||||
* RINPUT1
|
||||
* RINPUT2
|
||||
* Mic PGA
|
||||
|
||||
Board connectors:
|
||||
* Headphone
|
||||
* Speaker
|
||||
* Mic Jack
|
||||
|
||||
mux-int-port:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: The internal port of the i.MX audio muxer (AUDMUX)
|
||||
enum: [1, 2, 7]
|
||||
default: 1
|
||||
|
||||
mux-ext-port:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: The external port of the i.MX audio muxer (AUDMIX)
|
||||
enum: [3, 4, 5, 6]
|
||||
default: 3
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- model
|
||||
- ssi-controller
|
||||
- jack-gpio
|
||||
- audio-amp-supply
|
||||
- audio-codec
|
||||
- audio-routing
|
||||
- mux-int-port
|
||||
- mux-ext-port
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
sound {
|
||||
compatible = "fsl,imx-audio-es8328";
|
||||
model = "imx-audio-es8328";
|
||||
ssi-controller = <&ssi1>;
|
||||
audio-codec = <&codec>;
|
||||
jack-gpio = <&gpio5 15 0>;
|
||||
audio-amp-supply = <®_audio_amp>;
|
||||
audio-routing =
|
||||
"Speaker", "LOUT2",
|
||||
"Speaker", "ROUT2",
|
||||
"Speaker", "audio-amp",
|
||||
"Headphone", "ROUT1",
|
||||
"Headphone", "LOUT1",
|
||||
"LINPUT1", "Mic Jack",
|
||||
"RINPUT1", "Mic Jack",
|
||||
"Mic Jack", "Mic Bias";
|
||||
mux-int-port = <1>;
|
||||
mux-ext-port = <3>;
|
||||
};
|
||||
83
Documentation/devicetree/bindings/sound/fsl,saif.yaml
Normal file
83
Documentation/devicetree/bindings/sound/fsl,saif.yaml
Normal file
@@ -0,0 +1,83 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/fsl,saif.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Freescale MXS Serial Audio Interface (SAIF)
|
||||
|
||||
maintainers:
|
||||
- Lukasz Majewski <lukma@denx.de>
|
||||
|
||||
allOf:
|
||||
- $ref: dai-common.yaml#
|
||||
|
||||
description:
|
||||
The SAIF is based on I2S module that is used to communicate with audio codecs,
|
||||
but only with half-duplex manner (i.e. it can either transmit or receive PCM
|
||||
audio).
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: fsl,imx28-saif
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
dmas:
|
||||
maxItems: 1
|
||||
|
||||
dma-names:
|
||||
const: rx-tx
|
||||
|
||||
"#clock-cells":
|
||||
description: Configure the I2S device as MCLK clock provider.
|
||||
const: 0
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
fsl,saif-master:
|
||||
description: Indicate that saif is a slave and its phandle points to master
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#sound-dai-cells"
|
||||
- interrupts
|
||||
- dmas
|
||||
- dma-names
|
||||
- clocks
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
saif0: saif@80042000 {
|
||||
compatible = "fsl,imx28-saif";
|
||||
reg = <0x80042000 2000>;
|
||||
#sound-dai-cells = <0>;
|
||||
interrupts = <59>;
|
||||
dmas = <&dma_apbx 4>;
|
||||
dma-names = "rx-tx";
|
||||
#clock-cells = <0>;
|
||||
clocks = <&clks 53>;
|
||||
};
|
||||
- |
|
||||
saif1: saif@80046000 {
|
||||
compatible = "fsl,imx28-saif";
|
||||
reg = <0x80046000 2000>;
|
||||
#sound-dai-cells = <0>;
|
||||
interrupts = <58>;
|
||||
dmas = <&dma_apbx 5>;
|
||||
dma-names = "rx-tx";
|
||||
clocks = <&clks 53>;
|
||||
fsl,saif-master = <&saif0>;
|
||||
};
|
||||
@@ -1,60 +0,0 @@
|
||||
Freescale i.MX audio complex with ES8328 codec
|
||||
|
||||
Required properties:
|
||||
- compatible : "fsl,imx-audio-es8328"
|
||||
- model : The user-visible name of this sound complex
|
||||
- ssi-controller : The phandle of the i.MX SSI controller
|
||||
- jack-gpio : Optional GPIO for headphone jack
|
||||
- audio-amp-supply : Power regulator for speaker amps
|
||||
- audio-codec : The phandle of the ES8328 audio codec
|
||||
- audio-routing : 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. Valid names could be power supplies, ES8328
|
||||
pins, and the jacks on the board:
|
||||
|
||||
Power supplies:
|
||||
* audio-amp
|
||||
|
||||
ES8328 pins:
|
||||
* LOUT1
|
||||
* LOUT2
|
||||
* ROUT1
|
||||
* ROUT2
|
||||
* LINPUT1
|
||||
* LINPUT2
|
||||
* RINPUT1
|
||||
* RINPUT2
|
||||
* Mic PGA
|
||||
|
||||
Board connectors:
|
||||
* Headphone
|
||||
* Speaker
|
||||
* Mic Jack
|
||||
- mux-int-port : The internal port of the i.MX audio muxer (AUDMUX)
|
||||
- mux-ext-port : The external port of the i.MX audio muxer (AUDMIX)
|
||||
|
||||
Note: The AUDMUX port numbering should start at 1, which is consistent with
|
||||
hardware manual.
|
||||
|
||||
Example:
|
||||
|
||||
sound {
|
||||
compatible = "fsl,imx-audio-es8328";
|
||||
model = "imx-audio-es8328";
|
||||
ssi-controller = <&ssi1>;
|
||||
audio-codec = <&codec>;
|
||||
jack-gpio = <&gpio5 15 0>;
|
||||
audio-amp-supply = <®_audio_amp>;
|
||||
audio-routing =
|
||||
"Speaker", "LOUT2",
|
||||
"Speaker", "ROUT2",
|
||||
"Speaker", "audio-amp",
|
||||
"Headphone", "ROUT1",
|
||||
"Headphone", "LOUT1",
|
||||
"LINPUT1", "Mic Jack",
|
||||
"RINPUT1", "Mic Jack",
|
||||
"Mic Jack", "Mic Bias";
|
||||
mux-int-port = <1>;
|
||||
mux-ext-port = <3>;
|
||||
};
|
||||
130
Documentation/devicetree/bindings/sound/mediatek,mt8365-afe.yaml
Normal file
130
Documentation/devicetree/bindings/sound/mediatek,mt8365-afe.yaml
Normal file
@@ -0,0 +1,130 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/mediatek,mt8365-afe.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MediaTek Audio Front End PCM controller for MT8365
|
||||
|
||||
maintainers:
|
||||
- Alexandre Mergnat <amergnat@baylibre.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: mediatek,mt8365-afe-pcm
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: 26M clock
|
||||
- description: mux for audio clock
|
||||
- description: audio i2s0 mck
|
||||
- description: audio i2s1 mck
|
||||
- description: audio i2s2 mck
|
||||
- description: audio i2s3 mck
|
||||
- description: engen 1 clock
|
||||
- description: engen 2 clock
|
||||
- description: audio 1 clock
|
||||
- description: audio 2 clock
|
||||
- description: mux for i2s0
|
||||
- description: mux for i2s1
|
||||
- description: mux for i2s2
|
||||
- description: mux for i2s3
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: top_clk26m_clk
|
||||
- const: top_audio_sel
|
||||
- const: audio_i2s0_m
|
||||
- const: audio_i2s1_m
|
||||
- const: audio_i2s2_m
|
||||
- const: audio_i2s3_m
|
||||
- const: engen1
|
||||
- const: engen2
|
||||
- const: aud1
|
||||
- const: aud2
|
||||
- const: i2s0_m_sel
|
||||
- const: i2s1_m_sel
|
||||
- const: i2s2_m_sel
|
||||
- const: i2s3_m_sel
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
mediatek,dmic-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
Indicates how many data pins are used to transmit two channels of PDM
|
||||
signal. 1 means two wires, 0 means one wire. Default value is 0.
|
||||
enum:
|
||||
- 0 # one wire
|
||||
- 1 # two wires
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- interrupts
|
||||
- power-domains
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/mediatek,mt8365-clk.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/power/mediatek,mt8365-power.h>
|
||||
|
||||
soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
audio-controller@11220000 {
|
||||
compatible = "mediatek,mt8365-afe-pcm";
|
||||
reg = <0 0x11220000 0 0x1000>;
|
||||
#sound-dai-cells = <0>;
|
||||
clocks = <&clk26m>,
|
||||
<&topckgen CLK_TOP_AUDIO_SEL>,
|
||||
<&topckgen CLK_TOP_AUD_I2S0_M>,
|
||||
<&topckgen CLK_TOP_AUD_I2S1_M>,
|
||||
<&topckgen CLK_TOP_AUD_I2S2_M>,
|
||||
<&topckgen CLK_TOP_AUD_I2S3_M>,
|
||||
<&topckgen CLK_TOP_AUD_ENGEN1_SEL>,
|
||||
<&topckgen CLK_TOP_AUD_ENGEN2_SEL>,
|
||||
<&topckgen CLK_TOP_AUD_1_SEL>,
|
||||
<&topckgen CLK_TOP_AUD_2_SEL>,
|
||||
<&topckgen CLK_TOP_APLL_I2S0_SEL>,
|
||||
<&topckgen CLK_TOP_APLL_I2S1_SEL>,
|
||||
<&topckgen CLK_TOP_APLL_I2S2_SEL>,
|
||||
<&topckgen CLK_TOP_APLL_I2S3_SEL>;
|
||||
clock-names = "top_clk26m_clk",
|
||||
"top_audio_sel",
|
||||
"audio_i2s0_m",
|
||||
"audio_i2s1_m",
|
||||
"audio_i2s2_m",
|
||||
"audio_i2s3_m",
|
||||
"engen1",
|
||||
"engen2",
|
||||
"aud1",
|
||||
"aud2",
|
||||
"i2s0_m_sel",
|
||||
"i2s1_m_sel",
|
||||
"i2s2_m_sel",
|
||||
"i2s3_m_sel";
|
||||
interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_LOW>;
|
||||
power-domains = <&spm MT8365_POWER_DOMAIN_AUDIO>;
|
||||
mediatek,dmic-mode = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
...
|
||||
@@ -0,0 +1,107 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/mediatek,mt8365-mt6357.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MediaTek MT8365 ASoC sound card
|
||||
|
||||
maintainers:
|
||||
- Alexandre Mergnat <amergnat@baylibre.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: mediatek,mt8365-mt6357
|
||||
|
||||
pinctrl-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: default
|
||||
- const: dmic
|
||||
- const: miso_off
|
||||
- const: miso_on
|
||||
- const: mosi_off
|
||||
- const: mosi_on
|
||||
|
||||
mediatek,platform:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: The phandle of MT8365 ASoC platform.
|
||||
|
||||
patternProperties:
|
||||
"^dai-link-[0-9]+$":
|
||||
type: object
|
||||
description:
|
||||
Container for dai-link level properties and CODEC sub-nodes.
|
||||
|
||||
properties:
|
||||
codec:
|
||||
type: object
|
||||
description: Holds subnode which indicates codec dai.
|
||||
|
||||
properties:
|
||||
sound-dai:
|
||||
maxItems: 1
|
||||
description: phandle of the codec DAI
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
link-name:
|
||||
description: Indicates dai-link name and PCM stream name
|
||||
enum:
|
||||
- I2S_IN_BE
|
||||
- I2S_OUT_BE
|
||||
- PCM1_BE
|
||||
- PDM1_BE
|
||||
- PDM2_BE
|
||||
- PDM3_BE
|
||||
- PDM4_BE
|
||||
- SPDIF_IN_BE
|
||||
- SPDIF_OUT_BE
|
||||
- TDM_IN_BE
|
||||
- TDM_OUT_BE
|
||||
|
||||
sound-dai:
|
||||
maxItems: 1
|
||||
description: phandle of the CPU DAI
|
||||
|
||||
required:
|
||||
- link-name
|
||||
- sound-dai
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- pinctrl-names
|
||||
- mediatek,platform
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
sound {
|
||||
compatible = "mediatek,mt8365-mt6357";
|
||||
pinctrl-names = "default",
|
||||
"dmic",
|
||||
"miso_off",
|
||||
"miso_on",
|
||||
"mosi_off",
|
||||
"mosi_on";
|
||||
pinctrl-0 = <&aud_default_pins>;
|
||||
pinctrl-1 = <&aud_dmic_pins>;
|
||||
pinctrl-2 = <&aud_miso_off_pins>;
|
||||
pinctrl-3 = <&aud_miso_on_pins>;
|
||||
pinctrl-4 = <&aud_mosi_off_pins>;
|
||||
pinctrl-5 = <&aud_mosi_on_pins>;
|
||||
mediatek,platform = <&afe>;
|
||||
|
||||
/* hdmi interface */
|
||||
dai-link-0 {
|
||||
link-name = "I2S_OUT_BE";
|
||||
sound-dai = <&afe>;
|
||||
|
||||
codec {
|
||||
sound-dai = <&it66121hdmitx>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -13,6 +13,9 @@ description:
|
||||
The Microchip Sony/Philips Digital Interface Receiver is a serial port
|
||||
compliant with the IEC-60958 standard.
|
||||
|
||||
allOf:
|
||||
- $ref: dai-common.yaml#
|
||||
|
||||
properties:
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
@@ -53,7 +56,7 @@ required:
|
||||
- dmas
|
||||
- dma-names
|
||||
|
||||
additionalProperties: false
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
* Freescale MXS Serial Audio Interface (SAIF)
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "fsl,<chip>-saif"
|
||||
- reg: Should contain registers location and length
|
||||
- interrupts: Should contain ERROR interrupt number
|
||||
- dmas: DMA specifier, consisting of a phandle to DMA controller node
|
||||
and SAIF DMA channel ID.
|
||||
Refer to dma.txt and fsl-mxs-dma.txt for details.
|
||||
- dma-names: Must be "rx-tx".
|
||||
|
||||
Optional properties:
|
||||
- fsl,saif-master: phandle to the master SAIF. It's only required for
|
||||
the slave SAIF.
|
||||
|
||||
Note: Each SAIF controller should have an alias correctly numbered
|
||||
in "aliases" node.
|
||||
|
||||
Example:
|
||||
|
||||
aliases {
|
||||
saif0 = &saif0;
|
||||
saif1 = &saif1;
|
||||
};
|
||||
|
||||
saif0: saif@80042000 {
|
||||
compatible = "fsl,imx28-saif";
|
||||
reg = <0x80042000 2000>;
|
||||
interrupts = <59>;
|
||||
dmas = <&dma_apbx 4>;
|
||||
dma-names = "rx-tx";
|
||||
};
|
||||
|
||||
saif1: saif@80046000 {
|
||||
compatible = "fsl,imx28-saif";
|
||||
reg = <0x80046000 2000>;
|
||||
interrupts = <58>;
|
||||
dmas = <&dma_apbx 5>;
|
||||
dma-names = "rx-tx";
|
||||
fsl,saif-master = <&saif0>;
|
||||
};
|
||||
@@ -1,53 +0,0 @@
|
||||
PCM512x and TAS575x audio CODECs/amplifiers
|
||||
|
||||
These devices support both I2C and SPI (configured with pin strapping
|
||||
on the board). The TAS575x devices only support I2C.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : One of "ti,pcm5121", "ti,pcm5122", "ti,pcm5141",
|
||||
"ti,pcm5142", "ti,pcm5242", "ti,tas5754" or "ti,tas5756"
|
||||
|
||||
- reg : the I2C address of the device for I2C, the chip select
|
||||
number for SPI.
|
||||
|
||||
- AVDD-supply, DVDD-supply, and CPVDD-supply : power supplies for the
|
||||
device, as covered in bindings/regulator/regulator.txt
|
||||
|
||||
Optional properties:
|
||||
|
||||
- clocks : A clock specifier for the clock connected as SCLK. If this
|
||||
is absent the device will be configured to clock from BCLK. If pll-in
|
||||
and pll-out are specified in addition to a clock, the device is
|
||||
configured to accept clock input on a specified gpio pin.
|
||||
|
||||
- pll-in, pll-out : gpio pins used to connect the pll using <1>
|
||||
through <6>. The device will be configured for clock input on the
|
||||
given pll-in pin and PLL output on the given pll-out pin. An
|
||||
external connection from the pll-out pin to the SCLK pin is assumed.
|
||||
Caution: the TAS-desvices only support gpios 1,2 and 3
|
||||
|
||||
Examples:
|
||||
|
||||
pcm5122: pcm5122@4c {
|
||||
compatible = "ti,pcm5122";
|
||||
reg = <0x4c>;
|
||||
|
||||
AVDD-supply = <®_3v3_analog>;
|
||||
DVDD-supply = <®_1v8>;
|
||||
CPVDD-supply = <®_3v3>;
|
||||
};
|
||||
|
||||
|
||||
pcm5142: pcm5142@4c {
|
||||
compatible = "ti,pcm5142";
|
||||
reg = <0x4c>;
|
||||
|
||||
AVDD-supply = <®_3v3_analog>;
|
||||
DVDD-supply = <®_1v8>;
|
||||
CPVDD-supply = <®_3v3>;
|
||||
|
||||
clocks = <&sck>;
|
||||
pll-in = <3>;
|
||||
pll-out = <6>;
|
||||
};
|
||||
@@ -0,0 +1,205 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/qcom,apq8016-sbc-sndcard.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm APQ8016 and similar sound cards
|
||||
|
||||
maintainers:
|
||||
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
||||
- Stephan Gerhold <stephan@gerhold.net>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,apq8016-sbc-sndcard
|
||||
- qcom,msm8916-qdsp6-sndcard
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: Microphone I/O mux register address
|
||||
- description: Speaker I/O mux register address
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: mic-iomux
|
||||
- const: spkr-iomux
|
||||
|
||||
audio-routing:
|
||||
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
|
||||
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. Valid names could be power supplies,
|
||||
MicBias of codec and the jacks on the board.
|
||||
|
||||
aux-devs:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
description: |
|
||||
List of phandles pointing to auxiliary devices, such
|
||||
as amplifiers, to be added to the sound card.
|
||||
|
||||
model:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description: User visible long sound card name
|
||||
|
||||
pin-switches:
|
||||
description: List of widget names for which pin switches should be created.
|
||||
$ref: /schemas/types.yaml#/definitions/string-array
|
||||
|
||||
widgets:
|
||||
description: User specified audio sound widgets.
|
||||
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
|
||||
|
||||
patternProperties:
|
||||
".*-dai-link$":
|
||||
description:
|
||||
Each subnode represents a dai link. Subnodes of each dai links would be
|
||||
cpu/codec dais.
|
||||
|
||||
type: object
|
||||
|
||||
properties:
|
||||
link-name:
|
||||
description: Indicates dai-link name and PCM stream name.
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
maxItems: 1
|
||||
|
||||
cpu:
|
||||
description: Holds subnode which indicates cpu dai.
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
sound-dai:
|
||||
maxItems: 1
|
||||
|
||||
platform:
|
||||
description: Holds subnode which indicates platform dai.
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
sound-dai:
|
||||
maxItems: 1
|
||||
|
||||
codec:
|
||||
description: Holds subnode which indicates codec dai.
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
sound-dai:
|
||||
minItems: 1
|
||||
maxItems: 8
|
||||
|
||||
required:
|
||||
- link-name
|
||||
- cpu
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- reg-names
|
||||
- model
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/sound/qcom,lpass.h>
|
||||
sound@7702000 {
|
||||
compatible = "qcom,apq8016-sbc-sndcard";
|
||||
reg = <0x07702000 0x4>, <0x07702004 0x4>;
|
||||
reg-names = "mic-iomux", "spkr-iomux";
|
||||
|
||||
model = "DB410c";
|
||||
audio-routing =
|
||||
"AMIC2", "MIC BIAS Internal2",
|
||||
"AMIC3", "MIC BIAS External1";
|
||||
|
||||
pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
|
||||
pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
|
||||
quaternary-dai-link {
|
||||
link-name = "ADV7533";
|
||||
cpu {
|
||||
sound-dai = <&lpass MI2S_QUATERNARY>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&adv_bridge 0>;
|
||||
};
|
||||
};
|
||||
|
||||
primary-dai-link {
|
||||
link-name = "WCD";
|
||||
cpu {
|
||||
sound-dai = <&lpass MI2S_PRIMARY>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
|
||||
};
|
||||
};
|
||||
|
||||
tertiary-dai-link {
|
||||
link-name = "WCD-Capture";
|
||||
cpu {
|
||||
sound-dai = <&lpass MI2S_TERTIARY>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
- |
|
||||
#include <dt-bindings/sound/qcom,q6afe.h>
|
||||
#include <dt-bindings/sound/qcom,q6asm.h>
|
||||
sound@7702000 {
|
||||
compatible = "qcom,msm8916-qdsp6-sndcard";
|
||||
reg = <0x07702000 0x4>, <0x07702004 0x4>;
|
||||
reg-names = "mic-iomux", "spkr-iomux";
|
||||
|
||||
model = "msm8916";
|
||||
widgets =
|
||||
"Speaker", "Speaker",
|
||||
"Headphone", "Headphones";
|
||||
pin-switches = "Speaker";
|
||||
audio-routing =
|
||||
"Speaker", "Speaker Amp OUT",
|
||||
"Speaker Amp IN", "HPH_R",
|
||||
"Headphones", "HPH_L",
|
||||
"Headphones", "HPH_R",
|
||||
"AMIC1", "MIC BIAS Internal1",
|
||||
"AMIC2", "MIC BIAS Internal2",
|
||||
"AMIC3", "MIC BIAS Internal3";
|
||||
aux-devs = <&speaker_amp>;
|
||||
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&cdc_pdm_lines_act>;
|
||||
pinctrl-1 = <&cdc_pdm_lines_sus>;
|
||||
|
||||
mm1-dai-link {
|
||||
link-name = "MultiMedia1";
|
||||
cpu {
|
||||
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
|
||||
};
|
||||
};
|
||||
|
||||
primary-dai-link {
|
||||
link-name = "Primary MI2S";
|
||||
cpu {
|
||||
sound-dai = <&q6afedai PRIMARY_MI2S_RX>;
|
||||
};
|
||||
platform {
|
||||
sound-dai = <&q6routing>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -64,6 +64,7 @@ allOf:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,sc7280-lpass-wsa-macro
|
||||
- qcom,sm8250-lpass-wsa-macro
|
||||
- qcom,sm8450-lpass-wsa-macro
|
||||
- qcom,sc8280xp-lpass-wsa-macro
|
||||
then:
|
||||
@@ -79,24 +80,6 @@ allOf:
|
||||
- const: dcodec
|
||||
- const: fsgen
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,sm8250-lpass-wsa-macro
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
minItems: 6
|
||||
clock-names:
|
||||
items:
|
||||
- const: mclk
|
||||
- const: npl
|
||||
- const: macro
|
||||
- const: dcodec
|
||||
- const: va
|
||||
- const: fsgen
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
@@ -130,8 +113,7 @@ examples:
|
||||
<&audiocc 0>,
|
||||
<&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
|
||||
<&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
|
||||
<&aoncc LPASS_CDC_VA_MCLK>,
|
||||
<&vamacro>;
|
||||
clock-names = "mclk", "npl", "macro", "dcodec", "va", "fsgen";
|
||||
clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
|
||||
clock-output-names = "mclk";
|
||||
};
|
||||
|
||||
@@ -27,9 +27,7 @@ properties:
|
||||
- qcom,sm8650-sndcard
|
||||
- const: qcom,sm8450-sndcard
|
||||
- enum:
|
||||
- qcom,apq8016-sbc-sndcard
|
||||
- qcom,apq8096-sndcard
|
||||
- qcom,msm8916-qdsp6-sndcard
|
||||
- qcom,qcm6490-idp-sndcard
|
||||
- qcom,qcs6490-rb3gen2-sndcard
|
||||
- qcom,qrb5165-rb5-sndcard
|
||||
@@ -58,18 +56,6 @@ properties:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description: User visible long sound card name
|
||||
|
||||
pin-switches:
|
||||
description: List of widget names for which pin switches should be created.
|
||||
$ref: /schemas/types.yaml#/definitions/string-array
|
||||
|
||||
widgets:
|
||||
description: User specified audio sound widgets.
|
||||
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
|
||||
|
||||
# Only valid for some compatibles (see allOf if below)
|
||||
reg: true
|
||||
reg-names: true
|
||||
|
||||
patternProperties:
|
||||
".*-dai-link$":
|
||||
description:
|
||||
@@ -122,34 +108,6 @@ required:
|
||||
- compatible
|
||||
- model
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,apq8016-sbc-sndcard
|
||||
- qcom,msm8916-qdsp6-sndcard
|
||||
then:
|
||||
properties:
|
||||
reg:
|
||||
items:
|
||||
- description: Microphone I/O mux register address
|
||||
- description: Speaker I/O mux register address
|
||||
reg-names:
|
||||
items:
|
||||
- const: mic-iomux
|
||||
- const: spkr-iomux
|
||||
required:
|
||||
- compatible
|
||||
- model
|
||||
- reg
|
||||
- reg-names
|
||||
else:
|
||||
properties:
|
||||
reg: false
|
||||
reg-names: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
@@ -231,98 +189,3 @@ examples:
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
- |
|
||||
#include <dt-bindings/sound/qcom,lpass.h>
|
||||
sound@7702000 {
|
||||
compatible = "qcom,apq8016-sbc-sndcard";
|
||||
reg = <0x07702000 0x4>, <0x07702004 0x4>;
|
||||
reg-names = "mic-iomux", "spkr-iomux";
|
||||
|
||||
model = "DB410c";
|
||||
audio-routing =
|
||||
"AMIC2", "MIC BIAS Internal2",
|
||||
"AMIC3", "MIC BIAS External1";
|
||||
|
||||
pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
|
||||
pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
|
||||
quaternary-dai-link {
|
||||
link-name = "ADV7533";
|
||||
cpu {
|
||||
sound-dai = <&lpass MI2S_QUATERNARY>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&adv_bridge 0>;
|
||||
};
|
||||
};
|
||||
|
||||
primary-dai-link {
|
||||
link-name = "WCD";
|
||||
cpu {
|
||||
sound-dai = <&lpass MI2S_PRIMARY>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
|
||||
};
|
||||
};
|
||||
|
||||
tertiary-dai-link {
|
||||
link-name = "WCD-Capture";
|
||||
cpu {
|
||||
sound-dai = <&lpass MI2S_TERTIARY>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
- |
|
||||
#include <dt-bindings/sound/qcom,q6afe.h>
|
||||
#include <dt-bindings/sound/qcom,q6asm.h>
|
||||
sound@7702000 {
|
||||
compatible = "qcom,msm8916-qdsp6-sndcard";
|
||||
reg = <0x07702000 0x4>, <0x07702004 0x4>;
|
||||
reg-names = "mic-iomux", "spkr-iomux";
|
||||
|
||||
model = "msm8916";
|
||||
widgets =
|
||||
"Speaker", "Speaker",
|
||||
"Headphone", "Headphones";
|
||||
pin-switches = "Speaker";
|
||||
audio-routing =
|
||||
"Speaker", "Speaker Amp OUT",
|
||||
"Speaker Amp IN", "HPH_R",
|
||||
"Headphones", "HPH_L",
|
||||
"Headphones", "HPH_R",
|
||||
"AMIC1", "MIC BIAS Internal1",
|
||||
"AMIC2", "MIC BIAS Internal2",
|
||||
"AMIC3", "MIC BIAS Internal3";
|
||||
aux-devs = <&speaker_amp>;
|
||||
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&cdc_pdm_lines_act>;
|
||||
pinctrl-1 = <&cdc_pdm_lines_sus>;
|
||||
|
||||
mm1-dai-link {
|
||||
link-name = "MultiMedia1";
|
||||
cpu {
|
||||
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
|
||||
};
|
||||
};
|
||||
|
||||
primary-dai-link {
|
||||
link-name = "Primary MI2S";
|
||||
cpu {
|
||||
sound-dai = <&q6afedai PRIMARY_MI2S_RX>;
|
||||
};
|
||||
platform {
|
||||
sound-dai = <&q6routing>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -30,6 +30,18 @@ properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Master clock to the CODEC
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: mclk
|
||||
|
||||
port:
|
||||
$ref: audio-graph-port.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
@@ -112,6 +112,12 @@ properties:
|
||||
description: List of necessary clock names.
|
||||
# details are defined below
|
||||
|
||||
post-init-providers:
|
||||
description: At least if rsnd is using DPCM connection on Audio-Graph-Card2,
|
||||
fw_devlink might doesn't have enough information to break the cycle. rsnd
|
||||
driver will not be probed in such case. Same problem might occur with
|
||||
Multi-CPU/Codec or Codec2Codec.
|
||||
|
||||
# ports is below
|
||||
port:
|
||||
$ref: audio-graph-port.yaml#/definitions/port-base
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user