mirror of
https://github.com/armbian/linux-cix.git
synced 2026-01-06 12:30:45 -08:00
Merge tag 'sound-5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai:
"It's been a fairly calm development cycle. There are a few last-minute
ALSA core fixes, most notably for covering PCM ioctl races, but the
most of rest are device-specific changes.
Below are some highlights:
ALSA core:
- Fixes for PCM ioctl races that may lead to UAF
- Fix for oversized allocations in PCM OSS layer
ASoC:
- Start of moving SoF to support multiple IPC mechanisms
- Use of NHLT ACPI table to reduce the amount of quirking required
for Intel systems
- Preliminary works forthcoming Intel AVS driver for legacy Intel DSP
firmwares
- Support for AMD PDM, Atmel PDMC, Awinic AW8738, i.MX cards with
TLV320AIC31xx, Intel machines with CS35L41 and ESSX8336, Mediatek
MT8181 wideband bluetooth, nVidia Tegra234, Qualcomm SC7280,
Renesas RZ/V2L, Texas Instruments TAS585M
HD-audio:
- Driver re-binding fix for HD-audio
- Updates for Intel ADL and Tegra234, various platform quirks for
Dell, HP, Lenovo, ASUS, Samsung and Clevo machines
USB-audio:
- Quirk updates for Scarlett2, RODE, Corsair devices"
* tag 'sound-5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (486 commits)
ALSA: hda/realtek: Add alc256-samsung-headphone fixup
ALSA: pci: fix reading of swapped values from pcmreg in AC97 codec
ALSA: pcm: Add stream lock during PCM reset ioctl operations
ALSA: pcm: Fix races among concurrent prealloc proc writes
ALSA: pcm: Fix races among concurrent prepare and hw_params/hw_free calls
ALSA: pcm: Fix races among concurrent read/write and buffer changes
ALSA: pcm: Fix races among concurrent hw_params and hw_free calls
ASoC: atmel: mchp-pdmc: print the correct property name
MAINTAINERS: Add Shengjiu to maintainer list of sound/soc/fsl
ASoC: SOF: Add a new dai_get_clk topology IPC op
ASoC: SOF: topology: Add ops for setting up and tearing down pipelines
ASoC: SOF: expose sof_route_setup()
ASoC: SOF: Add dai_link_fixup PCM op for IPC3
ASoC: SOF: Add trigger PCM op for IPC3
ASoC: SOF: Define hw_params PCM op for IPC3
ASoC: SOF: Introduce IPC3 PCM hw_free op
ASoC: SOF: pcm: expose the sof_pcm_setup_connected_widgets() function
ASoC: SOF: Introduce IPC-specific PCM ops
ASoC: SOF: Add bytes_ext control IPC ops for IPC3
ASoC: SOF: Add bytes_get/put control IPC ops for IPC3
...
This commit is contained in:
@@ -21,6 +21,7 @@ properties:
|
||||
- const: nvidia,tegra210-aconnect
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra234-aconnect
|
||||
- nvidia,tegra186-aconnect
|
||||
- nvidia,tegra194-aconnect
|
||||
- const: nvidia,tegra210-aconnect
|
||||
|
||||
@@ -23,7 +23,9 @@ properties:
|
||||
- nvidia,tegra210-adma
|
||||
- nvidia,tegra186-adma
|
||||
- items:
|
||||
- const: nvidia,tegra194-adma
|
||||
- enum:
|
||||
- nvidia,tegra234-adma
|
||||
- nvidia,tegra194-adma
|
||||
- const: nvidia,tegra186-adma
|
||||
|
||||
reg:
|
||||
|
||||
@@ -58,6 +58,7 @@ properties:
|
||||
- enum:
|
||||
- nvidia,tegra186-agic
|
||||
- nvidia,tegra194-agic
|
||||
- nvidia,tegra234-agic
|
||||
- const: nvidia,tegra210-agic
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
@@ -31,6 +31,10 @@ properties:
|
||||
- const: allwinner,sun50i-a64-i2s
|
||||
- const: allwinner,sun8i-h3-i2s
|
||||
- const: allwinner,sun50i-h6-i2s
|
||||
- const: allwinner,sun50i-r329-i2s
|
||||
- items:
|
||||
- const: allwinner,sun20i-d1-i2s
|
||||
- const: allwinner,sun50i-r329-i2s
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
@@ -67,6 +71,7 @@ allOf:
|
||||
- allwinner,sun8i-h3-i2s
|
||||
- allwinner,sun50i-a64-codec-i2s
|
||||
- allwinner,sun50i-h6-i2s
|
||||
- allwinner,sun50i-r329-i2s
|
||||
|
||||
then:
|
||||
required:
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
Audio Binding for Arndale boards
|
||||
|
||||
Required properties:
|
||||
- compatible : Can be one of the following:
|
||||
"samsung,arndale-rt5631",
|
||||
"samsung,arndale-wm1811"
|
||||
|
||||
- samsung,audio-cpu: The phandle of the Samsung I2S controller
|
||||
- samsung,audio-codec: The phandle of the audio codec
|
||||
|
||||
Optional:
|
||||
- samsung,model: The name of the sound-card
|
||||
|
||||
Arndale Boards has many audio daughter cards, one of them is
|
||||
rt5631/alc5631. Below example shows audio bindings for rt5631/
|
||||
alc5631 based codec.
|
||||
|
||||
Example:
|
||||
|
||||
sound {
|
||||
compatible = "samsung,arndale-rt5631";
|
||||
|
||||
samsung,audio-cpu = <&i2s0>
|
||||
samsung,audio-codec = <&rt5631>;
|
||||
};
|
||||
@@ -71,4 +71,24 @@ patternProperties:
|
||||
description: CPU to Codec rate channels.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
dai-tdm-slot-width-map:
|
||||
description: Mapping of sample widths to slot widths. For hardware
|
||||
that cannot support a fixed slot width or a slot width always
|
||||
equal to sample width. A matrix of one or more 3-tuples.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-matrix
|
||||
items:
|
||||
items:
|
||||
-
|
||||
description: Sample width in bits
|
||||
minimum: 8
|
||||
maximum: 64
|
||||
-
|
||||
description: Slot width in bits
|
||||
minimum: 8
|
||||
maximum: 256
|
||||
-
|
||||
description: Slot count
|
||||
minimum: 1
|
||||
maximum: 64
|
||||
|
||||
additionalProperties: true
|
||||
|
||||
54
Documentation/devicetree/bindings/sound/awinic,aw8738.yaml
Normal file
54
Documentation/devicetree/bindings/sound/awinic,aw8738.yaml
Normal file
@@ -0,0 +1,54 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/awinic,aw8738.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Awinic AW8738 Audio Amplifier
|
||||
|
||||
maintainers:
|
||||
- Stephan Gerhold <stephan@gerhold.net>
|
||||
|
||||
description:
|
||||
The Awinic AW8738 is a simple audio amplifier with different operation modes
|
||||
(set using one-wire pulse control). The mode configures the speaker-guard
|
||||
function (primarily the power limit for the amplifier).
|
||||
|
||||
allOf:
|
||||
- $ref: name-prefix.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: awinic,aw8738
|
||||
|
||||
mode-gpios:
|
||||
description:
|
||||
GPIO used for one-wire pulse control. The pin is typically called SHDN
|
||||
(active-low), but this is misleading since it is actually more than
|
||||
just a simple shutdown/enable control.
|
||||
maxItems: 1
|
||||
|
||||
awinic,mode:
|
||||
description: Operation mode (number of pulses for one-wire pulse control)
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 7
|
||||
|
||||
sound-name-prefix: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- mode-gpios
|
||||
- awinic,mode
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
audio-amplifier {
|
||||
compatible = "awinic,aw8738";
|
||||
mode-gpios = <&msmgpio 114 GPIO_ACTIVE_HIGH>;
|
||||
awinic,mode = <5>;
|
||||
sound-name-prefix = "Speaker Amp";
|
||||
};
|
||||
@@ -1,86 +0,0 @@
|
||||
Texas Instruments McASP controller
|
||||
|
||||
Required properties:
|
||||
- compatible :
|
||||
"ti,dm646x-mcasp-audio" : for DM646x platforms
|
||||
"ti,da830-mcasp-audio" : for both DA830 & DA850 platforms
|
||||
"ti,am33xx-mcasp-audio" : for AM33xx platforms (AM33xx, AM43xx, TI81xx)
|
||||
"ti,dra7-mcasp-audio" : for DRA7xx platforms
|
||||
"ti,omap4-mcasp-audio" : for OMAP4
|
||||
|
||||
- reg : Should contain reg specifiers for the entries in the reg-names property.
|
||||
- reg-names : Should contain:
|
||||
* "mpu" for the main registers (required). For compatibility with
|
||||
existing software, it is recommended this is the first entry.
|
||||
* "dat" for separate data port register access (optional).
|
||||
- op-mode : I2S/DIT ops mode. 0 for I2S mode. 1 for DIT mode used for S/PDIF,
|
||||
IEC60958-1, and AES-3 formats.
|
||||
- tdm-slots : Slots for TDM operation. Indicates number of channels transmitted
|
||||
or received over one serializer.
|
||||
- serial-dir : A list of serializer configuration. Each entry is a number
|
||||
indication for serializer pin direction.
|
||||
(0 - INACTIVE, 1 - TX, 2 - RX)
|
||||
- dmas: two element list of DMA controller phandles and DMA request line
|
||||
ordered pairs.
|
||||
- dma-names: identifier string for each DMA request line in the dmas property.
|
||||
These strings correspond 1:1 with the ordered pairs in dmas. The dma
|
||||
identifiers must be "rx" and "tx".
|
||||
|
||||
Optional properties:
|
||||
|
||||
- ti,hwmods : Must be "mcasp<n>", n is controller instance starting 0
|
||||
- tx-num-evt : FIFO levels.
|
||||
- rx-num-evt : FIFO levels.
|
||||
- dismod : Specify the drive on TX pin during inactive slots
|
||||
0 : 3-state
|
||||
2 : logic low
|
||||
3 : logic high
|
||||
Defaults to 'logic low' when the property is not present
|
||||
- sram-size-playback : size of sram to be allocated during playback
|
||||
- sram-size-capture : size of sram to be allocated during capture
|
||||
- interrupts : Interrupt numbers for McASP
|
||||
- interrupt-names : Known interrupt names are "tx" and "rx"
|
||||
- pinctrl-0: Should specify pin control group used for this controller.
|
||||
- pinctrl-names: Should contain only one value - "default", for more details
|
||||
please refer to pinctrl-bindings.txt
|
||||
- fck_parent : Should contain a valid clock name which will be used as parent
|
||||
for the McASP fck
|
||||
- auxclk-fs-ratio: When McASP is bus master indicates the ratio between AUCLK
|
||||
and FS rate if applicable:
|
||||
AUCLK rate = auxclk-fs-ratio * FS rate
|
||||
|
||||
Optional GPIO support:
|
||||
If any McASP pin need to be used as GPIO then the McASP node must have:
|
||||
...
|
||||
gpio-controller
|
||||
#gpio-cells = <2>;
|
||||
...
|
||||
|
||||
When requesting a GPIO, the first parameter is the PIN index in McASP_P*
|
||||
registers.
|
||||
For example to request the AXR2 pin of mcasp8:
|
||||
function-gpios = <&mcasp8 2 0>;
|
||||
|
||||
Or to request the ACLKR pin of mcasp8:
|
||||
function-gpios = <&mcasp8 29 0>;
|
||||
|
||||
For generic gpio information, please refer to bindings/gpio/gpio.txt
|
||||
|
||||
Example:
|
||||
|
||||
mcasp0: mcasp0@1d00000 {
|
||||
compatible = "ti,da830-mcasp-audio";
|
||||
reg = <0x100000 0x3000>;
|
||||
reg-names "mpu";
|
||||
interrupts = <82>, <83>;
|
||||
interrupt-names = "tx", "rx";
|
||||
op-mode = <0>; /* MCASP_IIS_MODE */
|
||||
tdm-slots = <2>;
|
||||
serial-dir = <
|
||||
0 0 0 0 /* 0: INACTIVE, 1: TX, 2: RX */
|
||||
0 0 0 0
|
||||
0 0 0 1
|
||||
2 0 0 0 >;
|
||||
tx-num-evt = <1>;
|
||||
rx-num-evt = <1>;
|
||||
};
|
||||
201
Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml
Normal file
201
Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml
Normal file
@@ -0,0 +1,201 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/davinci-mcasp-audio.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: McASP Controller for TI SoCs
|
||||
|
||||
maintainers:
|
||||
- Jayesh Choudhary <j-choudhary@ti.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- ti,dm646x-mcasp-audio
|
||||
- ti,da830-mcasp-audio
|
||||
- ti,am33xx-mcasp-audio
|
||||
- ti,dra7-mcasp-audio
|
||||
- ti,omap4-mcasp-audio
|
||||
|
||||
reg:
|
||||
minItems: 1
|
||||
items:
|
||||
- description: CFG registers
|
||||
- description: data registers
|
||||
|
||||
reg-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: mpu
|
||||
- const: dat
|
||||
|
||||
op-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: 0 - I2S or 1 - DIT operation mode
|
||||
enum:
|
||||
- 0
|
||||
- 1
|
||||
|
||||
tdm-slots:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
number of channels over one serializer
|
||||
the property is ignored in DIT mode
|
||||
minimum: 2
|
||||
maximum: 32
|
||||
|
||||
serial-dir:
|
||||
description:
|
||||
A list of serializer configuration
|
||||
Entry is indication for serializer pin direction
|
||||
0 - Inactive, 1 - TX, 2 - RX
|
||||
All AXR pins should be present in the array even if inactive
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
minItems: 1
|
||||
maxItems: 25
|
||||
items:
|
||||
minimum: 0
|
||||
maximum: 2
|
||||
|
||||
dmas:
|
||||
minItems: 1
|
||||
items:
|
||||
- description: transmission DMA channel
|
||||
- description: reception DMA channel
|
||||
|
||||
dma-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: tx
|
||||
- const: rx
|
||||
|
||||
ti,hwmods:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description: Name of hwmod associated with McASP
|
||||
maxItems: 1
|
||||
deprecated: true
|
||||
|
||||
tx-num-evt:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
configures WFIFO threshold
|
||||
0 disables the FIFO use
|
||||
if property is missing, then also FIFO use is disabled
|
||||
|
||||
rx-num-evt:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
configures RFIFO threshold
|
||||
0 disables the FIFO use
|
||||
if property is missing, then also FIFO use is disabled
|
||||
|
||||
dismod:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
specify the drive on TX pin during inactive time slots
|
||||
0 - 3-state, 2 - logic low, 3 - logic high
|
||||
enum:
|
||||
- 0
|
||||
- 2
|
||||
- 3
|
||||
default: 2
|
||||
|
||||
interrupts:
|
||||
anyOf:
|
||||
- minItems: 1
|
||||
items:
|
||||
- description: TX interrupt
|
||||
- description: RX interrupt
|
||||
- items:
|
||||
- description: common/combined interrupt
|
||||
|
||||
interrupt-names:
|
||||
oneOf:
|
||||
- minItems: 1
|
||||
items:
|
||||
- const: tx
|
||||
- const: rx
|
||||
- const: common
|
||||
|
||||
fck_parent:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description: parent clock name for McASP fck
|
||||
maxItems: 1
|
||||
|
||||
auxclk-fs-ratio:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: ratio of AUCLK and FS rate if applicable
|
||||
|
||||
gpio-controller: true
|
||||
|
||||
"#gpio-cells":
|
||||
const: 2
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
items:
|
||||
- description: functional clock
|
||||
- description: module specific optional ahclkx clock
|
||||
- description: module specific optional ahclkr clock
|
||||
|
||||
clock-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: fck
|
||||
- const: ahclkx
|
||||
- const: ahclkr
|
||||
|
||||
power-domains:
|
||||
description: phandle to the corresponding power-domain
|
||||
maxItems: 1
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
port:
|
||||
description: connection for when McASP is used via graph card
|
||||
type: object
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- reg-names
|
||||
- dmas
|
||||
- dma-names
|
||||
- interrupts
|
||||
- interrupt-names
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
opmode:
|
||||
enum:
|
||||
- 0
|
||||
|
||||
then:
|
||||
required:
|
||||
- tdm-slots
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
mcasp0: mcasp0@1d00000 {
|
||||
compatible = "ti,da830-mcasp-audio";
|
||||
reg = <0x100000 0x3000>;
|
||||
reg-names = "mpu";
|
||||
interrupts = <82>, <83>;
|
||||
interrupt-names = "tx", "rx";
|
||||
op-mode = <0>; /* MCASP_IIS_MODE */
|
||||
tdm-slots = <2>;
|
||||
dmas = <&main_udmap 0xc400>, <&main_udmap 0x4400>;
|
||||
dma-names = "tx", "rx";
|
||||
serial-dir = <
|
||||
0 0 0 0 /* 0: INACTIVE, 1: TX, 2: RX */
|
||||
0 0 0 0
|
||||
0 0 0 1
|
||||
2 0 0 0 >;
|
||||
tx-num-evt = <1>;
|
||||
rx-num-evt = <1>;
|
||||
};
|
||||
@@ -40,6 +40,8 @@ The compatible list for this generic sound card currently:
|
||||
|
||||
"fsl,imx-audio-tlv320aic32x4"
|
||||
|
||||
"fsl,imx-audio-tlv320aic31xx"
|
||||
|
||||
"fsl,imx-audio-si476x"
|
||||
|
||||
"fsl,imx-audio-wm8958"
|
||||
@@ -82,6 +84,7 @@ Optional properties:
|
||||
- dai-format : audio format, for details see simple-card.yaml.
|
||||
- frame-inversion : dai-link uses frame clock inversion, for details see simple-card.yaml.
|
||||
- bitclock-inversion : dai-link uses bit clock inversion, for details see simple-card.yaml.
|
||||
- mclk-id : main clock id, specific for each card configuration.
|
||||
|
||||
Optional unless SSI is selected as a CPU DAI:
|
||||
|
||||
|
||||
@@ -0,0 +1,180 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/google,sc7280-herobrine.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Google SC7280-Herobrine ASoC sound card driver
|
||||
|
||||
maintainers:
|
||||
- Srinivasa Rao Mandadapu <srivasam@codeaurora.org>
|
||||
- Judy Hsiao <judyhsiao@chromium.org>
|
||||
|
||||
description:
|
||||
This binding describes the SC7280 sound card which uses LPASS for audio.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- google,sc7280-herobrine
|
||||
|
||||
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.
|
||||
|
||||
model:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description: User specified audio sound card name
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 0
|
||||
|
||||
patternProperties:
|
||||
"^dai-link@[0-9a-f]$":
|
||||
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
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
description: dai link address.
|
||||
|
||||
cpu:
|
||||
description: Holds subnode which indicates cpu dai.
|
||||
type: object
|
||||
properties:
|
||||
sound-dai: true
|
||||
|
||||
required:
|
||||
- sound-dai
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
codec:
|
||||
description: Holds subnode which indicates codec dai.
|
||||
type: object
|
||||
properties:
|
||||
sound-dai: true
|
||||
|
||||
required:
|
||||
- sound-dai
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- link-name
|
||||
- cpu
|
||||
- codec
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- model
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
|
||||
- |
|
||||
#include <dt-bindings/sound/qcom,lpass.h>
|
||||
sound {
|
||||
compatible = "google,sc7280-herobrine";
|
||||
model = "sc7280-wcd938x-max98360a-4dmic";
|
||||
|
||||
audio-routing =
|
||||
"IN1_HPHL", "HPHL_OUT",
|
||||
"IN2_HPHR", "HPHR_OUT",
|
||||
"AMIC1", "MIC BIAS1",
|
||||
"AMIC2", "MIC BIAS2",
|
||||
"VA DMIC0", "MIC BIAS3",
|
||||
"VA DMIC1", "MIC BIAS3",
|
||||
"VA DMIC2", "MIC BIAS4",
|
||||
"VA DMIC3", "MIC BIAS4",
|
||||
"TX SWR_ADC0", "ADC1_OUTPUT",
|
||||
"TX SWR_ADC1", "ADC2_OUTPUT",
|
||||
"TX SWR_ADC2", "ADC3_OUTPUT",
|
||||
"TX SWR_DMIC0", "DMIC1_OUTPUT",
|
||||
"TX SWR_DMIC1", "DMIC2_OUTPUT",
|
||||
"TX SWR_DMIC2", "DMIC3_OUTPUT",
|
||||
"TX SWR_DMIC3", "DMIC4_OUTPUT";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
dai-link@0 {
|
||||
link-name = "WCD Playback";
|
||||
reg = <LPASS_CDC_DMA_RX0>;
|
||||
cpu {
|
||||
sound-dai = <&lpass_cpu LPASS_CDC_DMA_RX0>;
|
||||
};
|
||||
|
||||
codec {
|
||||
sound-dai = <&wcd938x 0>, <&swr0 0>, <&rxmacro 0>;
|
||||
};
|
||||
};
|
||||
dai-link@1 {
|
||||
link-name = "WCD Capture";
|
||||
reg = <LPASS_CDC_DMA_TX3>;
|
||||
cpu {
|
||||
sound-dai = <&lpass_cpu LPASS_CDC_DMA_TX3>;
|
||||
};
|
||||
|
||||
codec {
|
||||
sound-dai = <&wcd938x 1>, <&swr1 0>, <&txmacro 0>;
|
||||
};
|
||||
};
|
||||
|
||||
dai-link@2 {
|
||||
link-name = "MI2S Playback";
|
||||
reg = <MI2S_SECONDARY>;
|
||||
cpu {
|
||||
sound-dai = <&lpass_cpu MI2S_SECONDARY>;
|
||||
};
|
||||
|
||||
codec {
|
||||
sound-dai = <&max98360a>;
|
||||
};
|
||||
};
|
||||
|
||||
dai-link@3 {
|
||||
link-name = "DMIC Capture";
|
||||
reg = <LPASS_CDC_DMA_VA_TX0>;
|
||||
cpu {
|
||||
sound-dai = <&lpass_cpu LPASS_CDC_DMA_VA_TX0>;
|
||||
};
|
||||
|
||||
codec {
|
||||
sound-dai = <&vamacro 0>;
|
||||
};
|
||||
};
|
||||
|
||||
dai-link@5 {
|
||||
link-name = "DP Playback";
|
||||
reg = <LPASS_DP_RX>;
|
||||
cpu {
|
||||
sound-dai = <&lpass_cpu LPASS_DP_RX>;
|
||||
};
|
||||
|
||||
codec {
|
||||
sound-dai = <&mdss_dp>;
|
||||
};
|
||||
};
|
||||
};
|
||||
100
Documentation/devicetree/bindings/sound/microchip,pdmc.yaml
Normal file
100
Documentation/devicetree/bindings/sound/microchip,pdmc.yaml
Normal file
@@ -0,0 +1,100 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/microchip,pdmc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Microchip Pulse Density Microphone Controller
|
||||
|
||||
maintainers:
|
||||
- Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
|
||||
|
||||
description:
|
||||
The Microchip Pulse Density Microphone Controller (PDMC) interfaces up to 4
|
||||
digital microphones having Pulse Density Modulated (PDM) outputs.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: microchip,sama7g5-pdmc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Peripheral Bus Clock
|
||||
- description: Generic Clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: pclk
|
||||
- const: gclk
|
||||
|
||||
dmas:
|
||||
description: RX DMA Channel
|
||||
maxItems: 1
|
||||
|
||||
dma-names:
|
||||
const: rx
|
||||
|
||||
microchip,mic-pos:
|
||||
description: |
|
||||
Position of PDM microphones on the DS line and the sampling edge (rising
|
||||
or falling) of the CLK line. A microphone is represented as a pair of DS
|
||||
line and the sampling edge. The first microphone is mapped to channel 0,
|
||||
the second to channel 1, etc.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-matrix
|
||||
items:
|
||||
items:
|
||||
- description: value for DS line
|
||||
- description: value for sampling edge
|
||||
anyOf:
|
||||
- enum:
|
||||
- [0, 0]
|
||||
- [0, 1]
|
||||
- [1, 0]
|
||||
- [1, 1]
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
uniqueItems: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#sound-dai-cells"
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
- dmas
|
||||
- dma-names
|
||||
- microchip,mic-pos
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/at91.h>
|
||||
#include <dt-bindings/dma/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/sound/microchip,pdmc.h>
|
||||
|
||||
pdmc: sound@e1608000 {
|
||||
compatible = "microchip,sama7g5-pdmc";
|
||||
reg = <0xe1608000 0x4000>;
|
||||
#sound-dai-cells = <0>;
|
||||
interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&dma0 AT91_XDMAC_DT_PERID(37)>;
|
||||
dma-names = "rx";
|
||||
clocks = <&pmc PMC_TYPE_PERIPHERAL 68>, <&pmc PMC_TYPE_GCK 68>;
|
||||
clock-names = "pclk", "gclk";
|
||||
microchip,mic-pos = <MCHP_PDMC_DS0 MCHP_PDMC_CLK_POSITIVE>,
|
||||
<MCHP_PDMC_DS0 MCHP_PDMC_CLK_NEGATIVE>,
|
||||
<MCHP_PDMC_DS1 MCHP_PDMC_CLK_POSITIVE>,
|
||||
<MCHP_PDMC_DS1 MCHP_PDMC_CLK_NEGATIVE>;
|
||||
};
|
||||
@@ -19,6 +19,12 @@ properties:
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
reset-names:
|
||||
const: audiosys
|
||||
|
||||
memory-region:
|
||||
maxItems: 1
|
||||
description: |
|
||||
@@ -127,6 +133,8 @@ required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- resets
|
||||
- reset-names
|
||||
- mediatek,topckgen
|
||||
- power-domains
|
||||
- clocks
|
||||
@@ -144,6 +152,8 @@ examples:
|
||||
compatible = "mediatek,mt8195-audio";
|
||||
reg = <0x10890000 0x10000>;
|
||||
interrupts = <GIC_SPI 822 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
resets = <&watchdog 14>;
|
||||
reset-names = "audiosys";
|
||||
mediatek,topckgen = <&topckgen>;
|
||||
power-domains = <&spm 7>; //MT8195_POWER_DOMAIN_AUDIO
|
||||
memory-region = <&snd_dma_mem_reserved>;
|
||||
|
||||
@@ -28,7 +28,9 @@ properties:
|
||||
oneOf:
|
||||
- const: nvidia,tegra186-dspk
|
||||
- items:
|
||||
- const: nvidia,tegra194-dspk
|
||||
- enum:
|
||||
- nvidia,tegra234-dspk
|
||||
- nvidia,tegra194-dspk
|
||||
- const: nvidia,tegra186-dspk
|
||||
|
||||
reg:
|
||||
|
||||
@@ -27,7 +27,9 @@ properties:
|
||||
- nvidia,tegra210-admaif
|
||||
- nvidia,tegra186-admaif
|
||||
- items:
|
||||
- const: nvidia,tegra194-admaif
|
||||
- enum:
|
||||
- nvidia,tegra234-admaif
|
||||
- nvidia,tegra194-admaif
|
||||
- const: nvidia,tegra186-admaif
|
||||
|
||||
reg:
|
||||
|
||||
@@ -30,6 +30,7 @@ properties:
|
||||
- const: nvidia,tegra210-adx
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra234-adx
|
||||
- nvidia,tegra194-adx
|
||||
- nvidia,tegra186-adx
|
||||
- const: nvidia,tegra210-adx
|
||||
|
||||
@@ -26,6 +26,7 @@ properties:
|
||||
- enum:
|
||||
- nvidia,tegra210-ahub
|
||||
- nvidia,tegra186-ahub
|
||||
- nvidia,tegra234-ahub
|
||||
- items:
|
||||
- const: nvidia,tegra194-ahub
|
||||
- const: nvidia,tegra186-ahub
|
||||
|
||||
@@ -31,6 +31,9 @@ properties:
|
||||
- const: nvidia,tegra186-amx
|
||||
- const: nvidia,tegra210-amx
|
||||
- const: nvidia,tegra194-amx
|
||||
- items:
|
||||
- const: nvidia,tegra234-amx
|
||||
- const: nvidia,tegra194-amx
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
@@ -28,6 +28,7 @@ properties:
|
||||
- const: nvidia,tegra210-dmic
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra234-dmic
|
||||
- nvidia,tegra194-dmic
|
||||
- nvidia,tegra186-dmic
|
||||
- const: nvidia,tegra210-dmic
|
||||
|
||||
@@ -28,6 +28,7 @@ properties:
|
||||
- const: nvidia,tegra210-i2s
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra234-i2s
|
||||
- nvidia,tegra194-i2s
|
||||
- nvidia,tegra186-i2s
|
||||
- const: nvidia,tegra210-i2s
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user