mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
Merge tag 'sound-7.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai:
"Nothing too thrilling here, but we see lots of driver updates and bug
fixes, including quirk additions and refactoring works, while there
have been little changes in the core functionality. Here are some
highlights:
Core:
- Add validation for the control API put callback
- Fixes in compress-offload API timestamp handling
- Continued ASoC core API cleanups
ASoC:
- Add support for bus keepers (for Apple devices in future)
- Enhancements to the SDCA support, including retaskable jacks
- Test improvements for Cirrus Logic drivers
- Lots of fixes for the NXP, nVidia and Qualcomm
- Support for AMD RPL DMIC, Cirrus Logic CS42L43 and CS47L47, nVidia
machines with CPCAP and WM8962
USB-audio:
- Quirks for Huawei Headset, Focusrite Novation, MV-Silicon, Studio
1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus
AudioBox, Moondrop Ju Jiu, Scarlett 18i20, etc
- Extended mixer volume quirk handling
- UAF and other fixes for us144mkii, 6fire and caiaq drivers
HD-audio:
- Add quirks or fixes for Acer, Lenovo, HP, ASUS machines
- Fixes & cleanups of GPIO helper code
Misc:
- Add suspend/resume support for multiple legacy ISA and Apple
drivers
- Further regression fixes for ctxfi driver"
* tag 'sound-7.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (359 commits)
ALSA: control: Validate buf_len before strnlen() in snd_ctl_elem_init_enum_names()
ALSA: usb-audio: Fix missing error handling for get_min_max*()
ALSA: hda/realtek - fixed speaker no sound update
ALSA: hda/realtek: Add quirk for Acer PT316-51S headset mic
ALSA: usb-audio: Exclude Scarlett 18i20 1st Gen from SKIP_IFACE_SETUP
ALSA: hda/realtek: Add quirk for Legion S7 15IMH
ALSA: hda/realtek: Add quirk for HP Spectre x360 14-ea
ALSA: caiaq: take a reference on the USB device in create_card()
ASoC: dt-bindings: rockchip: convert rk3399-gru-sound to DT Schema
ALSA: sscape: Add suspend and resume support
ALSA: sscape: Cache per-card resources for board reinitialization
ALSA: usb-audio: Do not expose sticky mixers
ALSA: usb-audio: Move volume control resolution check into a function
ALSA: usb-audio: Add error checks against get_min_max*()
ALSA: usb-audio: Add quirk for PreSonus AudioBox USB
ALSA: interwave: guard PM-only restore helpers with CONFIG_PM
ALSA: usb-audio: Evaluate packsize caps at the right place
ALSA: sc6000: Restore board setup across suspend
ALSA: sc6000: Keep the programmed board state in card-private data
ALSA: 6fire: fix use-after-free on disconnect
...
This commit is contained in:
@@ -1,14 +0,0 @@
|
||||
Analog Devices SSM2305 Speaker Amplifier
|
||||
========================================
|
||||
|
||||
Required properties:
|
||||
- compatible : "adi,ssm2305"
|
||||
- shutdown-gpios : The gpio connected to the shutdown pin.
|
||||
The gpio signal is ACTIVE_LOW.
|
||||
|
||||
Example:
|
||||
|
||||
ssm2305: analog-amplifier {
|
||||
compatible = "adi,ssm2305";
|
||||
shutdown-gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
46
Documentation/devicetree/bindings/sound/adi,ssm2305.yaml
Normal file
46
Documentation/devicetree/bindings/sound/adi,ssm2305.yaml
Normal file
@@ -0,0 +1,46 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/adi,ssm2305.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices SSM2305 Class-D Speaker Amplifier
|
||||
|
||||
maintainers:
|
||||
- Lars-Peter Clausen <lars@metafoo.de>
|
||||
|
||||
description:
|
||||
The SSM2305 is a filterless, high efficiency, mono 2.8 W Class-D
|
||||
audio amplifier with a micropower shutdown mode controlled via a
|
||||
dedicated active-low GPIO pin.
|
||||
|
||||
allOf:
|
||||
- $ref: dai-common.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: adi,ssm2305
|
||||
|
||||
shutdown-gpios:
|
||||
maxItems: 1
|
||||
description:
|
||||
GPIO connected to the shutdown pin (SD) of the SSM2305.
|
||||
The pin is active-low; asserting it puts the device into
|
||||
micropower shutdown mode.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- shutdown-gpios
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
analog-amplifier {
|
||||
compatible = "adi,ssm2305";
|
||||
shutdown-gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
...
|
||||
@@ -35,6 +35,10 @@ properties:
|
||||
|
||||
dvdd-supply: true
|
||||
|
||||
firmware-name:
|
||||
maxItems: 1
|
||||
description: Name of the *_acf.bin file used for amplifier initialization
|
||||
|
||||
awinic,audio-channel:
|
||||
description:
|
||||
It is used to distinguish multiple PA devices, so that different
|
||||
|
||||
@@ -16,6 +16,8 @@ description: |
|
||||
DAC for headphone output, two integrated Class D amplifiers for
|
||||
loudspeakers, and two ADCs for wired headset microphone input or
|
||||
stereo line input. PDM inputs are provided for digital microphones.
|
||||
CS42L43B variant adds dedicated PDM interface, SoundWire Clock Gearing
|
||||
support and more decimators to ISRCs.
|
||||
|
||||
allOf:
|
||||
- $ref: dai-common.yaml#
|
||||
@@ -24,6 +26,7 @@ properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cirrus,cs42l43
|
||||
- cirrus,cs42l43b
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
* Hisilicon 6210 i2s controller
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: should be one of the following:
|
||||
- "hisilicon,hi6210-i2s"
|
||||
- reg: physical base address of the i2s controller unit and length of
|
||||
memory mapped region.
|
||||
- interrupts: should contain the i2s interrupt.
|
||||
- clocks: a list of phandle + clock-specifier pairs, one for each entry
|
||||
in clock-names.
|
||||
- clock-names: should contain following:
|
||||
- "dacodec"
|
||||
- "i2s-base"
|
||||
- dmas: DMA specifiers for tx dma. See the DMA client binding,
|
||||
Documentation/devicetree/bindings/dma/dma.txt
|
||||
- dma-names: should be "tx" and "rx"
|
||||
- hisilicon,sysctrl-syscon: phandle to sysctrl syscon
|
||||
- #sound-dai-cells: Should be set to 1 (for multi-dai)
|
||||
- The dai cell indexes reference the following interfaces:
|
||||
0: S2 interface
|
||||
(Currently that is the only one available, but more may be
|
||||
supported in the future)
|
||||
|
||||
Example for the hi6210 i2s controller:
|
||||
|
||||
i2s0: i2s@f7118000{
|
||||
compatible = "hisilicon,hi6210-i2s";
|
||||
reg = <0x0 0xf7118000 0x0 0x8000>; /* i2s unit */
|
||||
interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; /* 155 "DigACodec_intr"-32 */
|
||||
clocks = <&sys_ctrl HI6220_DACODEC_PCLK>,
|
||||
<&sys_ctrl HI6220_BBPPLL0_DIV>;
|
||||
clock-names = "dacodec", "i2s-base";
|
||||
dmas = <&dma0 15 &dma0 14>;
|
||||
dma-names = "rx", "tx";
|
||||
hisilicon,sysctrl-syscon = <&sys_ctrl>;
|
||||
#sound-dai-cells = <1>;
|
||||
};
|
||||
|
||||
Then when referencing the i2s controller:
|
||||
sound-dai = <&i2s0 0>; /* index 0 => S2 interface */
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/hisilicon,hi6210-i2s.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: HiSilicon hi6210 I2S controller
|
||||
|
||||
maintainers:
|
||||
- John Stultz <john.stultz@linaro.org>
|
||||
|
||||
allOf:
|
||||
- $ref: dai-common.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: hisilicon,hi6210-i2s
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 2
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: dacodec
|
||||
- const: i2s-base
|
||||
|
||||
dmas:
|
||||
maxItems: 2
|
||||
|
||||
dma-names:
|
||||
items:
|
||||
- const: tx
|
||||
- const: rx
|
||||
|
||||
hisilicon,sysctrl-syscon:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: phandle to sysctrl syscon
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 1
|
||||
description: |
|
||||
The dai cell indexes reference the following interfaces:
|
||||
0: S2 interface
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
- dmas
|
||||
- dma-names
|
||||
- hisilicon,sysctrl-syscon
|
||||
- "#sound-dai-cells"
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/clock/hi6220-clock.h>
|
||||
|
||||
i2s@f7118000 {
|
||||
compatible = "hisilicon,hi6210-i2s";
|
||||
reg = <0xf7118000 0x8000>;
|
||||
interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&sys_ctrl HI6220_DACODEC_PCLK>,
|
||||
<&sys_ctrl HI6220_BBPPLL0_DIV>;
|
||||
clock-names = "dacodec", "i2s-base";
|
||||
dmas = <&dma0 14>, <&dma0 15>;
|
||||
dma-names = "tx", "rx";
|
||||
hisilicon,sysctrl-syscon = <&sys_ctrl>;
|
||||
#sound-dai-cells = <1>;
|
||||
};
|
||||
@@ -24,6 +24,7 @@ patternProperties:
|
||||
cpu/codec dais.
|
||||
|
||||
type: object
|
||||
$ref: tdm-slot.yaml#
|
||||
|
||||
properties:
|
||||
link-name:
|
||||
@@ -38,13 +39,9 @@ patternProperties:
|
||||
- i2s
|
||||
- dsp_b
|
||||
|
||||
dai-tdm-slot-num:
|
||||
description: see tdm-slot.txt.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
dai-tdm-slot-num: true
|
||||
|
||||
dai-tdm-slot-width:
|
||||
description: see tdm-slot.txt.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
dai-tdm-slot-width: true
|
||||
|
||||
playback-only:
|
||||
description: link is used only for playback
|
||||
|
||||
@@ -28,8 +28,6 @@ properties:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: The phandle of the WM8960 audio codec.
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- mediatek,platform
|
||||
@@ -38,6 +36,8 @@ required:
|
||||
- pinctrl-names
|
||||
- pinctrl-0
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
sound {
|
||||
|
||||
@@ -36,14 +36,14 @@ properties:
|
||||
required:
|
||||
- sound-dai
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- audio-routing
|
||||
- platform
|
||||
- codec
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
sound {
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/mediatek,mt8173-rt5650-rt5514.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Mediatek MT8173 with RT5650 and RT5514 audio codecs
|
||||
|
||||
maintainers:
|
||||
- Koro Chen <koro.chen@mediatek.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: mediatek,mt8173-rt5650-rt5514
|
||||
|
||||
mediatek,audio-codec:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
description: Phandles of rt5650 and rt5514 codecs
|
||||
items:
|
||||
- description: phandle of rt5650 codec
|
||||
- description: phandle of rt5514 codec
|
||||
|
||||
mediatek,platform:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: The phandle of MT8173 ASoC platform.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- mediatek,audio-codec
|
||||
- mediatek,platform
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
sound {
|
||||
compatible = "mediatek,mt8173-rt5650-rt5514";
|
||||
mediatek,audio-codec = <&rt5650>, <&rt5514>;
|
||||
mediatek,platform = <&afe>;
|
||||
};
|
||||
...
|
||||
@@ -105,12 +105,12 @@ patternProperties:
|
||||
required:
|
||||
- link-name
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- mediatek,platform
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
sound {
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
MT8173 with RT5650 RT5514 CODECS
|
||||
|
||||
Required properties:
|
||||
- compatible : "mediatek,mt8173-rt5650-rt5514"
|
||||
- mediatek,audio-codec: the phandles of rt5650 and rt5514 codecs
|
||||
- mediatek,platform: the phandle of MT8173 ASoC platform
|
||||
|
||||
Example:
|
||||
|
||||
sound {
|
||||
compatible = "mediatek,mt8173-rt5650-rt5514";
|
||||
mediatek,audio-codec = <&rt5650 &rt5514>;
|
||||
mediatek,platform = <&afe>;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/nvidia,tegra-audio-cpcap.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: NVIDIA Tegra audio complex with CPCAP CODEC
|
||||
|
||||
maintainers:
|
||||
- Svyatoslav Ryhel <clamor95@gmail.com>
|
||||
|
||||
allOf:
|
||||
- $ref: nvidia,tegra-audio-common.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- pattern: '^motorola,tegra-audio-cpcap(-[a-z0-9]+)+$'
|
||||
- const: nvidia,tegra-audio-cpcap
|
||||
|
||||
nvidia,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 for sources and sinks are
|
||||
the pins (documented in the binding document), and the jacks on the
|
||||
board.
|
||||
minItems: 2
|
||||
items:
|
||||
enum:
|
||||
# Board Connectors
|
||||
- Speakers
|
||||
- Int Spk
|
||||
- Earpiece
|
||||
- Int Mic
|
||||
- Headset Mic
|
||||
- Internal Mic 1
|
||||
- Internal Mic 2
|
||||
- Headphone
|
||||
- Headphones
|
||||
- Headphone Jack
|
||||
- Mic Jack
|
||||
|
||||
# CODEC Pins
|
||||
- MICR
|
||||
- HSMIC
|
||||
- EMUMIC
|
||||
- MICL
|
||||
- EXTR
|
||||
- EXTL
|
||||
- EP
|
||||
- SPKR
|
||||
- SPKL
|
||||
- LINER
|
||||
- LINEL
|
||||
- HSR
|
||||
- HSL
|
||||
- EMUR
|
||||
- EMUL
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/tegra20-car.h>
|
||||
#include <dt-bindings/soc/tegra-pmc.h>
|
||||
sound {
|
||||
compatible = "motorola,tegra-audio-cpcap-olympus",
|
||||
"nvidia,tegra-audio-cpcap";
|
||||
nvidia,model = "Motorola Atrix 4G (MB860) CPCAP";
|
||||
|
||||
nvidia,audio-routing =
|
||||
"Headphones", "HSR",
|
||||
"Headphones", "HSL",
|
||||
"Int Spk", "SPKR",
|
||||
"Int Spk", "SPKL",
|
||||
"Earpiece", "EP",
|
||||
"HSMIC", "Mic Jack",
|
||||
"MICR", "Internal Mic 1",
|
||||
"MICL", "Internal Mic 2";
|
||||
|
||||
nvidia,i2s-controller = <&tegra_i2s1>;
|
||||
nvidia,audio-codec = <&cpcap_audio>;
|
||||
|
||||
clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
|
||||
<&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
|
||||
<&tegra_car TEGRA20_CLK_CDEV1>;
|
||||
clock-names = "pll_a", "pll_a_out0", "mclk";
|
||||
};
|
||||
@@ -35,10 +35,15 @@ properties:
|
||||
items:
|
||||
enum:
|
||||
# Board Connectors
|
||||
- Speakers
|
||||
- Int Spk
|
||||
- Headphone
|
||||
- Headphones
|
||||
- Headphone Jack
|
||||
- Earpiece
|
||||
- Headset Mic
|
||||
- Mic Jack
|
||||
- Int Mic
|
||||
- Internal Mic 1
|
||||
- Internal Mic 2
|
||||
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/nvidia,tegra-audio-wm8962.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: NVIDIA Tegra audio complex with WM8962 CODEC
|
||||
|
||||
maintainers:
|
||||
- Svyatoslav Ryhel <clamor95@gmail.com>
|
||||
|
||||
allOf:
|
||||
- $ref: nvidia,tegra-audio-common.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- pattern: '^[a-z0-9]+,tegra-audio-wm8962(-[a-z0-9]+)+$'
|
||||
- const: nvidia,tegra-audio-wm8962
|
||||
|
||||
nvidia,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 for sources and sinks are
|
||||
the pins (documented in the binding document), and the jacks on the
|
||||
board.
|
||||
minItems: 2
|
||||
items:
|
||||
enum:
|
||||
# Board Connectors
|
||||
- Speakers
|
||||
- Int Spk
|
||||
- Earpiece
|
||||
- Int Mic
|
||||
- Headset Mic
|
||||
- Internal Mic 1
|
||||
- Internal Mic 2
|
||||
- Headphone
|
||||
- Headphones
|
||||
- Headphone Jack
|
||||
- Mic Jack
|
||||
|
||||
# CODEC Pins
|
||||
- IN1L
|
||||
- IN1R
|
||||
- IN2L
|
||||
- IN2R
|
||||
- IN3L
|
||||
- IN3R
|
||||
- IN4L
|
||||
- IN4R
|
||||
- DMICDAT
|
||||
- HPOUTL
|
||||
- HPOUTR
|
||||
- SPKOUT
|
||||
- SPKOUTL
|
||||
- SPKOUTR
|
||||
|
||||
required:
|
||||
- nvidia,i2s-controller
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/tegra30-car.h>
|
||||
#include <dt-bindings/soc/tegra-pmc.h>
|
||||
sound {
|
||||
compatible = "microsoft,tegra-audio-wm8962-surface-rt",
|
||||
"nvidia,tegra-audio-wm8962";
|
||||
nvidia,model = "Microsoft Surface RT WM8962";
|
||||
|
||||
nvidia,audio-routing =
|
||||
"Headphone Jack", "HPOUTR",
|
||||
"Headphone Jack", "HPOUTL",
|
||||
"Int Spk", "SPKOUTR",
|
||||
"Int Spk", "SPKOUTL";
|
||||
|
||||
nvidia,i2s-controller = <&tegra_i2s1>;
|
||||
nvidia,audio-codec = <&wm8962>;
|
||||
|
||||
clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
|
||||
<&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
|
||||
<&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
|
||||
clock-names = "pll_a", "pll_a_out0", "mclk";
|
||||
};
|
||||
@@ -126,13 +126,16 @@ patternProperties:
|
||||
reg:
|
||||
contains:
|
||||
# MI2S DAI ID range PRIMARY_MI2S_RX - QUATERNARY_MI2S_TX and
|
||||
# QUINARY_MI2S_RX - QUINARY_MI2S_TX
|
||||
# QUINARY_MI2S_RX - QUINARY_MI2S_TX and
|
||||
# LPI_MI2S_RX_0 - SENARY_MI2S_TX
|
||||
items:
|
||||
oneOf:
|
||||
- minimum: 16
|
||||
maximum: 23
|
||||
- minimum: 127
|
||||
maximum: 128
|
||||
- minimum: 137
|
||||
maximum: 148
|
||||
then:
|
||||
required:
|
||||
- qcom,sd-lines
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
ROCKCHIP with MAX98357A/RT5514/DA7219 codecs on GRU boards
|
||||
|
||||
Required properties:
|
||||
- compatible: "rockchip,rk3399-gru-sound"
|
||||
- rockchip,cpu: The phandle of the Rockchip I2S controller that's
|
||||
connected to the codecs
|
||||
- rockchip,codec: The phandle of the audio codecs
|
||||
|
||||
Optional properties:
|
||||
- dmic-wakeup-delay-ms : specify delay time (ms) for DMIC ready.
|
||||
If this option is specified, which means it's required dmic need
|
||||
delay for DMIC to ready so that rt5514 can avoid recording before
|
||||
DMIC send valid data
|
||||
|
||||
Example:
|
||||
|
||||
sound {
|
||||
compatible = "rockchip,rk3399-gru-sound";
|
||||
rockchip,cpu = <&i2s0>;
|
||||
rockchip,codec = <&max98357a &rt5514 &da7219>;
|
||||
dmic-wakeup-delay-ms = <20>;
|
||||
};
|
||||
@@ -0,0 +1,60 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/rockchip,rk3399-gru-sound.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Rockchip with MAX98357A/RT5514/DA7219 codecs on GRU boards
|
||||
|
||||
maintainers:
|
||||
- Heiko Stuebner <heiko@sntech.de>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: rockchip,rk3399-gru-sound
|
||||
|
||||
rockchip,cpu:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
description: |
|
||||
List of phandles to the Rockchip CPU DAI controllers connected to codecs
|
||||
minItems: 1
|
||||
items:
|
||||
- items:
|
||||
- description: Phandle to the Rockchip I2S controllers
|
||||
- items:
|
||||
- description: |
|
||||
Phandle to the Rockchip SPDIF controller. Required when a
|
||||
DisplayPort audio codec is referenced in rockchip,codec
|
||||
|
||||
rockchip,codec:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
description: |
|
||||
The phandles of the audio codecs connected to the Rockchip CPU DAI
|
||||
controllers
|
||||
minItems: 1
|
||||
maxItems: 6
|
||||
items:
|
||||
maxItems: 1
|
||||
|
||||
dmic-wakeup-delay-ms:
|
||||
description: |
|
||||
specify delay time (ms) for DMIC ready.
|
||||
If this option is specified, a delay is required for DMIC to get ready
|
||||
so that rt5514 can avoid recording before DMIC sends valid data
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- rockchip,cpu
|
||||
- rockchip,codec
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
sound {
|
||||
compatible = "rockchip,rk3399-gru-sound";
|
||||
rockchip,cpu = <&i2s0 &spdif>;
|
||||
rockchip,codec = <&max98357a &rt5514 &da7219 &cdn_dp>;
|
||||
dmic-wakeup-delay-ms = <20>;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/rockchip,rockchip-audio-max98090.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Rockchip audio complex with MAX98090 codec
|
||||
|
||||
maintainers:
|
||||
- Fabio Estevam <festevam@gmail.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: rockchip,rockchip-audio-max98090
|
||||
|
||||
rockchip,model:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description: The user-visible name of this sound complex.
|
||||
|
||||
rockchip,i2s-controller:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: Phandle to the Rockchip I2S controller.
|
||||
|
||||
rockchip,audio-codec:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: Phandle to the MAX98090 audio codec.
|
||||
|
||||
rockchip,headset-codec:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: Phandle to the external chip for jack detection.
|
||||
|
||||
rockchip,hdmi-codec:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: Phandle to the HDMI device for HDMI codec.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- rockchip,model
|
||||
- rockchip,i2s-controller
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
required:
|
||||
- rockchip,audio-codec
|
||||
then:
|
||||
required:
|
||||
- rockchip,headset-codec
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
sound {
|
||||
compatible = "rockchip,rockchip-audio-max98090";
|
||||
rockchip,model = "ROCKCHIP-I2S";
|
||||
rockchip,i2s-controller = <&i2s>;
|
||||
rockchip,audio-codec = <&max98090>;
|
||||
rockchip,headset-codec = <&headsetcodec>;
|
||||
};
|
||||
@@ -1,42 +0,0 @@
|
||||
ROCKCHIP with MAX98090 CODEC
|
||||
|
||||
Required properties:
|
||||
- compatible: "rockchip,rockchip-audio-max98090"
|
||||
- rockchip,model: The user-visible name of this sound complex
|
||||
- rockchip,i2s-controller: The phandle of the Rockchip I2S controller that's
|
||||
connected to the CODEC
|
||||
|
||||
Optional properties:
|
||||
- rockchip,audio-codec: The phandle of the MAX98090 audio codec.
|
||||
- rockchip,headset-codec: The phandle of Ext chip for jack detection. This is
|
||||
required if there is rockchip,audio-codec.
|
||||
- rockchip,hdmi-codec: The phandle of HDMI device for HDMI codec.
|
||||
|
||||
Example:
|
||||
|
||||
/* For max98090-only board. */
|
||||
sound {
|
||||
compatible = "rockchip,rockchip-audio-max98090";
|
||||
rockchip,model = "ROCKCHIP-I2S";
|
||||
rockchip,i2s-controller = <&i2s>;
|
||||
rockchip,audio-codec = <&max98090>;
|
||||
rockchip,headset-codec = <&headsetcodec>;
|
||||
};
|
||||
|
||||
/* For HDMI-only board. */
|
||||
sound {
|
||||
compatible = "rockchip,rockchip-audio-max98090";
|
||||
rockchip,model = "ROCKCHIP-I2S";
|
||||
rockchip,i2s-controller = <&i2s>;
|
||||
rockchip,hdmi-codec = <&hdmi>;
|
||||
};
|
||||
|
||||
/* For max98090 plus HDMI board. */
|
||||
sound {
|
||||
compatible = "rockchip,rockchip-audio-max98090";
|
||||
rockchip,model = "ROCKCHIP-I2S";
|
||||
rockchip,i2s-controller = <&i2s>;
|
||||
rockchip,audio-codec = <&max98090>;
|
||||
rockchip,headset-codec = <&headsetcodec>;
|
||||
rockchip,hdmi-codec = <&hdmi>;
|
||||
};
|
||||
@@ -27,14 +27,6 @@ definitions:
|
||||
description: dai-link uses bit clock inversion
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
|
||||
dai-tdm-slot-num:
|
||||
description: see tdm-slot.txt.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
dai-tdm-slot-width:
|
||||
description: see tdm-slot.txt.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
system-clock-frequency:
|
||||
description: |
|
||||
If a clock is specified and a multiplication factor is given with
|
||||
@@ -115,6 +107,8 @@ definitions:
|
||||
|
||||
dai:
|
||||
type: object
|
||||
$ref: tdm-slot.yaml#
|
||||
|
||||
properties:
|
||||
sound-dai:
|
||||
maxItems: 1
|
||||
@@ -133,10 +127,6 @@ definitions:
|
||||
bitclock-master:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
|
||||
dai-tdm-slot-num:
|
||||
$ref: "#/definitions/dai-tdm-slot-num"
|
||||
dai-tdm-slot-width:
|
||||
$ref: "#/definitions/dai-tdm-slot-width"
|
||||
clocks:
|
||||
maxItems: 1
|
||||
system-clock-frequency:
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
TDM slot:
|
||||
|
||||
This specifies audio DAI's TDM slot.
|
||||
|
||||
TDM slot properties:
|
||||
dai-tdm-slot-num : Number of slots in use.
|
||||
dai-tdm-slot-width : Width in bits for each slot.
|
||||
dai-tdm-slot-tx-mask : Transmit direction slot mask, optional
|
||||
dai-tdm-slot-rx-mask : Receive direction slot mask, optional
|
||||
|
||||
For instance:
|
||||
dai-tdm-slot-num = <2>;
|
||||
dai-tdm-slot-width = <8>;
|
||||
dai-tdm-slot-tx-mask = <0 1>;
|
||||
dai-tdm-slot-rx-mask = <1 0>;
|
||||
|
||||
And for each specified driver, there could be one .of_xlate_tdm_slot_mask()
|
||||
to specify an explicit mapping of the channels and the slots. If it's absent
|
||||
the default snd_soc_of_xlate_tdm_slot_mask() will be used to generating the
|
||||
tx and rx masks.
|
||||
|
||||
For snd_soc_of_xlate_tdm_slot_mask(), the tx and rx masks will use a 1 bit
|
||||
for an active slot as default, and the default active bits are at the LSB of
|
||||
the masks.
|
||||
|
||||
The explicit masks are given as array of integers, where the first
|
||||
number presents bit-0 (LSB), second presents bit-1, etc. Any non zero
|
||||
number is considered 1 and 0 is 0. snd_soc_of_xlate_tdm_slot_mask()
|
||||
does not do anything, if either mask is set non zero value.
|
||||
52
Documentation/devicetree/bindings/sound/tdm-slot.yaml
Normal file
52
Documentation/devicetree/bindings/sound/tdm-slot.yaml
Normal file
@@ -0,0 +1,52 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/tdm-slot.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Time Division Multiplexing (TDM) Slot Parameters
|
||||
|
||||
maintainers:
|
||||
- Liam Girdwood <lgirdwood@gmail.com>
|
||||
|
||||
select: false
|
||||
|
||||
properties:
|
||||
dai-tdm-slot-num:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Number of slots in use
|
||||
|
||||
dai-tdm-slot-width:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Width, in bits, of each slot
|
||||
|
||||
dai-tdm-idle-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
enum:
|
||||
- none
|
||||
- off
|
||||
- zero
|
||||
- pulldown
|
||||
- hiz
|
||||
- pullup
|
||||
- drivehigh
|
||||
description: Drive mode for inactive/idle TDM slots. For hardware that
|
||||
implements .set_tdm_idle(). Optional. "None" represents undefined
|
||||
behaviour and is the same as not setting this property.
|
||||
|
||||
patternProperties:
|
||||
'^dai-tdm-slot-[rt]x-mask$':
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
description: Slot mask for active TDM slots. Optional. Drivers may
|
||||
specify .xlate_tdm_slot_mask() to generate a slot mask dynamically. If
|
||||
neither this property nor a driver-specific function are specified, the
|
||||
default snd_soc_xlate_tdm_slot_mask() function will be used to generate
|
||||
a mask. The first element of the array is slot 0 (LSB). Any nonzero
|
||||
value will be treated as 1.
|
||||
|
||||
'^dai-tdm-slot-[rt]x-idle-mask$':
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Idle slot mask. Optional. A bit being set to 1 indicates
|
||||
that the corresponding TDM slot is inactive/idle.
|
||||
|
||||
additionalProperties: true
|
||||
@@ -30,7 +30,7 @@ properties:
|
||||
description: |
|
||||
I2C address of the device can be between 0x41 to 0x48.
|
||||
|
||||
reset-gpio:
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO used to reset the device.
|
||||
|
||||
@@ -82,7 +82,7 @@ examples:
|
||||
#sound-dai-cells = <0>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <14>;
|
||||
reset-gpio = <&gpio1 15 GPIO_ACTIVE_HIGH>;
|
||||
reset-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
|
||||
shutdown-gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
|
||||
ti,imon-slot-no = <0>;
|
||||
ti,vmon-slot-no = <2>;
|
||||
|
||||
@@ -2376,6 +2376,13 @@ quirk_flags
|
||||
Skip the probe-time interface setup (usb_set_interface,
|
||||
init_pitch, init_sample_rate); redundant with
|
||||
snd_usb_endpoint_prepare() at stream-open time
|
||||
* bit 27: ``mixer_playback_linear_vol``
|
||||
Set linear volume mapping for devices where the playback volume
|
||||
control value is mapped to voltage (instead of dB) level linearly.
|
||||
In short: ``x(raw) = (raw - raw_min) / (raw_max - raw_min)``;
|
||||
``V(x) = k * x``; ``dB(x) = 20 * log10(x)``. Overrides bit 24
|
||||
* bit 28: ``mixer_capture_linear_vol``
|
||||
Similar to bit 27 but for capture streams. Overrides bit 25
|
||||
|
||||
This module supports multiple devices, autoprobe and hotplugging.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user