Commit 102f9d3d authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'sound-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound updates from Takashi Iwai:
 "This looks like a relatively calm development cycle; there have been
  only few changes in ALSA and ASoC core sides while we get lots of
  device-specific fixes and updates as usual. Most of commits are about
  ASoC, including Intel SOF/AVS and many device tree updates.

  Below are some highlights:

  Core:
   - Improvement in memalloc helper for fallback allocations
   - More cleanups of ASoC DAPM code

  ASoC:
   - Factoring out of mapping hw_params onto SoundWire configuration
   - The ever ongoing overhauls of the Intel DSP code continue,
     including support for loading libraries and probes with IPC4 on
     SOF.
   - Support for more sample formats on JZ4740
   - Lots of device tree conversions and fixups
   - Support for Allwinner D1, a range of AMD and Intel systems,
     Mediatek systems with multiple DMICs, Nuvoton NAU8318, NXP
     fsl_rpmsg and i.MX93, Qualcomm AudioReach Enable, MFC and SAL,
     RealTek RT1318 and Rockchip RK3588

  ALSA:
   - Addition of PCM kselftest; still minimalistic but can be extended
     in future
   - Fixes for corner-case XRUNs with USB-audio implicit feedback mode
   - Usual device-specific quirk updates for USB- and HD-audio
   - FireWire DICE updates

  This also contains a few cross-tree updates:
   - Some OMAP board file updates for removal of relevant OMAP platforms
   - A new I2C API update for I2C probe API adaption
   - A DRM update for the further hdmi-codec updates"

* tag 'sound-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (417 commits)
  ALSA: mts64: fix possible null-ptr-defer in snd_mts64_interrupt
  ALSA: patch_realtek: Fix Dell Inspiron Plus 16
  ALSA: hda/cirrus: Add extra 10 ms delay to allow PLL settle and lock.
  ASoC: dt-bindings: Correct Alexandre Belloni email
  ASoC: dt-bindings: maxim,max98504: Convert to DT schema
  ASoC: dt-bindings: maxim,max98357a: Convert to DT schema
  ASoC: dt-bindings: Reference common DAI properties
  ASoC: dt-bindings: Extend name-prefix.yaml into common DAI properties
  ASoC: rt715: Make read-only arrays capture_reg_H and capture_reg_L static const
  ASoC: uniphier: aio-core: Make some read-only arrays static const
  ASoC: wcd938x: Make read-only array minCode_param static const
  ASoC: qcom: lpass-sc7280: Add maybe_unused tag for system PM ops
  ASoC : SOF: amd: Add support for IPC and DSP dumps
  ASoC: SOF: amd: Use poll function instead to read ACP_SHA_DSP_FW_QUALIFIER
  ALSA: usb-audio: Workaround for XRUN at prepare
  ALSA: pcm: Handle XRUN at trigger START
  ALSA: pcm: Set missing stop_operating flag at undoing trigger start
  drm: tda99x: Don't advertise non-existent capture support
  ASoC: hdmi-codec: Allow playback and capture to be disabled
  kselftest/alsa: Add more coverage of sample rates and channel counts
  ...
parents 8715c6d3 8ec2d95f
......@@ -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
......
# 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
......@@ -59,8 +59,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
......@@ -82,12 +81,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:
......@@ -99,99 +99,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
......@@ -204,7 +111,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:
......@@ -228,6 +143,8 @@ 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>;
......@@ -237,22 +154,24 @@ examples:
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
};
q6afe: service@4 {
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>;
/* ... */
};
/* ... */
};
};
......@@ -261,12 +180,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>;
#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:
......
# 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:
- |
......
# 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>;
};
...
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:
- items:
- enum:
- fsl,vf610-sai
- fsl,imx6sx-sai
- fsl,imx6ul-sai
- fsl,imx7ulp-sai
- fsl,imx8mq-sai
- fsl,imx8qm-sai
- fsl,imx8ulp-sai
- fsl,imx7d-sai
- const: fsl,imx6sx-sai
- items:
- enum:
- fsl,imx8mm-sai
......@@ -33,19 +31,18 @@ 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,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 +64,7 @@ properties:
- const: mclk3
- const: pll8k
- const: pll11k
minItems: 4
minItems: 5
- items:
- const: bus
- const: mclk1
......@@ -77,19 +74,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 +123,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 +176,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:
- |
......
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>;
};
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>;
};
# 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>;
};
# 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,11 +66,13 @@ properties:
enum: [0, 1, 2, 3]
default: 0
if:
allOf:
- $ref: dai-common.yaml#
- if:
properties:
compatible:
const: microchip,sam9x60-i2smcc
then:
then:
properties:
microchip,tdm-data-pair: false
......@@ -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>;
};
};
};
# 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>;
};
};
};
# 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>;
};
};
};
# 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>;
};
# 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,20 +73,6 @@ 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>;
#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>;
......@@ -108,5 +94,3 @@ examples:
direction = <1>;
};
};
};
};
# 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>;
};
};
};
};
# 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>;
};
};
};
......@@ -16,7 +16,6 @@ properties:
compatible:
enum:
- qcom,q6afe-dais
- qcom,q6apm-lpass-dais
'#sound-dai-cells':
const: 1
......@@ -150,18 +149,7 @@ additionalProperties: false
examples:
- |
#include <dt-bindings/soc/qcom,apr.h>
#include <dt-bindings/sound/qcom,q6afe.h>
apr {
compatible = "qcom,apr-v2";
#address-cells = <1>;
#size-cells = <0>;
qcom,domain = <APR_DOMAIN_ADSP>;
service@4 {
compatible = "qcom,q6afe";
reg = <APR_SVC_AFE>;
qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
dais {
compatible = "qcom,q6afe-dais";
......@@ -174,30 +162,3 @@ examples:
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>;
};
};
};
};
# 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:
- |
......
......@@ -15,6 +15,9 @@ description: |
Their primary operating mode uses a SoundWire digital audio
interface. This binding is for SoundWire interface.
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
const: sdw10217020200
......@@ -23,7 +26,7 @@ properties:
maxItems: 1
powerdown-gpios:
description: GPIO spec for Powerdown/Shutdown line to use
description: GPIO spec for Powerdown/Shutdown line to use (pin SD_N)
maxItems: 1
vdd-supply:
......@@ -43,10 +46,12 @@ required:
- "#thermal-sensor-cells"
- "#sound-dai-cells"
additionalProperties: false
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
soundwire-controller@3250000 {
#address-cells = <2>;
#size-cells = <0>;
......@@ -55,19 +60,21 @@ examples:
speaker@0,1 {
compatible = "sdw10217020200";
reg = <0 1>;
powerdown-gpios = <&tlmm 1 0>;
powerdown-gpios = <&tlmm 1 GPIO_ACTIVE_LOW>;
vdd-supply = <&vreg_s10b_1p8>;
#thermal-sensor-cells = <0>;
#sound-dai-cells = <0>;
sound-name-prefix = "SpkrLeft";
};
speaker@0,2 {
compatible = "sdw10217020200";
reg = <0 2>;
powerdown-gpios = <&tlmm 89 0>;
powerdown-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>;
vdd-supply = <&vreg_s10b_1p8>;
#thermal-sensor-cells = <0>;
#sound-dai-cells = <0>;
sound-name-prefix = "SpkrRight";
};
};
......
......@@ -12,6 +12,9 @@ maintainers:
description: |
Rt5682s(ALC5682I-VS) is a rt5682i variant which supports I2C only.
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
const: realtek,rt5682s
......@@ -87,11 +90,32 @@ properties:
maxItems: 2
description: Name given for DAI word clock and bit clock outputs.
additionalProperties: false
"#sound-dai-cells":
const: 1
AVDD-supply:
description: Regulator supplying analog power through the AVDD pin.
MICVDD-supply:
description: Regulator supplying power for the microphone bias through the
MICVDD pin.
DBVDD-supply:
description: Regulator supplying I/O power through the DBVDD pin.
LDO1-IN-supply:
description: Regulator supplying power to the digital core and charge pump
through the LDO1_IN pin.
unevaluatedProperties: false
required:
- compatible
- reg
- AVDD-supply
- MICVDD-supply
- DBVDD-supply
- LDO1-IN-supply
examples:
- |
......@@ -117,5 +141,10 @@ examples:
clocks = <&osc>;
clock-names = "mclk";
AVDD-supply = <&avdd_reg>;
MICVDD-supply = <&micvdd_reg>;
DBVDD-supply = <&dbvdd_reg>;
LDO1-IN-supply = <&ldo1_in_reg>;
};
};
......@@ -9,6 +9,9 @@ title: Renesas FIFO-buffered Serial Interface (FSI)
maintainers:
- Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
allOf:
- $ref: dai-common.yaml#
properties:
$nodename:
pattern: "^sound@.*"
......@@ -64,7 +67,7 @@ required:
- power-domains
- '#sound-dai-cells'
additionalProperties: false
unevaluatedProperties: false
examples:
- |
......
......@@ -274,6 +274,7 @@ required:
- "#sound-dai-cells"
allOf:
- $ref: dai-common.yaml#
- if:
properties:
compatible:
......@@ -304,7 +305,7 @@ allOf:
- ssi
- audmapp
additionalProperties: false
unevaluatedProperties: false
examples:
- |
......
......@@ -9,6 +9,9 @@ title: Renesas RZ/{G2L,V2L} ASoC Sound Serial Interface (SSIF-2)
maintainers:
- Biju Das <biju.das.jz@bp.renesas.com>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
items:
......@@ -90,7 +93,7 @@ required:
- resets
- '#sound-dai-cells'
additionalProperties: false
unevaluatedProperties: false
examples:
- |
......
......@@ -16,6 +16,9 @@ description: |
applications like as TV, monitors. home entertainment, electronic music
equipment.
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
enum:
......@@ -42,7 +45,7 @@ required:
- dvdd-supply
- '#sound-dai-cells'
additionalProperties: false
unevaluatedProperties: false
examples:
- |
......
......@@ -14,6 +14,9 @@ description:
maintainers:
- Nicolas Frattaroli <frattaroli.nicolas@gmail.com>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
enum:
......@@ -21,6 +24,7 @@ properties:
- rockchip,rk1808-i2s-tdm
- rockchip,rk3308-i2s-tdm
- rockchip,rk3568-i2s-tdm
- rockchip,rk3588-i2s-tdm
- rockchip,rv1126-i2s-tdm
reg:
......@@ -135,10 +139,9 @@ required:
- clock-names
- resets
- reset-names
- rockchip,grf
- "#sound-dai-cells"
additionalProperties: false
unevaluatedProperties: false
examples:
- |
......
......@@ -16,6 +16,9 @@ description:
maintainers:
- Heiko Stuebner <heiko@sntech.de>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
enum:
......@@ -83,7 +86,7 @@ required:
- dma-names
- "#sound-dai-cells"
additionalProperties: false
unevaluatedProperties: false
examples:
- |
......
......@@ -8,6 +8,9 @@ title: Rockchip rk3328 internal codec
maintainers:
- Heiko Stuebner <heiko@sntech.de>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
......@@ -53,7 +56,7 @@ required:
- rockchip,grf
- "#sound-dai-cells"
additionalProperties: false
unevaluatedProperties: false
examples:
- |
......
......@@ -13,6 +13,9 @@ description:
maintainers:
- Heiko Stuebner <heiko@sntech.de>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
oneOf:
......@@ -111,7 +114,7 @@ required:
- dma-names
- "#sound-dai-cells"
additionalProperties: false
unevaluatedProperties: false
examples:
- |
......
......@@ -75,17 +75,18 @@ required:
- dma-names
- "#sound-dai-cells"
if:
allOf:
- $ref: dai-common.yaml#
- if:
properties:
compatible:
contains:
const: rockchip,rk3288-spdif
then:
then:
required:
- rockchip,grf
additionalProperties: false
unevaluatedProperties: false
examples:
- |
......
......@@ -14,6 +14,9 @@ description:
maintainers:
- Katsuhiro Suzuki <katsuhiro@katsuster.net>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
const: rohm,bd28623
......@@ -50,7 +53,7 @@ required:
- VCCP2-supply
- "#sound-dai-cells"
additionalProperties: false
unevaluatedProperties: false
examples:
- |
......
......@@ -42,7 +42,7 @@ Optional properties:
- realtek,ldo1-en-gpios : The GPIO that controls the CODEC's LDO1_EN pin.
- realtek,reset-gpios : The GPIO that controls the CODEC's RESET pin.
- sound-name-prefix: Please refer to name-prefix.yaml
- sound-name-prefix: Please refer to dai-common.yaml
- ports: A Codec may have a single or multiple I2S interfaces. These
interfaces on Codec side can be described under 'ports' or 'port'.
......
......@@ -8,6 +8,21 @@ Required properties:
- reg : The I2C address of the device.
- AVDD-supply: phandle to the regulator supplying analog power through the
AVDD pin
- MICVDD-supply: phandle to the regulator supplying power for the microphone
bias through the MICVDD pin. Either MICVDD or VBAT should be present.
- VBAT-supply: phandle to the regulator supplying battery power through the
VBAT pin. Either MICVDD or VBAT should be present.
- DBVDD-supply: phandle to the regulator supplying I/O power through the DBVDD
pin.
- LDO1-IN-supply: phandle to the regulator supplying power to the digital core
and charge pump through the LDO1_IN pin.
Optional properties:
- interrupts : The CODEC's interrupt output.
......@@ -46,7 +61,7 @@ Optional properties:
- realtek,dmic-clk-driving-high : Set the high driving of the DMIC clock out.
- #sound-dai-cells: Should be set to '<0>'.
- #sound-dai-cells: Should be set to '<1>'.
Pins on the device (for linking into audio routes) for RT5682:
......@@ -75,4 +90,9 @@ rt5682 {
clocks = <&osc>;
clock-names = "mclk";
AVDD-supply = <&avdd_reg>;
MICVDD-supply = <&micvdd_reg>;
DBVDD-supply = <&dbvdd_reg>;
LDO1-IN-supply = <&ldo1_in_reg>;
};
......@@ -10,6 +10,9 @@ maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
- Sylwester Nawrocki <s.nawrocki@samsung.com>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
description: |
......@@ -124,7 +127,7 @@ required:
- clocks
- clock-names
additionalProperties: false
unevaluatedProperties: false
examples:
- |
......
......@@ -9,6 +9,9 @@ title: Freescale SGTL5000 Stereo Codec
maintainers:
- Fabio Estevam <festevam@gmail.com>
allOf:
- $ref: dai-common.yaml#
properties:
compatible:
const: fsl,sgtl5000
......@@ -88,7 +91,7 @@ required:
- VDDA-supply
- VDDIO-supply
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:
compatible:
......
......@@ -14,7 +14,7 @@ description: |
their input line is connected to the output line.
allOf:
- $ref: name-prefix.yaml#
- $ref: dai-common.yaml#
properties:
compatible:
......
......@@ -50,18 +50,18 @@ properties:
- const: rx
minItems: 1
if:
allOf:
- $ref: dai-common.yaml#
- if:
properties:
compatible:
contains:
const: canaan,k210-i2s
then:
then:
properties:
"#sound-dai-cells":
const: 1
else:
else:
properties:
"#sound-dai-cells":
const: 0
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment