Merge branch 'for-next' into for-linus

This commit is contained in:
Takashi Iwai
2022-12-22 09:11:48 +01:00
2072 changed files with 67710 additions and 51435 deletions
+3 -1
View File
@@ -104,6 +104,7 @@ Christoph Hellwig <hch@lst.de>
Colin Ian King <colin.i.king@gmail.com> <colin.king@canonical.com>
Corey Minyard <minyard@acm.org>
Damian Hobson-Garcia <dhobsong@igel.co.jp>
Dan Carpenter <error27@gmail.com> <dan.carpenter@oracle.com>
Daniel Borkmann <daniel@iogearbox.net> <danborkmann@googlemail.com>
Daniel Borkmann <daniel@iogearbox.net> <danborkmann@iogearbox.net>
Daniel Borkmann <daniel@iogearbox.net> <daniel.borkmann@tik.ee.ethz.ch>
@@ -353,7 +354,8 @@ Peter Oruba <peter@oruba.de>
Pratyush Anand <pratyush.anand@gmail.com> <pratyush.anand@st.com>
Praveen BP <praveenbp@ti.com>
Punit Agrawal <punitagrawal@gmail.com> <punit.agrawal@arm.com>
Qais Yousef <qsyousef@gmail.com> <qais.yousef@imgtec.com>
Qais Yousef <qyousef@layalina.io> <qais.yousef@imgtec.com>
Qais Yousef <qyousef@layalina.io> <qais.yousef@arm.com>
Quentin Monnet <quentin@isovalent.com> <quentin.monnet@netronome.com>
Quentin Perret <qperret@qperret.net> <quentin.perret@arm.com>
Rafael J. Wysocki <rjw@rjwysocki.net> <rjw@sisk.pl>
+9
View File
@@ -918,6 +918,11 @@ S: Ottawa, Ontario
S: K1N 6Z9
S: CANADA
N: Vivien Didelot
E: vivien.didelot@gmail.com
D: DSA framework and MV88E6XXX driver
S: Montreal, Quebec, Canada
N: Jeff Dike
E: jdike@karaya.com
W: http://user-mode-linux.sourceforge.net
@@ -2447,6 +2452,10 @@ S: 482 Shadowgraph Dr.
S: San Jose, CA 95110
S: USA
N: Michal Marek
E: michal.lkml@markovi.net
D: Kbuild Maintainer 2009-2017
N: Martin Mares
E: mj@ucw.cz
W: http://www.ucw.cz/~mj/
@@ -10,7 +10,7 @@ Description: A collection of all the memory tiers allocated.
What: /sys/devices/virtual/memory_tiering/memory_tierN/
/sys/devices/virtual/memory_tiering/memory_tierN/nodes
/sys/devices/virtual/memory_tiering/memory_tierN/nodelist
Date: August 2022
Contact: Linux memory management mailing list <linux-mm@kvack.org>
Description: Directory with details of a specific memory tier
@@ -21,5 +21,5 @@ Description: Directory with details of a specific memory tier
A smaller value of N implies a higher (faster) memory tier in the
hierarchy.
nodes: NUMA nodes that are part of this memory tier.
nodelist: NUMA nodes that are part of this memory tier.
-1
View File
@@ -9,7 +9,6 @@ the Linux ACPI support.
:maxdepth: 1
initrd_table_override
dsdt-override
ssdt-overlays
cppc_sysfs
fan_performance_states
@@ -141,6 +141,10 @@ root_hash_sig_key_desc <key_description>
also gain new certificates at run time if they are signed by a certificate
already in the secondary trusted keyring.
try_verify_in_tasklet
If verity hashes are in cache, verify data blocks in kernel tasklet instead
of workqueue. This option can reduce IO latency.
Theory of operation
===================
+1 -1
View File
@@ -1318,7 +1318,7 @@ instance. This setup would require the following commands:
$ v4l2-ctl -d2 -i2
$ v4l2-ctl -d2 -c horizontal_movement=4
$ v4l2-ctl -d1 --overlay=1
$ v4l2-ctl -d1 -c loop_video=1
$ v4l2-ctl -d0 -c loop_video=1
$ v4l2-ctl -d2 --stream-mmap --overlay=1
And from another console:
+8
View File
@@ -340,6 +340,14 @@ Before jumping into the kernel, the following conditions must be met:
- SMCR_EL2.LEN must be initialised to the same value for all CPUs the
kernel will execute on.
- HWFGRTR_EL2.nTPIDR2_EL0 (bit 55) must be initialised to 0b01.
- HWFGWTR_EL2.nTPIDR2_EL0 (bit 55) must be initialised to 0b01.
- HWFGRTR_EL2.nSMPRI_EL1 (bit 54) must be initialised to 0b01.
- HWFGWTR_EL2.nSMPRI_EL1 (bit 54) must be initialised to 0b01.
For CPUs with the Scalable Matrix Extension FA64 feature (FEAT_SME_FA64)
- If EL3 is present:
+37 -1
View File
@@ -92,7 +92,7 @@ operation if the source belongs to the supported system register space.
The infrastructure emulates only the following system register space::
Op0=3, Op1=0, CRn=0, CRm=0,4,5,6,7
Op0=3, Op1=0, CRn=0, CRm=0,2,3,4,5,6,7
(See Table C5-6 'System instruction encodings for non-Debug System
register accesses' in ARMv8 ARM DDI 0487A.h, for the list of
@@ -293,6 +293,42 @@ infrastructure:
| WFXT | [3-0] | y |
+------------------------------+---------+---------+
10) MVFR0_EL1 - AArch32 Media and VFP Feature Register 0
+------------------------------+---------+---------+
| Name | bits | visible |
+------------------------------+---------+---------+
| FPDP | [11-8] | y |
+------------------------------+---------+---------+
11) MVFR1_EL1 - AArch32 Media and VFP Feature Register 1
+------------------------------+---------+---------+
| Name | bits | visible |
+------------------------------+---------+---------+
| SIMDFMAC | [31-28] | y |
+------------------------------+---------+---------+
| SIMDSP | [19-16] | y |
+------------------------------+---------+---------+
| SIMDInt | [15-12] | y |
+------------------------------+---------+---------+
| SIMDLS | [11-8] | y |
+------------------------------+---------+---------+
12) ID_ISAR5_EL1 - AArch32 Instruction Set Attribute Register 5
+------------------------------+---------+---------+
| Name | bits | visible |
+------------------------------+---------+---------+
| CRC32 | [19-16] | y |
+------------------------------+---------+---------+
| SHA2 | [15-12] | y |
+------------------------------+---------+---------+
| SHA1 | [11-8] | y |
+------------------------------+---------+---------+
| AES | [7-4] | y |
+------------------------------+---------+---------+
Appendix I: Example
-------------------
+36
View File
@@ -144,6 +144,42 @@ managing and controlling ublk devices with help of several control commands:
For retrieving device info via ``ublksrv_ctrl_dev_info``. It is the server's
responsibility to save IO target specific info in userspace.
- ``UBLK_CMD_START_USER_RECOVERY``
This command is valid if ``UBLK_F_USER_RECOVERY`` feature is enabled. This
command is accepted after the old process has exited, ublk device is quiesced
and ``/dev/ublkc*`` is released. User should send this command before he starts
a new process which re-opens ``/dev/ublkc*``. When this command returns, the
ublk device is ready for the new process.
- ``UBLK_CMD_END_USER_RECOVERY``
This command is valid if ``UBLK_F_USER_RECOVERY`` feature is enabled. This
command is accepted after ublk device is quiesced and a new process has
opened ``/dev/ublkc*`` and get all ublk queues be ready. When this command
returns, ublk device is unquiesced and new I/O requests are passed to the
new process.
- user recovery feature description
Two new features are added for user recovery: ``UBLK_F_USER_RECOVERY`` and
``UBLK_F_USER_RECOVERY_REISSUE``.
With ``UBLK_F_USER_RECOVERY`` set, after one ubq_daemon(ublk server's io
handler) is dying, ublk does not delete ``/dev/ublkb*`` during the whole
recovery stage and ublk device ID is kept. It is ublk server's
responsibility to recover the device context by its own knowledge.
Requests which have not been issued to userspace are requeued. Requests
which have been issued to userspace are aborted.
With ``UBLK_F_USER_RECOVERY_REISSUE`` set, after one ubq_daemon(ublk
server's io handler) is dying, contrary to ``UBLK_F_USER_RECOVERY``,
requests which have been issued to userspace are requeued and will be
re-issued to the new process after handling ``UBLK_CMD_END_USER_RECOVERY``.
``UBLK_F_USER_RECOVERY_REISSUE`` is designed for backends who tolerate
double-write since the driver may issue the same I/O request twice. It
might be useful to a read-only FS or a VM backend.
Data plane
----------
+6
View File
@@ -118,6 +118,12 @@ Text Searching
CRC and Math Functions in Linux
===============================
Arithmetic Overflow Checking
----------------------------
.. kernel-doc:: include/linux/overflow.h
:internal:
CRC Functions
-------------
+1
View File
@@ -67,6 +67,7 @@ uninitialized in the local variable, as well as the stack where the value was
copied to another memory location before use.
A use of uninitialized value ``v`` is reported by KMSAN in the following cases:
- in a condition, e.g. ``if (v) { ... }``;
- in an indexing or pointer dereferencing, e.g. ``array[v]`` or ``*v``;
- when it is copied to userspace or hardware, e.g. ``copy_to_user(..., &v, ...)``;
@@ -11,7 +11,7 @@ maintainers:
- Neil Armstrong <neil.armstrong@linaro.org>
allOf:
- $ref: /schemas/sound/name-prefix.yaml#
- $ref: /schemas/sound/dai-common.yaml#
description: |
The Amlogic Meson Synopsys Designware Integration is composed of
@@ -15,9 +15,22 @@ description:
properties:
compatible:
enum:
- qcom,sfpb-mutex
- qcom,tcsr-mutex
oneOf:
- enum:
- qcom,sfpb-mutex
- qcom,tcsr-mutex
- items:
- enum:
- qcom,apq8084-tcsr-mutex
- qcom,ipq6018-tcsr-mutex
- qcom,msm8226-tcsr-mutex
- qcom,msm8994-tcsr-mutex
- const: qcom,tcsr-mutex
- items:
- enum:
- qcom,msm8974-tcsr-mutex
- const: qcom,tcsr-mutex
- const: syscon
reg:
maxItems: 1
@@ -34,9 +47,9 @@ additionalProperties: false
examples:
- |
tcsr_mutex: hwlock@1f40000 {
compatible = "qcom,tcsr-mutex";
reg = <0x01f40000 0x40000>;
#hwlock-cells = <1>;
};
hwlock@1f40000 {
compatible = "qcom,tcsr-mutex";
reg = <0x01f40000 0x40000>;
#hwlock-cells = <1>;
};
...
@@ -16,8 +16,11 @@ description:
properties:
compatible:
items:
oneOf:
- const: goodix,gt7375p
- items:
- const: goodix,gt7986u
- const: goodix,gt7375p
reg:
enum:
@@ -1,9 +0,0 @@
Dongwoon Anatech DW9714 camera voice coil lens driver
DW9174 is a 10-bit DAC with current sink capability. It is intended
for driving voice coil lenses in camera modules.
Mandatory properties:
- compatible: "dongwoon,dw9714"
- reg: I²C slave address
@@ -0,0 +1,47 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/dongwoon,dw9714.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Dongwoon Anatech DW9714 camera voice coil lens driver
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
description:
DW9174 is a 10-bit DAC with current sink capability. It is intended for
driving voice coil lenses in camera modules.
properties:
compatible:
const: dongwoon,dw9714
reg:
maxItems: 1
powerdown-gpios:
description:
XSD pin for shutdown (active low)
vcc-supply:
description: VDD power supply
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
camera-lens@c {
compatible = "dongwoon,dw9714";
reg = <0x0c>;
vcc-supply = <&reg_csi_1v8>;
};
};
@@ -47,7 +47,7 @@ properties:
nvmem-cells: true
nvmem-cells-names: true
nvmem-cell-names: true
phy-connection-type:
enum:
@@ -8,7 +8,6 @@ title: Samsung S3FWRN5 NCI NFC Controller
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
- Krzysztof Opasiak <k.opasiak@samsung.com>
properties:
compatible:
@@ -274,10 +274,6 @@ patternProperties:
slew-rate:
enum: [0, 1]
output-enable:
description:
This will internally disable the tri-state for MIO pins.
drive-strength:
description:
Selects the drive strength for MIO pins, in mA.
@@ -81,6 +81,9 @@ properties:
power-supply: true
power-domains:
maxItems: 1
resets:
description: |
A number of phandles to resets that need to be asserted during
@@ -0,0 +1,54 @@
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/qcom/qcom,apr-services.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm APR/GPR services shared parts
maintainers:
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
description:
Common parts of a static service in Qualcomm APR/GPR (Asynchronous/Generic
Packet Router).
properties:
reg:
minimum: 1
maximum: 13
description: |
APR Service ID
3 = DSP Core Service
4 = Audio Front End Service.
5 = Voice Stream Manager Service.
6 = Voice processing manager.
7 = Audio Stream Manager Service.
8 = Audio Device Manager Service.
9 = Multimode voice manager.
10 = Core voice stream.
11 = Core voice processor.
12 = Ultrasound stream manager.
13 = Listen stream manager.
GPR Service ID
1 = Audio Process Manager Service
2 = Proxy Resource Manager Service.
3 = AMDB Service.
4 = Voice processing manager.
qcom,protection-domain:
$ref: /schemas/types.yaml#/definitions/string-array
description: |
Protection domain service name and path for APR service
possible values are::
"avs/audio", "msm/adsp/audio_pd".
"kernel/elf_loader", "msm/modem/wlan_pd".
"tms/servreg", "msm/adsp/audio_pd".
"tms/servreg", "msm/modem/wlan_pd".
"tms/servreg", "msm/slpi/sensor_pd".
required:
- reg
- qcom,protection-domain
additionalProperties: true
@@ -58,8 +58,7 @@ properties:
qcom,glink-channels:
$ref: /schemas/types.yaml#/definitions/string-array
description: Channel name used for the communication
items:
- const: apr_audio_svc
maxItems: 1
qcom,intents:
$ref: /schemas/types.yaml#/definitions/uint32-array
@@ -81,12 +80,13 @@ properties:
'#size-cells':
const: 0
#APR/GPR Services
patternProperties:
"^service@[1-9a-d]$":
type: object
$ref: /schemas/soc/qcom/qcom,apr-services.yaml
additionalProperties: true
description:
APR/GPR node's client devices use subnodes for desired static port services.
APR/GPR static port services.
properties:
compatible:
@@ -98,99 +98,6 @@ patternProperties:
- qcom,q6apm
- qcom,q6prm
reg:
minimum: 1
maximum: 13
description:
APR Service ID
3 = DSP Core Service
4 = Audio Front End Service.
5 = Voice Stream Manager Service.
6 = Voice processing manager.
7 = Audio Stream Manager Service.
8 = Audio Device Manager Service.
9 = Multimode voice manager.
10 = Core voice stream.
11 = Core voice processor.
12 = Ultrasound stream manager.
13 = Listen stream manager.
GPR Service ID
1 = Audio Process Manager Service
2 = Proxy Resource Manager Service.
3 = AMDB Service.
4 = Voice processing manager.
clock-controller:
$ref: /schemas/sound/qcom,q6dsp-lpass-clocks.yaml#
description: Qualcomm DSP LPASS clock controller
unevaluatedProperties: false
dais:
type: object
oneOf:
- $ref: /schemas/sound/qcom,q6apm-dai.yaml#
- $ref: /schemas/sound/qcom,q6dsp-lpass-ports.yaml#
- $ref: /schemas/sound/qcom,q6asm-dais.yaml#
unevaluatedProperties: false
description: Qualcomm DSP audio ports
routing:
type: object
$ref: /schemas/sound/qcom,q6adm-routing.yaml#
unevaluatedProperties: false
description: Qualcomm DSP LPASS audio routing
qcom,protection-domain:
$ref: /schemas/types.yaml#/definitions/string-array
description: protection domain service name and path for apr service
possible values are
"avs/audio", "msm/adsp/audio_pd".
"kernel/elf_loader", "msm/modem/wlan_pd".
"tms/servreg", "msm/adsp/audio_pd".
"tms/servreg", "msm/modem/wlan_pd".
"tms/servreg", "msm/slpi/sensor_pd".
allOf:
- if:
properties:
compatible:
enum:
- qcom,q6afe
then:
properties:
dais:
properties:
compatible:
const: qcom,q6afe-dais
- if:
properties:
compatible:
enum:
- qcom,q6apm
then:
properties:
dais:
properties:
compatible:
enum:
- qcom,q6apm-dais
- qcom,q6apm-lpass-dais
- if:
properties:
compatible:
enum:
- qcom,q6asm
then:
properties:
dais:
properties:
compatible:
const: qcom,q6asm-dais
additionalProperties: false
required:
- compatible
- qcom,domain
@@ -203,7 +110,15 @@ allOf:
- qcom,gpr
then:
properties:
qcom,glink-channels:
items:
- const: adsp_apps
power-domains: false
else:
properties:
qcom,glink-channels:
items:
- const: apr_audio_svc
- if:
required:
@@ -227,31 +142,35 @@ examples:
apr {
compatible = "qcom,apr-v2";
qcom,domain = <APR_DOMAIN_ADSP>;
qcom,glink-channels = "apr_audio_svc";
qcom,intents = <512 20>;
#address-cells = <1>;
#size-cells = <0>;
q6core: service@3 {
compatible = "qcom,q6core";
reg = <APR_SVC_ADSP_CORE>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
compatible = "qcom,q6core";
reg = <APR_SVC_ADSP_CORE>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
};
q6afe: service@4 {
compatible = "qcom,q6afe";
reg = <APR_SVC_AFE>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
};
service@4 {
compatible = "qcom,q6afe";
reg = <APR_SVC_AFE>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
q6asm: service@7 {
compatible = "qcom,q6asm";
reg = <APR_SVC_ASM>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
};
clock-controller {
compatible = "qcom,q6afe-clocks";
#clock-cells = <2>;
};
q6adm: service@8 {
compatible = "qcom,q6adm";
reg = <APR_SVC_ADM>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
dais {
compatible = "qcom,q6afe-dais";
#address-cells = <1>;
#size-cells = <0>;
#sound-dai-cells = <1>;
/* ... */
};
/* ... */
};
};
@@ -260,12 +179,25 @@ examples:
gpr {
compatible = "qcom,gpr";
qcom,domain = <GPR_DOMAIN_ID_ADSP>;
qcom,glink-channels = "adsp_apps";
qcom,intents = <512 20>;
#address-cells = <1>;
#size-cells = <0>;
service@1 {
compatible = "qcom,q6apm";
reg = <GPR_APM_MODULE_IID>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
compatible = "qcom,q6apm";
reg = <GPR_APM_MODULE_IID>;
#sound-dai-cells = <0>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
dais {
compatible = "qcom,q6apm-dais";
iommus = <&apps_smmu 0x1801 0x0>;
};
bedais {
compatible = "qcom,q6apm-lpass-dais";
#sound-dai-cells = <1>;
};
};
};
@@ -8,12 +8,15 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices ADAU1372 CODEC
maintainers:
- Alexandre Belloni <alexandre.belloni@bootlin.om>
- Alexandre Belloni <alexandre.belloni@bootlin.com>
description: |
Analog Devices ADAU1372 four inputs and two outputs codec.
https://www.analog.com/media/en/technical-documentation/data-sheets/ADAU1372.pdf
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
enum:
@@ -42,7 +45,7 @@ required:
- clocks
- clock-names
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -51,6 +51,7 @@ required:
- AVDD-supply
allOf:
- $ref: dai-common.yaml#
- $ref: /schemas/spi/spi-peripheral-props.yaml#
unevaluatedProperties: false
@@ -15,6 +15,9 @@ description: |
standalone mode.
https://www.analog.com/media/en/technical-documentation/data-sheets/ADAU7118.pdf
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
enum:
@@ -57,7 +60,7 @@ required:
- iovdd-supply
- dvdd-supply
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -9,6 +9,9 @@ title: AK4375 DAC and headphones amplifier
maintainers:
- Vincent Knecht <vincent.knecht@mailoo.org>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
const: asahi-kasei,ak4375
@@ -35,7 +38,7 @@ required:
- avdd-supply
- tvdd-supply
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -9,6 +9,9 @@ title: AK4613 I2C transmitter
maintainers:
- Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
const: asahi-kasei,ak4613
@@ -35,7 +38,7 @@ required:
- compatible
- reg
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -9,6 +9,9 @@ title: AK4642 I2C transmitter
maintainers:
- Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
enum:
@@ -37,7 +40,7 @@ required:
- compatible
- reg
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -102,6 +102,7 @@ required:
- dma-names
allOf:
- $ref: dai-common.yaml#
- if:
properties:
compatible:
@@ -228,7 +229,7 @@ allOf:
- Mic
- Speaker
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -61,6 +61,7 @@ properties:
maxItems: 1
allOf:
- $ref: dai-common.yaml#
- if:
properties:
compatible:
@@ -128,7 +129,7 @@ required:
- dmas
- dma-names
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -54,6 +54,7 @@ properties:
maxItems: 1
allOf:
- $ref: dai-common.yaml#
- if:
properties:
compatible:
@@ -104,7 +105,7 @@ required:
- dmas
- dma-names
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -9,9 +9,17 @@ title: Allwinner H6 DMIC
maintainers:
- Ban Tao <fengzheng923@gmail.com>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
const: allwinner,sun50i-h6-dmic
oneOf:
- items:
- enum:
- allwinner,sun20i-d1-dmic
- const: allwinner,sun50i-h6-dmic
- const: allwinner,sun50i-h6-dmic
"#sound-dai-cells":
const: 0
@@ -54,7 +62,7 @@ required:
- dma-names
- resets
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -10,6 +10,9 @@ maintainers:
- Chen-Yu Tsai <wens@csie.org>
- Maxime Ripard <mripard@kernel.org>
allOf:
- $ref: dai-common.yaml#
properties:
"#sound-dai-cells":
minimum: 0
@@ -49,7 +52,7 @@ required:
- clocks
- clock-names
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -10,7 +10,7 @@ maintainers:
- Jerome Brunet <jbrunet@baylibre.com>
allOf:
- $ref: name-prefix.yaml#
- $ref: dai-common.yaml#
properties:
$nodename:
@@ -10,7 +10,7 @@ maintainers:
- Jerome Brunet <jbrunet@baylibre.com>
allOf:
- $ref: name-prefix.yaml#
- $ref: dai-common.yaml#
properties:
$nodename:
@@ -10,7 +10,7 @@ maintainers:
- Jerome Brunet <jbrunet@baylibre.com>
allOf:
- $ref: name-prefix.yaml#
- $ref: dai-common.yaml#
properties:
$nodename:
@@ -14,6 +14,9 @@ description: |
maintainers:
- Martin Povišer <povik+lin@cutebit.org>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
items:
@@ -106,7 +109,7 @@ required:
- power-domains
- '#sound-dai-cells'
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -15,7 +15,7 @@ description:
function (primarily the power limit for the amplifier).
allOf:
- $ref: name-prefix.yaml#
- $ref: dai-common.yaml#
properties:
compatible:
@@ -146,6 +146,7 @@ required:
- "#sound-dai-cells"
allOf:
- $ref: dai-common.yaml#
- if:
properties:
cirrus,boost-type:
@@ -171,7 +172,7 @@ allOf:
cirrus,gpio1-src-select:
enum: [1]
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -14,6 +14,9 @@ description: |
CS35L45 is a Boosted Mono Class D Amplifier with DSP
Speaker Protection and Adaptive Battery Management.
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
enum:
@@ -52,7 +55,7 @@ required:
- reg
- "#sound-dai-cells"
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -9,6 +9,9 @@ title: CS42L51 audio codec DT bindings
maintainers:
- Olivier Moysan <olivier.moysan@foss.st.com>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
const: cirrus,cs42l51
@@ -46,7 +49,7 @@ required:
- reg
- "#sound-dai-cells"
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -24,6 +24,9 @@ description: |
This binding must be part of the Lochnagar MFD binding:
[1] ../mfd/cirrus,lochnagar.yaml
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
enum:
@@ -49,4 +52,4 @@ required:
- clocks
- clock-names
additionalProperties: false
unevaluatedProperties: false
@@ -22,6 +22,9 @@ description: |
The properties are all contained in the parent MFD node.
allOf:
- $ref: dai-common.yaml#
properties:
'#sound-dai-cells':
description:
@@ -1,10 +1,10 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/name-prefix.yaml#
$id: http://devicetree.org/schemas/sound/dai-common.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Component sound name prefix
title: Digital Audio Interface Common Properties
maintainers:
- Jerome Brunet <jbrunet@baylibre.com>
@@ -18,4 +18,6 @@ properties:
sink/source names may use this property to prepend the name of their
sinks/sources with the provided string.
'#sound-dai-cells': true
additionalProperties: true
@@ -167,6 +167,7 @@ required:
- interrupt-names
allOf:
- $ref: dai-common.yaml#
- if:
properties:
opmode:
@@ -177,7 +178,7 @@ allOf:
required:
- tdm-slots
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -0,0 +1,55 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/dmic-codec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Generic PDM Digital microphone (DMIC) codec
maintainers:
- Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
const: dmic-codec
'#sound-dai-cells':
const: 0
dmicen-gpios:
description: GPIO specifier for DMIC to control start and stop
maxItems: 1
num-channels:
description: Number of microphones on this DAI
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 1
maximum: 8
default: 8
modeswitch-delay-ms:
description: Delay (in ms) to complete DMIC mode switch
wakeup-delay-ms:
description: Delay (in ms) after enabling the DMIC
required:
- compatible
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
dmic {
compatible = "dmic-codec";
dmicen-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;
num-channels = <1>;
wakeup-delay-ms = <50>;
modeswitch-delay-ms = <35>;
};
...
@@ -1,22 +0,0 @@
Device-Tree bindings for Digital microphone (DMIC) codec
This device support generic PDM digital microphone.
Required properties:
- compatible: should be "dmic-codec".
Optional properties:
- dmicen-gpios: GPIO specifier for dmic to control start and stop
- num-channels: Number of microphones on this DAI
- wakeup-delay-ms: Delay (in ms) after enabling the DMIC
- modeswitch-delay-ms: Delay (in ms) to complete DMIC mode switch
Example node:
dmic_codec: dmic@0 {
compatible = "dmic-codec";
dmicen-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;
num-channels = <1>;
wakeup-delay-ms <50>;
modeswitch-delay-ms <35>;
};
@@ -10,6 +10,9 @@ maintainers:
- Daniel Drake <drake@endlessm.com>
- Katsuhiro Suzuki <katsuhiro@katsuster.net>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
const: everest,es8316
@@ -33,7 +36,7 @@ required:
- reg
- "#sound-dai-cells"
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -18,6 +18,7 @@ properties:
enum:
- fsl,imx8mm-micfil
- fsl,imx8mp-micfil
- fsl,imx93-micfil
reg:
maxItems: 1
@@ -11,8 +11,11 @@ maintainers:
description: |
fsl_rpmsg is a virtual audio device. Mapping to real hardware devices
are SAI, DMA controlled by Cortex M core. What we see from Linux
side is a device which provides audio service by rpmsg channel.
are SAI, MICFIL, DMA controlled by Cortex M core. What we see from
Linux side is a device which provides audio service by rpmsg channel.
We can create different sound cards which access different hardwares
such as SAI, MICFIL, .etc through building rpmsg channels between
Cortex-A and Cortex-M.
properties:
compatible:
@@ -85,6 +88,16 @@ properties:
This is a boolean property. If present, the receiving function
will be enabled.
fsl,rpmsg-channel-name:
$ref: /schemas/types.yaml#/definitions/string
description: |
A string property to assign rpmsg channel this sound card sits on.
This property can be omitted if there is only one sound card and it sits
on "rpmsg-audio-channel".
enum:
- rpmsg-audio-channel
- rpmsg-micfil-channel
required:
- compatible
- model
@@ -107,3 +120,22 @@ examples:
<&clk IMX8MN_AUDIO_PLL2_OUT>;
clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k";
};
- |
#include <dt-bindings/clock/imx8mm-clock.h>
rpmsg_micfil: audio-controller {
compatible = "fsl,imx8mm-rpmsg-audio";
model = "micfil-audio";
fsl,rpmsg-channel-name = "rpmsg-micfil-channel";
fsl,enable-lpa;
fsl,rpmsg-in;
clocks = <&clk IMX8MM_CLK_PDM_IPG>,
<&clk IMX8MM_CLK_PDM_ROOT>,
<&clk IMX8MM_CLK_SDMA3_ROOT>,
<&clk IMX8MM_AUDIO_PLL1_OUT>,
<&clk IMX8MM_AUDIO_PLL2_OUT>;
clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k";
};
...
@@ -18,14 +18,12 @@ description: |
properties:
compatible:
oneOf:
- enum:
- fsl,vf610-sai
- fsl,imx6sx-sai
- fsl,imx6ul-sai
- fsl,imx7ulp-sai
- fsl,imx8mq-sai
- fsl,imx8qm-sai
- fsl,imx8ulp-sai
- items:
- enum:
- fsl,imx6ul-sai
- fsl,imx7d-sai
- const: fsl,imx6sx-sai
- items:
- enum:
- fsl,imx8mm-sai
@@ -33,19 +31,19 @@ properties:
- fsl,imx8mp-sai
- const: fsl,imx8mq-sai
- items:
- enum:
- fsl,imx6sx-sai
- fsl,imx7ulp-sai
- fsl,imx8mq-sai
- fsl,imx8qm-sai
- fsl,imx8ulp-sai
- fsl,imx93-sai
- fsl,vf610-sai
reg:
maxItems: 1
interrupts:
items:
- description: receive and transmit interrupt
dmas:
maxItems: 2
dma-names:
maxItems: 2
clocks:
items:
- description: The ipg clock for register access
@@ -67,7 +65,7 @@ properties:
- const: mclk3
- const: pll8k
- const: pll11k
minItems: 4
minItems: 5
- items:
- const: bus
- const: mclk1
@@ -77,19 +75,37 @@ properties:
- const: pll11k
minItems: 4
lsb-first:
description: |
Configures whether the LSB or the MSB is transmitted
first for the fifo data. If this property is absent,
the MSB is transmitted first as default, or the LSB
is transmitted first.
type: boolean
dmas:
maxItems: 2
dma-names:
maxItems: 2
interrupts:
items:
- description: receive and transmit interrupt
big-endian:
description: |
required if all the SAI registers are big-endian rather than little-endian.
type: boolean
fsl,dataline:
$ref: /schemas/types.yaml#/definitions/uint32-matrix
description: |
Configure the dataline. It has 3 value for each configuration
maxItems: 16
items:
items:
- description: format Default(0), I2S(1) or PDM(2)
enum: [0, 1, 2]
- description: dataline mask for 'rx'
- description: dataline mask for 'tx'
fsl,sai-mclk-direction-output:
description: SAI will output the SAI MCLK clock.
type: boolean
fsl,sai-synchronous-rx:
description: |
SAI will work in the synchronous mode (sync Tx with Rx) which means
@@ -108,31 +124,24 @@ properties:
of transmitter.
type: boolean
fsl,dataline:
$ref: /schemas/types.yaml#/definitions/uint32-matrix
description: |
Configure the dataline. It has 3 value for each configuration
maxItems: 16
items:
items:
- description: format Default(0), I2S(1) or PDM(2)
enum: [0, 1, 2]
- description: dataline mask for 'rx'
- description: dataline mask for 'tx'
fsl,sai-mclk-direction-output:
description: SAI will output the SAI MCLK clock.
type: boolean
fsl,shared-interrupt:
description: Interrupt is shared with other modules.
type: boolean
lsb-first:
description: |
Configures whether the LSB or the MSB is transmitted
first for the fifo data. If this property is absent,
the MSB is transmitted first as default, or the LSB
is transmitted first.
type: boolean
"#sound-dai-cells":
const: 0
description: optional, some dts node didn't add it.
allOf:
- $ref: dai-common.yaml#
- if:
properties:
compatible:
@@ -168,13 +177,13 @@ allOf:
required:
- compatible
- reg
- interrupts
- dmas
- dma-names
- clocks
- clock-names
- dmas
- dma-names
- interrupts
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -17,6 +17,9 @@ description: |
subnode of a cros-ec node.
(see Documentation/devicetree/bindings/mfd/google,cros-ec.yaml).
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
const: google,cros-ec-codec
@@ -42,7 +45,7 @@ required:
- compatible
- '#sound-dai-cells'
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -9,6 +9,9 @@ title: Ingenic SoCs AC97 / I2S Controller (AIC) DT bindings
maintainers:
- Paul Cercueil <paul@crapouillou.net>
allOf:
- $ref: dai-common.yaml#
properties:
$nodename:
pattern: '^audio-controller@'
@@ -37,15 +40,11 @@ properties:
items:
- description: AIC clock
- description: I2S clock
- description: EXT clock
- description: PLL/2 clock
clock-names:
items:
- const: aic
- const: i2s
- const: ext
- const: pll half
dmas:
items:
@@ -57,7 +56,7 @@ properties:
- const: rx
- const: tx
additionalProperties: false
unevaluatedProperties: false
required:
- compatible
@@ -82,10 +81,8 @@ examples:
interrupts = <18>;
clocks = <&cgu JZ4740_CLK_AIC>,
<&cgu JZ4740_CLK_I2S>,
<&cgu JZ4740_CLK_EXT>,
<&cgu JZ4740_CLK_PLL_HALF>;
clock-names = "aic", "i2s", "ext", "pll half";
<&cgu JZ4740_CLK_I2S>;
clock-names = "aic", "i2s";
dmas = <&dmac 25 0xffffffff>, <&dmac 24 0xffffffff>;
dma-names = "rx", "tx";
@@ -9,6 +9,9 @@ title: Ingenic JZ47xx internal codec DT bindings
maintainers:
- Paul Cercueil <paul@crapouillou.net>
allOf:
- $ref: dai-common.yaml#
properties:
$nodename:
pattern: '^audio-codec@.*'
@@ -37,7 +40,7 @@ properties:
'#sound-dai-cells':
const: 0
additionalProperties: false
unevaluatedProperties: false
required:
- compatible
@@ -13,6 +13,9 @@ maintainers:
description: |
Intel KeemBay I2S
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
enum:
@@ -64,7 +67,7 @@ required:
- clock-names
- interrupts
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -9,6 +9,9 @@ title: Bluetooth SCO Audio Codec
maintainers:
- Mark Brown <broonie@kernel.org>
allOf:
- $ref: dai-common.yaml#
properties:
'#sound-dai-cells':
enum:
@@ -26,7 +29,7 @@ required:
- '#sound-dai-cells'
- compatible
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -10,7 +10,7 @@ maintainers:
- Mark Brown <broonie@kernel.org>
allOf:
- $ref: name-prefix.yaml#
- $ref: dai-common.yaml#
properties:
compatible:
@@ -9,6 +9,9 @@ title: Marvel SSPA Digital Audio Interface Bindings
maintainers:
- Lubomir Rintel <lkundrak@v3.sk>
allOf:
- $ref: dai-common.yaml#
properties:
$nodename:
pattern: "^audio-controller(@.*)?$"
@@ -73,7 +76,7 @@ required:
- dma-names
- port
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -1,28 +0,0 @@
Maxim MAX98357A/MAX98360A audio DAC
This node models the Maxim MAX98357A/MAX98360A DAC.
Required properties:
- compatible : "maxim,max98357a" for MAX98357A.
"maxim,max98360a" for MAX98360A.
Optional properties:
- sdmode-gpios : GPIO specifier for the chip's SD_MODE pin.
If this option is not specified then driver does not manage
the pin state (e.g. chip is always on).
- sdmode-delay : specify delay time for SD_MODE pin.
If this option is specified, which means it's required i2s clocks
ready before SD_MODE is unmuted in order to avoid the speaker pop noise.
It's observed that 5ms is sufficient.
Example:
max98357a {
compatible = "maxim,max98357a";
sdmode-gpios = <&qcom_pinmux 25 0>;
};
max98360a {
compatible = "maxim,max98360a";
sdmode-gpios = <&qcom_pinmux 25 0>;
};
@@ -1,44 +0,0 @@
Maxim MAX98504 class D mono speaker amplifier
This device supports I2C control interface and an IRQ output signal. It features
a PCM and PDM digital audio interface (DAI) and a differential analog input.
Required properties:
- compatible : "maxim,max98504"
- reg : should contain the I2C slave device address
- DVDD-supply, DIOVDD-supply, PVDD-supply: power supplies for the device,
as covered in ../regulator/regulator.txt
- interrupts : should specify the interrupt line the device is connected to,
as described in ../interrupt-controller/interrupts.txt
Optional properties:
- maxim,brownout-threshold - the PVDD brownout threshold, the value must be
from 0, 1...21 range, corresponding to 2.6V, 2.65V...3.65V voltage range
- maxim,brownout-attenuation - the brownout attenuation to the speaker gain
applied during the "attack hold" and "timed hold" phase, the value must be
from 0...6 (dB) range
- maxim,brownout-attack-hold-ms - the brownout attack hold phase time in ms,
0...255 (VBATBROWN_ATTK_HOLD, register 0x0018)
- maxim,brownout-timed-hold-ms - the brownout timed hold phase time in ms,
0...255 (VBATBROWN_TIME_HOLD, register 0x0019)
- maxim,brownout-release-rate-ms - the brownout release phase step time in ms,
0...255 (VBATBROWN_RELEASE, register 0x001A)
The default value when the above properties are not specified is 0,
the maxim,brownout-threshold property must be specified to actually enable
the PVDD brownout protection.
Example:
max98504@31 {
compatible = "maxim,max98504";
reg = <0x31>;
interrupt-parent = <&gpio_bank_0>;
interrupts = <2 0>;
DVDD-supply = <&regulator>;
DIOVDD-supply = <&regulator>;
PVDD-supply = <&regulator>;
};
@@ -0,0 +1,52 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/maxim,max98357a.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim Integrated MAX98357A/MAX98360A amplifier
maintainers:
- Tzung-Bi Shih <tzungbi@kernel.org>
description:
Maxim Integrated MAX98357A/MAX98360A is a digital pulse-code modulation (PCM)
input Class D amplifier.
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
enum:
- maxim,max98357a
- maxim,max98360a
'#sound-dai-cells':
const: 0
sdmode-gpios:
maxItems: 1
description:
Chip's SD_MODE pin. If missing the chip is always on.
sdmode-delay:
$ref: /schemas/types.yaml#/definitions/uint32
description:
Delay time for SD_MODE pin changes intended to make I2S clocks ready
before SD_MODE is unmuted in order to avoid the speaker pop noise.
required:
- compatible
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
amplifier {
compatible = "maxim,max98360a";
#sound-dai-cells = <0>;
sdmode-gpios = <&qcom_pinmux 25 GPIO_ACTIVE_HIGH>;
};
@@ -0,0 +1,86 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/maxim,max98504.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim Integrated MAX98504 class D mono speaker amplifier
maintainers:
- Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
description:
Maxim Integrated MAX98504 speaker amplifier supports I2C control interface
with an IRQ output signal, PCM and PDM digital audio interface (DAI) and a
differential analog input.
properties:
compatible:
const: maxim,max98504
reg:
maxItems: 1
interrupts:
maxItems: 1
DIOVDD-supply: true
DVDD-supply: true
PVDD-supply: true
maxim,brownout-threshold:
$ref: /schemas/types.yaml#/definitions/uint32
maximum: 21
default: 0
description:
PVDD brownout threshold, where values correspond to 2.6V, 2.65V...3.65V
voltage range. Property also enables the PVDD brownout protection.
maxim,brownout-attenuation:
$ref: /schemas/types.yaml#/definitions/uint32
maximum: 6
default: 0
description:
Brownout attenuation to the speaker gain applied during the "attack hold"
and "timed hold" phase, the value must be from 0...6 (dB) range.
maxim,brownout-attack-hold-ms:
maximum: 255
default: 0
description:
Brownout attack hold phase time in ms, VBATBROWN_ATTK_HOLD, register 0x0018.
maxim,brownout-timed-hold-ms:
maximum: 255
default: 0
description:
Brownout timed hold phase time in ms, VBATBROWN_TIME_HOLD, register 0x0019.
maxim,brownout-release-rate-ms:
maximum: 255
default: 0
description:
Brownout release phase step time in ms, VBATBROWN_RELEASE, register 0x001A.
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
amplifier@31 {
compatible = "maxim,max98504";
reg = <0x31>;
DIOVDD-supply = <&ldo3_reg>;
DVDD-supply = <&ldo3_reg>;
};
};
@@ -66,13 +66,15 @@ properties:
enum: [0, 1, 2, 3]
default: 0
if:
properties:
compatible:
const: microchip,sam9x60-i2smcc
then:
properties:
microchip,tdm-data-pair: false
allOf:
- $ref: dai-common.yaml#
- if:
properties:
compatible:
const: microchip,sam9x60-i2smcc
then:
properties:
microchip,tdm-data-pair: false
required:
- "#sound-dai-cells"
@@ -84,7 +86,7 @@ required:
- dmas
- dma-names
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -13,6 +13,9 @@ description:
The Microchip Sony/Philips Digital Interface Transmitter 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:
- |
@@ -13,6 +13,9 @@ description:
The Microchip Pulse Density Microphone Controller (PDMC) interfaces up to 4
digital microphones having Pulse Density Modulated (PDM) outputs.
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
const: microchip,sama7g5-pdmc
@@ -75,7 +78,7 @@ required:
- dma-names
- microchip,mic-pos
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -21,6 +21,13 @@ properties:
$ref: "/schemas/types.yaml#/definitions/phandle"
description: The phandle of MT8186 ASoC platform.
dmic-gpios:
maxItems: 1
description:
dmic-gpios optional prop for switching between two DMICs.
Ex, the GPIO can control a MUX HW component to select
dmic clk and data form a Front or Rear dmic.
headset-codec:
type: object
additionalProperties: false
@@ -63,14 +70,19 @@ required:
examples:
- |
#include <dt-bindings/gpio/gpio.h>
sound: mt8186-sound {
compatible = "mediatek,mt8186-mt6366-rt1019-rt5682s-sound";
mediatek,platform = <&afe>;
pinctrl-names = "aud_clk_mosi_off",
"aud_clk_mosi_on";
"aud_clk_mosi_on",
"aud_gpio_dmic_sec";
pinctrl-0 = <&aud_clk_mosi_off>;
pinctrl-1 = <&aud_clk_mosi_on>;
pinctrl-2 = <&aud_gpio_dmic_sec>;
dmic-gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
headset-codec {
sound-dai = <&rt5682s>;
@@ -34,7 +34,7 @@ properties:
properties:
sound-dai:
$ref: /schemas/types.yaml#/definitions/phandle
maxItems: 1
required:
- sound-dai
@@ -48,7 +48,6 @@ properties:
maxItems: 2
items:
maxItems: 1
$ref: /schemas/types.yaml#/definitions/phandle-array
required:
- sound-dai
@@ -6,9 +6,14 @@ Required properties:
"marvell,kirkwood-audio" for Kirkwood platforms
"marvell,dove-audio" for Dove platforms
"marvell,armada370-audio" for Armada 370 platforms
"marvell,armada-380-audio" for Armada 38x platforms
- reg: physical base address of the controller and length of memory mapped
region.
region (named "i2s_regs").
With "marvell,armada-380-audio" two other regions are required:
first of those is dedicated for Audio PLL Configuration registers
(named "pll_regs") and the second one ("soc_ctrl") - for register
where one of exceptive I/O types (I2S or S/PDIF) is set.
- interrupts:
with "marvell,kirkwood-audio", the audio interrupt
@@ -23,6 +28,13 @@ Required properties:
"internal" for the internal clock
"extclk" for the external clock
Optional properties:
- spdif-mode:
Enable S/PDIF mode on Armada 38x SoC. Using this property
disables standard I2S I/O. Valid only with "marvell,armada-380-audio"
compatible string.
Example:
i2s1: audio-controller@b4000 {
@@ -2,6 +2,7 @@ Nuvoton NAU8315 Mono Class-D Amplifier
Required properties:
- compatible : "nuvoton,nau8315"
"nuvoton,nau8318"
Optional properties:
- enable-gpios : GPIO specifier for the chip's device enable input(EN) pin.
@@ -16,3 +17,8 @@ nau8315 {
compatible = "nuvoton,nau8315";
enable-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
};
nau8318 {
compatible = "nuvoton,nau8318";
enable-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
};
@@ -23,7 +23,7 @@ maintainers:
- Sameer Pujar <spujar@nvidia.com>
allOf:
- $ref: name-prefix.yaml#
- $ref: dai-common.yaml#
properties:
$nodename:
@@ -18,7 +18,7 @@ maintainers:
- Sameer Pujar <spujar@nvidia.com>
allOf:
- $ref: name-prefix.yaml#
- $ref: dai-common.yaml#
properties:
$nodename:
@@ -16,6 +16,9 @@ maintainers:
- Thierry Reding <treding@nvidia.com>
- Jon Hunter <jonathanh@nvidia.com>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
const: nvidia,tegra20-spdif
@@ -66,7 +69,7 @@ required:
- dma-names
- "#sound-dai-cells"
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -19,7 +19,7 @@ maintainers:
- Sameer Pujar <spujar@nvidia.com>
allOf:
- $ref: name-prefix.yaml#
- $ref: dai-common.yaml#
properties:
$nodename:
@@ -18,7 +18,7 @@ maintainers:
- Sameer Pujar <spujar@nvidia.com>
allOf:
- $ref: name-prefix.yaml#
- $ref: dai-common.yaml#
properties:
$nodename:
@@ -17,7 +17,7 @@ maintainers:
- Sameer Pujar <spujar@nvidia.com>
allOf:
- $ref: name-prefix.yaml#
- $ref: dai-common.yaml#
properties:
$nodename:
@@ -17,7 +17,7 @@ maintainers:
- Sameer Pujar <spujar@nvidia.com>
allOf:
- $ref: name-prefix.yaml#
- $ref: dai-common.yaml#
properties:
$nodename:
@@ -17,7 +17,7 @@ maintainers:
- Sameer Pujar <spujar@nvidia.com>
allOf:
- $ref: name-prefix.yaml#
- $ref: dai-common.yaml#
properties:
$nodename:
@@ -20,7 +20,7 @@ maintainers:
- Sameer Pujar <spujar@nvidia.com>
allOf:
- $ref: name-prefix.yaml#
- $ref: dai-common.yaml#
properties:
$nodename:
@@ -17,7 +17,7 @@ maintainers:
- Sameer Pujar <spujar@nvidia.com>
allOf:
- $ref: name-prefix.yaml#
- $ref: dai-common.yaml#
properties:
compatible:
@@ -17,7 +17,7 @@ maintainers:
- Sameer Pujar <spujar@nvidia.com>
allOf:
- $ref: name-prefix.yaml#
- $ref: dai-common.yaml#
properties:
$nodename:
@@ -10,7 +10,7 @@ maintainers:
- Stephan Gerhold <stephan@gerhold.net>
allOf:
- $ref: name-prefix.yaml#
- $ref: dai-common.yaml#
properties:
compatible:
@@ -109,9 +109,10 @@ required:
- interrupt-names
- '#sound-dai-cells'
additionalProperties: false
unevaluatedProperties: false
allOf:
- $ref: dai-common.yaml#
- if:
properties:
compatible:
@@ -9,6 +9,9 @@ title: LPASS(Low Power Audio Subsystem) RX Macro audio codec DT bindings
maintainers:
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
enum:
@@ -43,8 +46,7 @@ properties:
- const: fsgen
clock-output-names:
items:
- const: mclk
maxItems: 1
power-domains:
maxItems: 2
@@ -59,7 +61,7 @@ required:
- reg
- "#sound-dai-cells"
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -9,6 +9,9 @@ title: LPASS(Low Power Audio Subsystem) TX Macro audio codec DT bindings
maintainers:
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
enum:
@@ -43,8 +46,7 @@ properties:
- const: fsgen
clock-output-names:
items:
- const: mclk
maxItems: 1
power-domains:
maxItems: 2
@@ -63,7 +65,7 @@ required:
- reg
- "#sound-dai-cells"
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -9,6 +9,9 @@ title: LPASS(Low Power Audio Subsystem) VA Macro audio codec DT bindings
maintainers:
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
enum:
@@ -39,8 +42,7 @@ properties:
- const: mclk
clock-output-names:
items:
- const: fsgen
maxItems: 1
power-domains:
maxItems: 2
@@ -62,7 +64,7 @@ required:
- reg
- "#sound-dai-cells"
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -9,6 +9,9 @@ title: LPASS(Low Power Audio Subsystem) VA Macro audio codec DT bindings
maintainers:
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
enum:
@@ -38,8 +41,7 @@ properties:
- const: fsgen
clock-output-names:
items:
- const: mclk
maxItems: 1
qcom,dmic-sample-rate:
description: dmic sample rate
@@ -53,7 +55,7 @@ required:
- reg
- "#sound-dai-cells"
additionalProperties: false
unevaluatedProperties: false
examples:
- |
@@ -14,6 +14,9 @@ description:
Qualcomm Audio Device Manager (Q6ADM) routing node represents routing
specific configuration.
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
enum:
@@ -26,27 +29,11 @@ required:
- compatible
- "#sound-dai-cells"
additionalProperties: false
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/soc/qcom,apr.h>
#include <dt-bindings/sound/qcom,q6asm.h>
apr {
compatible = "qcom,apr-v2";
qcom,domain = <APR_DOMAIN_ADSP>;
#address-cells = <1>;
#size-cells = <0>;
service@8 {
compatible = "qcom,q6adm";
reg = <APR_SVC_ADM>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
routing {
compatible = "qcom,q6adm-routing";
#sound-dai-cells = <0>;
};
};
routing {
compatible = "qcom,q6adm-routing";
#sound-dai-cells = <0>;
};
@@ -0,0 +1,51 @@
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/qcom,q6adm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Audio Device Manager (Q6ADM)
maintainers:
- Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
allOf:
- $ref: /schemas/soc/qcom/qcom,apr-services.yaml#
properties:
compatible:
enum:
- qcom,q6adm
routing:
type: object
$ref: /schemas/sound/qcom,q6adm-routing.yaml#
unevaluatedProperties: false
description: Qualcomm DSP LPASS audio routing
required:
- compatible
- routing
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/soc/qcom,apr.h>
apr {
#address-cells = <1>;
#size-cells = <0>;
service@8 {
compatible = "qcom,q6adm";
reg = <APR_SVC_ADM>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
routing {
compatible = "qcom,q6adm-routing";
#sound-dai-cells = <0>;
};
};
};
@@ -0,0 +1,68 @@
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/qcom,q6afe.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Audio FrontEnd (Q6AFE)
maintainers:
- Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
allOf:
- $ref: /schemas/soc/qcom/qcom,apr-services.yaml#
properties:
compatible:
enum:
- qcom,q6afe
clock-controller:
$ref: /schemas/sound/qcom,q6dsp-lpass-clocks.yaml#
unevaluatedProperties: false
description: Qualcomm DSP LPASS clock controller
dais:
type: object
$ref: /schemas/sound/qcom,q6dsp-lpass-ports.yaml#
unevaluatedProperties: false
description: Qualcomm DSP audio ports
required:
- compatible
- dais
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/soc/qcom,apr.h>
#include <dt-bindings/sound/qcom,q6afe.h>
apr {
#address-cells = <1>;
#size-cells = <0>;
service@4 {
compatible = "qcom,q6afe";
reg = <APR_SVC_AFE>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
clock-controller {
compatible = "qcom,q6afe-clocks";
#clock-cells = <2>;
};
dais {
compatible = "qcom,q6afe-dais";
#address-cells = <1>;
#size-cells = <0>;
#sound-dai-cells = <1>;
dai@22 {
reg = <QUATERNARY_MI2S_RX>;
qcom,sd-lines = <0 1 2 3>;
};
};
};
};
@@ -27,20 +27,7 @@ additionalProperties: false
examples:
- |
#include <dt-bindings/soc/qcom,gpr.h>
gpr {
compatible = "qcom,gpr";
#address-cells = <1>;
#size-cells = <0>;
qcom,domain = <GPR_DOMAIN_ID_ADSP>;
service@1 {
compatible = "qcom,q6apm";
reg = <1>;
dais {
compatible = "qcom,q6apm-dais";
iommus = <&apps_smmu 0x1801 0x0>;
};
};
dais {
compatible = "qcom,q6apm-dais";
iommus = <&apps_smmu 0x1801 0x0>;
};
@@ -0,0 +1,35 @@
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/qcom,q6apm-lpass-dais.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm DSP LPASS (Low Power Audio SubSystem) Audio Ports
maintainers:
- Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
enum:
- qcom,q6apm-lpass-dais
'#sound-dai-cells':
const: 1
required:
- compatible
- '#sound-dai-cells'
unevaluatedProperties: false
examples:
- |
dais {
compatible = "qcom,q6apm-lpass-dais";
#sound-dai-cells = <1>;
};
@@ -0,0 +1,68 @@
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Audio Process Manager (Q6APM)
maintainers:
- Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
allOf:
- $ref: dai-common.yaml#
- $ref: /schemas/soc/qcom/qcom,apr-services.yaml#
properties:
compatible:
enum:
- qcom,q6apm
bedais:
type: object
$ref: /schemas/sound/qcom,q6apm-lpass-dais.yaml#
unevaluatedProperties: false
description: Qualcomm DSP audio ports
dais:
type: object
$ref: /schemas/sound/qcom,q6apm-dai.yaml#
unevaluatedProperties: false
description: Qualcomm DSP audio ports
'#sound-dai-cells':
const: 0
required:
- compatible
- bedais
- dais
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/soc/qcom,gpr.h>
gpr {
#address-cells = <1>;
#size-cells = <0>;
service@1 {
reg = <GPR_APM_MODULE_IID>;
compatible = "qcom,q6apm";
#sound-dai-cells = <0>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
dais {
compatible = "qcom,q6apm-dais";
iommus = <&apps_smmu 0x1801 0x0>;
};
bedais {
compatible = "qcom,q6apm-lpass-dais";
#sound-dai-cells = <1>;
};
};
};
@@ -73,40 +73,24 @@ additionalProperties: false
examples:
- |
#include <dt-bindings/soc/qcom,apr.h>
#include <dt-bindings/sound/qcom,q6asm.h>
apr {
compatible = "qcom,apr-v2";
qcom,domain = <APR_DOMAIN_ADSP>;
dais {
compatible = "qcom,q6asm-dais";
iommus = <&apps_smmu 0x1821 0x0>;
#address-cells = <1>;
#size-cells = <0>;
#sound-dai-cells = <1>;
service@7 {
compatible = "qcom,q6asm";
reg = <APR_SVC_ASM>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
dai@0 {
reg = <0>;
};
dais {
compatible = "qcom,q6asm-dais";
iommus = <&apps_smmu 0x1821 0x0>;
#address-cells = <1>;
#size-cells = <0>;
#sound-dai-cells = <1>;
dai@1 {
reg = <1>;
};
dai@0 {
reg = <0>;
};
dai@1 {
reg = <1>;
};
dai@2 {
reg = <2>;
is-compress-dai;
direction = <1>;
};
};
dai@2 {
reg = <2>;
is-compress-dai;
direction = <1>;
};
};
@@ -0,0 +1,68 @@
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/qcom,q6asm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Audio Stream Manager (Q6ASM)
maintainers:
- Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
allOf:
- $ref: /schemas/soc/qcom/qcom,apr-services.yaml#
properties:
compatible:
enum:
- qcom,q6asm
dais:
type: object
$ref: /schemas/sound/qcom,q6asm-dais.yaml#
unevaluatedProperties: false
description: Qualcomm DSP audio ports
required:
- compatible
- dais
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/soc/qcom,apr.h>
apr {
#address-cells = <1>;
#size-cells = <0>;
service@7 {
compatible = "qcom,q6asm";
reg = <APR_SVC_ASM>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
dais {
compatible = "qcom,q6asm-dais";
iommus = <&apps_smmu 0x1821 0x0>;
#address-cells = <1>;
#size-cells = <0>;
#sound-dai-cells = <1>;
dai@0 {
reg = <0>;
};
dai@1 {
reg = <1>;
};
dai@2 {
reg = <2>;
is-compress-dai;
direction = <1>;
};
};
};
};
@@ -0,0 +1,39 @@
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/qcom,q6core.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Audio Core (Q6Core)
maintainers:
- Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
allOf:
- $ref: /schemas/soc/qcom/qcom,apr-services.yaml#
properties:
compatible:
enum:
- qcom,q6core
required:
- compatible
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/soc/qcom,apr.h>
apr {
#address-cells = <1>;
#size-cells = <0>;
service@3 {
compatible = "qcom,q6core";
reg = <APR_SVC_ADSP_CORE>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
};
};
@@ -35,41 +35,7 @@ additionalProperties: false
examples:
- |
#include <dt-bindings/soc/qcom,apr.h>
#include <dt-bindings/sound/qcom,q6afe.h>
apr {
compatible = "qcom,apr-v2";
qcom,domain = <APR_DOMAIN_ADSP>;
#address-cells = <1>;
#size-cells = <0>;
service@4 {
compatible = "qcom,q6afe";
reg = <APR_SVC_AFE>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
clock-controller {
compatible = "qcom,q6afe-clocks";
#clock-cells = <2>;
};
};
};
- |
#include <dt-bindings/soc/qcom,gpr.h>
gpr {
compatible = "qcom,gpr";
qcom,domain = <GPR_DOMAIN_ID_ADSP>;
#address-cells = <1>;
#size-cells = <0>;
service@2 {
reg = <GPR_PRM_MODULE_IID>;
compatible = "qcom,q6prm";
clock-controller {
compatible = "qcom,q6prm-lpass-clocks";
#clock-cells = <2>;
};
};
clock-controller {
compatible = "qcom,q6afe-clocks";
#clock-cells = <2>;
};
@@ -16,7 +16,6 @@ properties:
compatible:
enum:
- qcom,q6afe-dais
- qcom,q6apm-lpass-dais
'#sound-dai-cells':
const: 1
@@ -150,54 +149,16 @@ additionalProperties: false
examples:
- |
#include <dt-bindings/soc/qcom,apr.h>
#include <dt-bindings/sound/qcom,q6afe.h>
apr {
compatible = "qcom,apr-v2";
#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
dais {
compatible = "qcom,q6afe-dais";
#address-cells = <1>;
#size-cells = <0>;
qcom,domain = <APR_DOMAIN_ADSP>;
#sound-dai-cells = <1>;
service@4 {
compatible = "qcom,q6afe";
reg = <APR_SVC_AFE>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
dais {
compatible = "qcom,q6afe-dais";
#address-cells = <1>;
#size-cells = <0>;
#sound-dai-cells = <1>;
dai@22 {
reg = <QUATERNARY_MI2S_RX>;
qcom,sd-lines = <0 1 2 3>;
};
};
};
};
- |
#include <dt-bindings/soc/qcom,gpr.h>
gpr {
compatible = "qcom,gpr";
#address-cells = <1>;
#size-cells = <0>;
qcom,domain = <GPR_DOMAIN_ID_ADSP>;
service@1 {
compatible = "qcom,q6apm";
reg = <GPR_APM_MODULE_IID>;
dais {
compatible = "qcom,q6apm-lpass-dais";
#address-cells = <1>;
#size-cells = <0>;
#sound-dai-cells = <1>;
dai@22 {
reg = <QUATERNARY_MI2S_RX>;
qcom,sd-lines = <0 1 2 3>;
};
};
dai@22 {
reg = <QUATERNARY_MI2S_RX>;
qcom,sd-lines = <0 1 2 3>;
};
};
@@ -0,0 +1,50 @@
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/qcom,q6prm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Proxy Resource Manager (Q6PRM)
maintainers:
- Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
allOf:
- $ref: /schemas/soc/qcom/qcom,apr-services.yaml#
properties:
compatible:
enum:
- qcom,q6prm
clock-controller:
$ref: /schemas/sound/qcom,q6dsp-lpass-clocks.yaml#
unevaluatedProperties: false
description: Qualcomm DSP LPASS clock controller
required:
- compatible
- clock-controller
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/soc/qcom,gpr.h>
gpr {
#address-cells = <1>;
#size-cells = <0>;
service@2 {
reg = <GPR_PRM_MODULE_IID>;
compatible = "qcom,q6prm";
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
clock-controller {
compatible = "qcom,q6prm-lpass-clocks";
#clock-cells = <2>;
};
};
};
@@ -109,7 +109,7 @@ audio-codec@1{
reg = <1 0>;
interrupts = <&msmgpio 54 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "intr2"
reset-gpios = <&msmgpio 64 0>;
reset-gpios = <&msmgpio 64 GPIO_ACTIVE_LOW>;
slim-ifc-dev = <&wc9335_ifd>;
clock-names = "mclk", "native";
clocks = <&rpmcc RPM_SMD_DIV_CLK1>,
@@ -13,6 +13,9 @@ description: |
Qualcomm WCD9380/WCD9385 Codec is a standalone Hi-Fi audio codec IC.
It has RX and TX Soundwire slave devices.
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
enum:
@@ -106,7 +109,7 @@ required:
- qcom,micbias4-microvolt
- "#sound-dai-cells"
additionalProperties: false
unevaluatedProperties: false
examples:
- |

Some files were not shown because too many files have changed in this diff Show More