dt-bindings: Add devicetree bindings
Add snapshot of device tree bindings from keystone common kernel, branch "android-mainline-keystone-qcom-release" at c4c12103f9c0 ("Snap for 9228065 from e32903b9a63bb558df8b803b076619c53c16baad to android-mainline-keystone-qcom-release"). Change-Id: I7682079615cbd9f29340a5c1f2a1d84ec441a1f1 Signed-off-by: Melody Olvera <quic_molvera@quicinc.com>
This commit is contained in:
32
bindings/sound/ac97-bus.txt
Normal file
32
bindings/sound/ac97-bus.txt
Normal file
@@ -0,0 +1,32 @@
|
||||
Generic AC97 Device Properties
|
||||
|
||||
This documents describes the devicetree bindings for an ac97 controller child
|
||||
node describing ac97 codecs.
|
||||
|
||||
Required properties:
|
||||
-compatible : Must be "ac97,vendor_id1,vendor_id2
|
||||
The ids shall be the 4 characters hexadecimal encoding, such as
|
||||
given by "%04x" formatting of printf
|
||||
-reg : Must be the ac97 codec number, between 0 and 3
|
||||
|
||||
Example:
|
||||
ac97: sound@40500000 {
|
||||
compatible = "marvell,pxa270-ac97";
|
||||
reg = < 0x40500000 0x1000 >;
|
||||
interrupts = <14>;
|
||||
reset-gpios = <&gpio 95 GPIO_ACTIVE_HIGH>;
|
||||
#sound-dai-cells = <1>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = < &pinctrl_ac97_default >;
|
||||
clocks = <&clks CLK_AC97>, <&clks CLK_AC97CONF>;
|
||||
clock-names = "AC97CLK", "AC97CONFCLK";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
audio-codec@0 {
|
||||
reg = <0>;
|
||||
compatible = "ac97,574d,4c13";
|
||||
clocks = <&fixed_wm9713_clock>;
|
||||
clock-names = "ac97_clk";
|
||||
}
|
||||
};
|
66
bindings/sound/adi,adau1372.yaml
Normal file
66
bindings/sound/adi,adau1372.yaml
Normal file
@@ -0,0 +1,66 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/adi,adau1372.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
|
||||
title: Analog Devices ADAU1372 CODEC
|
||||
|
||||
maintainers:
|
||||
- Alexandre Belloni <alexandre.belloni@bootlin.om>
|
||||
|
||||
description: |
|
||||
Analog Devices ADAU1372 four inputs and two outputs codec.
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ADAU1372.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,adau1372
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
const: "mclk"
|
||||
|
||||
powerdown-gpios:
|
||||
description: GPIO used for hardware power-down.
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- "#sound-dai-cells"
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
audio-codec@3c {
|
||||
compatible = "adi,adau1372";
|
||||
reg = <0x3c>;
|
||||
#sound-dai-cells = <0>;
|
||||
clock-names = "mclk";
|
||||
clocks = <&adau1372z_xtal>;
|
||||
};
|
||||
};
|
||||
|
||||
adau1372z_xtal: clock {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <12288000>;
|
||||
};
|
||||
...
|
39
bindings/sound/adi,adau1701.txt
Normal file
39
bindings/sound/adi,adau1701.txt
Normal file
@@ -0,0 +1,39 @@
|
||||
Analog Devices ADAU1701
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: Should contain "adi,adau1701"
|
||||
- reg: The i2c address. Value depends on the state of ADDR0
|
||||
and ADDR1, as wired in hardware.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpio: A GPIO spec to define which pin is connected to the
|
||||
chip's !RESET pin. If specified, the driver will
|
||||
assert a hardware reset at probe time.
|
||||
- adi,pll-mode-gpios: An array of two GPIO specs to describe the GPIOs
|
||||
the ADAU's PLL config pins are connected to.
|
||||
The state of the pins are set according to the
|
||||
configured clock divider on ASoC side before the
|
||||
firmware is loaded.
|
||||
- adi,pin-config: An array of 12 numerical values selecting one of the
|
||||
pin configurations as described in the datasheet,
|
||||
table 53. Note that the value of this property has
|
||||
to be prefixed with '/bits/ 8'.
|
||||
- avdd-supply: Power supply for AVDD, providing 3.3V
|
||||
- dvdd-supply: Power supply for DVDD, providing 3.3V
|
||||
|
||||
Examples:
|
||||
|
||||
i2c_bus {
|
||||
adau1701@34 {
|
||||
compatible = "adi,adau1701";
|
||||
reg = <0x34>;
|
||||
reset-gpio = <&gpio 23 0>;
|
||||
avdd-supply = <&vdd_3v3_reg>;
|
||||
dvdd-supply = <&vdd_3v3_reg>;
|
||||
adi,pll-mode-gpios = <&gpio 24 0 &gpio 25 0>;
|
||||
adi,pin-config = /bits/ 8 <0x4 0x7 0x5 0x5 0x4 0x4
|
||||
0x4 0x4 0x4 0x4 0x4 0x4>;
|
||||
};
|
||||
};
|
32
bindings/sound/adi,adau17x1.txt
Normal file
32
bindings/sound/adi,adau17x1.txt
Normal file
@@ -0,0 +1,32 @@
|
||||
Analog Devices ADAU1361/ADAU1461/ADAU1761/ADAU1961/ADAU1381/ADAU1781
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: Should contain one of the following:
|
||||
"adi,adau1361"
|
||||
"adi,adau1461"
|
||||
"adi,adau1761"
|
||||
"adi,adau1961"
|
||||
"adi,adau1381"
|
||||
"adi,adau1781"
|
||||
|
||||
- reg: The i2c address. Value depends on the state of ADDR0
|
||||
and ADDR1, as wired in hardware.
|
||||
|
||||
Optional properties:
|
||||
- clock-names: If provided must be "mclk".
|
||||
- clocks: phandle + clock-specifiers for the clock that provides
|
||||
the audio master clock for the device.
|
||||
|
||||
Examples:
|
||||
#include <dt-bindings/sound/adau17x1.h>
|
||||
|
||||
i2c_bus {
|
||||
adau1361@38 {
|
||||
compatible = "adi,adau1761";
|
||||
reg = <0x38>;
|
||||
|
||||
clock-names = "mclk";
|
||||
clocks = <&audio_clock>;
|
||||
};
|
||||
};
|
93
bindings/sound/adi,adau1977.yaml
Normal file
93
bindings/sound/adi,adau1977.yaml
Normal file
@@ -0,0 +1,93 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/adi,adau1977.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices ADAU1977/ADAU1978/ADAU1979 Quad ADC with Diagnostics
|
||||
|
||||
maintainers:
|
||||
- Lars-Peter Clausen <lars@metafoo.de>
|
||||
- Bogdan Togorean <bogdan.togorean@analog.com>
|
||||
|
||||
description: |
|
||||
Analog Devices ADAU1977 and similar quad ADC with Diagnostics
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ADAU1977.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ADAU1978.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ADAU1979.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,adau1977
|
||||
- adi,adau1978
|
||||
- adi,adau1979
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
AVDD-supply:
|
||||
description: Analog power support for the device.
|
||||
|
||||
DVDD-supply:
|
||||
description: Supply voltage for digital core.
|
||||
|
||||
adi,micbias:
|
||||
description: |
|
||||
Configures the voltage setting for the MICBIAS pin.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1, 2, 3, 4, 5, 6, 7, 8]
|
||||
default: 7
|
||||
|
||||
required:
|
||||
- reg
|
||||
- compatible
|
||||
- AVDD-supply
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
adau1977_spi: adau1977@0 {
|
||||
compatible = "adi,adau1977";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <600000>;
|
||||
|
||||
AVDD-supply = <®ulator>;
|
||||
DVDD-supply = <®ulator_digital>;
|
||||
|
||||
reset-gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
|
||||
|
||||
adi,micbias = <3>;
|
||||
};
|
||||
};
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
adau1977_i2c: adau1977@11 {
|
||||
compatible = "adi,adau1977";
|
||||
reg = <0x11>;
|
||||
|
||||
AVDD-supply = <®ulator>;
|
||||
DVDD-supply = <®ulator_digital>;
|
||||
|
||||
reset-gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
19
bindings/sound/adi,adau7002.txt
Normal file
19
bindings/sound/adi,adau7002.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
Analog Devices ADAU7002 Stereo PDM-to-I2S/TDM Converter
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: Must be "adi,adau7002"
|
||||
|
||||
Optional properties:
|
||||
|
||||
- IOVDD-supply: Phandle and specifier for the power supply providing the IOVDD
|
||||
supply as covered in Documentation/devicetree/bindings/regulator/regulator.txt
|
||||
|
||||
If this property is not present it is assumed that the supply pin is
|
||||
hardwired to always on.
|
||||
|
||||
Example:
|
||||
adau7002: pdm-to-i2s {
|
||||
compatible = "adi,adau7002";
|
||||
IOVDD-supply = <&supply>;
|
||||
};
|
85
bindings/sound/adi,adau7118.yaml
Normal file
85
bindings/sound/adi,adau7118.yaml
Normal file
@@ -0,0 +1,85 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/adi,adau7118.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
|
||||
title: Analog Devices ADAU7118 8 Channel PDM to I2S/TDM Converter
|
||||
|
||||
maintainers:
|
||||
- Nuno Sá <nuno.sa@analog.com>
|
||||
|
||||
description: |
|
||||
Analog Devices ADAU7118 8 Channel PDM to I2S/TDM Converter over I2C or HW
|
||||
standalone mode.
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ADAU7118.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,adau7118
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
iovdd-supply:
|
||||
description: Digital Input/Output Power Supply.
|
||||
|
||||
dvdd-supply:
|
||||
description: Internal Core Digital Power Supply.
|
||||
|
||||
adi,decimation-ratio:
|
||||
description: |
|
||||
This property set's the decimation ratio of PDM to PCM audio data.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [64, 32, 16]
|
||||
default: 64
|
||||
|
||||
adi,pdm-clk-map:
|
||||
description: |
|
||||
The ADAU7118 has two PDM clocks for the four Inputs. Each input must be
|
||||
assigned to one of these two clocks. This property set's the mapping
|
||||
between the clocks and the inputs.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
items:
|
||||
maximum: 1
|
||||
default: [0, 0, 1, 1]
|
||||
|
||||
required:
|
||||
- "#sound-dai-cells"
|
||||
- compatible
|
||||
- iovdd-supply
|
||||
- dvdd-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
/* example with i2c support */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
adau7118_codec: audio-codec@14 {
|
||||
compatible = "adi,adau7118";
|
||||
reg = <0x14>;
|
||||
#sound-dai-cells = <0>;
|
||||
iovdd-supply = <&supply>;
|
||||
dvdd-supply = <&supply>;
|
||||
adi,pdm-clk-map = <1 1 0 0>;
|
||||
adi,decimation-ratio = <16>;
|
||||
};
|
||||
};
|
||||
|
||||
/* example with hw standalone mode */
|
||||
adau7118_codec_hw: adau7118-codec-hw {
|
||||
compatible = "adi,adau7118";
|
||||
#sound-dai-cells = <0>;
|
||||
iovdd-supply = <&supply>;
|
||||
dvdd-supply = <&supply>;
|
||||
};
|
34
bindings/sound/adi,axi-i2s.txt
Normal file
34
bindings/sound/adi,axi-i2s.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
ADI AXI-I2S controller
|
||||
|
||||
The core can be generated with transmit (playback), only receive
|
||||
(capture) or both directions enabled.
|
||||
|
||||
Required properties:
|
||||
- compatible : Must be "adi,axi-i2s-1.00.a"
|
||||
- reg : Must contain I2S core's registers location and length
|
||||
- clocks : Pairs of phandle and specifier referencing the controller's clocks.
|
||||
The controller expects two clocks, the clock used for the AXI interface and
|
||||
the clock used as the sampling rate reference clock sample.
|
||||
- clock-names : "axi" for the clock to the AXI interface, "ref" for the sample
|
||||
rate reference clock.
|
||||
- dmas: Pairs of phandle and specifier for the DMA channels that are used by
|
||||
the core. The core expects two dma channels if both transmit and receive are
|
||||
enabled, one channel otherwise.
|
||||
- dma-names : "tx" for the transmit channel, "rx" for the receive channel.
|
||||
|
||||
For more details on the 'dma', 'dma-names', 'clock' and 'clock-names' properties
|
||||
please check:
|
||||
* resource-names.txt
|
||||
* clock/clock-bindings.txt
|
||||
* dma/dma.txt
|
||||
|
||||
Example:
|
||||
|
||||
i2s: i2s@77600000 {
|
||||
compatible = "adi,axi-i2s-1.00.a";
|
||||
reg = <0x77600000 0x1000>;
|
||||
clocks = <&clk 15>, <&audio_clock>;
|
||||
clock-names = "axi", "ref";
|
||||
dmas = <&ps7_dma 0>, <&ps7_dma 1>;
|
||||
dma-names = "tx", "rx";
|
||||
};
|
30
bindings/sound/adi,axi-spdif-tx.txt
Normal file
30
bindings/sound/adi,axi-spdif-tx.txt
Normal file
@@ -0,0 +1,30 @@
|
||||
ADI AXI-SPDIF controller
|
||||
|
||||
Required properties:
|
||||
- compatible : Must be "adi,axi-spdif-tx-1.00.a"
|
||||
- reg : Must contain SPDIF core's registers location and length
|
||||
- clocks : Pairs of phandle and specifier referencing the controller's clocks.
|
||||
The controller expects two clocks, the clock used for the AXI interface and
|
||||
the clock used as the sampling rate reference clock sample.
|
||||
- clock-names: "axi" for the clock to the AXI interface, "ref" for the sample
|
||||
rate reference clock.
|
||||
- dmas: Pairs of phandle and specifier for the DMA channel that is used by
|
||||
the core. The core expects one dma channel for transmit.
|
||||
- dma-names : Must be "tx"
|
||||
|
||||
For more details on the 'dma', 'dma-names', 'clock' and 'clock-names' properties
|
||||
please check:
|
||||
* resource-names.txt
|
||||
* clock/clock-bindings.txt
|
||||
* dma/dma.txt
|
||||
|
||||
Example:
|
||||
|
||||
spdif: spdif@77400000 {
|
||||
compatible = "adi,axi-spdif-tx-1.00.a";
|
||||
reg = <0x77600000 0x1000>;
|
||||
clocks = <&clk 15>, <&audio_clock>;
|
||||
clock-names = "axi", "ref";
|
||||
dmas = <&ps7_dma 0>;
|
||||
dma-names = "tx";
|
||||
};
|
141
bindings/sound/adi,max98396.yaml
Normal file
141
bindings/sound/adi,max98396.yaml
Normal file
@@ -0,0 +1,141 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/adi,max98396.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices MAX98396 Speaker Amplifier
|
||||
|
||||
maintainers:
|
||||
- Ryan Lee <ryans.lee@analog.com>
|
||||
|
||||
description:
|
||||
The MAX98396 is a mono Class-DG speaker amplifier with I/V sense.
|
||||
The device provides a PCM interface for audio data and a standard
|
||||
I2C interface for control data communication.
|
||||
The MAX98397 is a variant of MAX98396 with wide input supply range.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,max98396
|
||||
- adi,max98397
|
||||
reg:
|
||||
maxItems: 1
|
||||
description: I2C address of the device.
|
||||
|
||||
avdd-supply:
|
||||
description: A 1.8V supply that powers up the AVDD pin.
|
||||
|
||||
dvdd-supply:
|
||||
description: A 1.2V supply that powers up the DVDD pin.
|
||||
|
||||
dvddio-supply:
|
||||
description: A 1.2V or 1.8V supply that powers up the VDDIO pin.
|
||||
|
||||
pvdd-supply:
|
||||
description: A 3.0V to 20V supply that powers up the PVDD pin.
|
||||
|
||||
vbat-supply:
|
||||
description: A 3.3V to 5.5V supply that powers up the VBAT pin.
|
||||
|
||||
adi,vmon-slot-no:
|
||||
description: slot number of the voltage sense monitor
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0
|
||||
maximum: 15
|
||||
default: 0
|
||||
|
||||
adi,imon-slot-no:
|
||||
description: slot number of the current sense monitor
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0
|
||||
maximum: 15
|
||||
default: 1
|
||||
|
||||
adi,spkfb-slot-no:
|
||||
description: slot number of speaker DSP monitor
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0
|
||||
maximum: 15
|
||||
default: 2
|
||||
|
||||
adi,bypass-slot-no:
|
||||
description:
|
||||
Selects the PCM data input channel that is routed to the speaker
|
||||
audio processing bypass path.
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0
|
||||
maximum: 15
|
||||
default: 0
|
||||
|
||||
adi,interleave-mode:
|
||||
description:
|
||||
For cases where a single combined channel for the I/V sense data
|
||||
is not sufficient, the device can also be configured to share
|
||||
a single data output channel on alternating frames.
|
||||
In this configuration, the current and voltage data will be frame
|
||||
interleaved on a single output channel.
|
||||
type: boolean
|
||||
|
||||
adi,dmon-stuck-enable:
|
||||
description:
|
||||
Enables the "data monitor stuck" feature. Once the data monitor is
|
||||
enabled, it actively monitors the selected input data (from DIN) to the
|
||||
speaker amplifier. Once a data error is detected, the data monitor
|
||||
automatically places the device into software shutdown.
|
||||
type: boolean
|
||||
|
||||
adi,dmon-stuck-threshold-bits:
|
||||
description:
|
||||
Sets the threshold for the "data monitor stuck" feature, in bits.
|
||||
enum: [9, 11, 13, 15]
|
||||
default: 15
|
||||
|
||||
adi,dmon-magnitude-enable:
|
||||
description:
|
||||
Enables the "data monitor magnitude" feature. Once the data monitor is
|
||||
enabled, it actively monitors the selected input data (from DIN) to the
|
||||
speaker amplifier. Once a data error is detected, the data monitor
|
||||
automatically places the device into software shutdown.
|
||||
type: boolean
|
||||
|
||||
adi,dmon-magnitude-threshold-bits:
|
||||
description:
|
||||
Sets the threshold for the "data monitor magnitude" feature, in bits.
|
||||
enum: [2, 3, 4, 5]
|
||||
default: 5
|
||||
|
||||
adi,dmon-duration-ms:
|
||||
description:
|
||||
Sets the duration for the "data monitor" feature, in milliseconds.
|
||||
enum: [64, 256, 1024, 4096]
|
||||
default: 64
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
max98396: amplifier@39 {
|
||||
compatible = "adi,max98396";
|
||||
reg = <0x39>;
|
||||
dvdd-supply = <®ulator_1v2>;
|
||||
dvddio-supply = <®ulator_1v8>;
|
||||
avdd-supply = <®ulator_1v8>;
|
||||
pvdd-supply = <®ulator_pvdd>;
|
||||
adi,vmon-slot-no = <0>;
|
||||
adi,imon-slot-no = <1>;
|
||||
reset-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
14
bindings/sound/adi,ssm2305.txt
Normal file
14
bindings/sound/adi,ssm2305.txt
Normal file
@@ -0,0 +1,14 @@
|
||||
Analog Devices SSM2305 Speaker Amplifier
|
||||
========================================
|
||||
|
||||
Required properties:
|
||||
- compatible : "adi,ssm2305"
|
||||
- shutdown-gpios : The gpio connected to the shutdown pin.
|
||||
The gpio signal is ACTIVE_LOW.
|
||||
|
||||
Example:
|
||||
|
||||
ssm2305: analog-amplifier {
|
||||
compatible = "adi,ssm2305";
|
||||
shutdown-gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
|
||||
};
|
19
bindings/sound/adi,ssm2602.txt
Normal file
19
bindings/sound/adi,ssm2602.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
Analog Devices SSM2602, SSM2603 and SSM2604 I2S audio CODEC devices
|
||||
|
||||
SSM2602 support both I2C and SPI as the configuration interface,
|
||||
the selection is made by the MODE strap-in pin.
|
||||
SSM2603 and SSM2604 only support I2C as the configuration interface.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : One of "adi,ssm2602", "adi,ssm2603" or "adi,ssm2604"
|
||||
|
||||
- reg : the I2C address of the device for I2C, the chip select
|
||||
number for SPI.
|
||||
|
||||
Example:
|
||||
|
||||
ssm2602: ssm2602@1a {
|
||||
compatible = "adi,ssm2602";
|
||||
reg = <0x1a>;
|
||||
};
|
25
bindings/sound/ak4104.txt
Normal file
25
bindings/sound/ak4104.txt
Normal file
@@ -0,0 +1,25 @@
|
||||
AK4104 S/PDIF transmitter
|
||||
|
||||
This device supports SPI mode only.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "asahi-kasei,ak4104"
|
||||
|
||||
- reg : The chip select number on the SPI bus
|
||||
|
||||
- vdd-supply : A regulator node, providing 2.7V - 3.6V
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpios : a GPIO spec for the reset pin. If specified, it will be
|
||||
deasserted before communication to the device starts.
|
||||
|
||||
Example:
|
||||
|
||||
spdif: ak4104@0 {
|
||||
compatible = "asahi-kasei,ak4104";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <5000000>;
|
||||
vdd-supply = <&vdd_3v3_reg>;
|
||||
};
|
22
bindings/sound/ak4118.txt
Normal file
22
bindings/sound/ak4118.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
AK4118 S/PDIF transceiver
|
||||
|
||||
This device supports I2C mode.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "asahi-kasei,ak4118"
|
||||
- reg : The I2C address of the device for I2C
|
||||
- reset-gpios: A GPIO specifier for the reset pin
|
||||
- irq-gpios: A GPIO specifier for the IRQ pin
|
||||
|
||||
Example:
|
||||
|
||||
&i2c {
|
||||
ak4118: ak4118@13 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "asahi-kasei,ak4118";
|
||||
reg = <0x13>;
|
||||
reset-gpios = <&gpio 0 GPIO_ACTIVE_LOW>
|
||||
irq-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
57
bindings/sound/ak4375.yaml
Normal file
57
bindings/sound/ak4375.yaml
Normal file
@@ -0,0 +1,57 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/ak4375.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: AK4375 DAC and headphones amplifier
|
||||
|
||||
maintainers:
|
||||
- Vincent Knecht <vincent.knecht@mailoo.org>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: asahi-kasei,ak4375
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
'#sound-dai-cells':
|
||||
const: 0
|
||||
|
||||
avdd-supply:
|
||||
description: regulator phandle for the AVDD power supply.
|
||||
|
||||
tvdd-supply:
|
||||
description: regulator phandle for the TVDD power supply.
|
||||
|
||||
pdn-gpios:
|
||||
description: optional GPIO to set the PDN pin.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- '#sound-dai-cells'
|
||||
- avdd-supply
|
||||
- tvdd-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
headphones: audio-codec@10 {
|
||||
compatible = "asahi-kasei,ak4375";
|
||||
reg = <0x10>;
|
||||
avdd-supply = <®_headphones_avdd>;
|
||||
tvdd-supply = <&pm8916_l6>;
|
||||
pdn-gpios = <&msmgpio 114 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&headphones_pdn_default>;
|
||||
#sound-dai-cells = <0>;
|
||||
};
|
||||
};
|
28
bindings/sound/ak4458.txt
Normal file
28
bindings/sound/ak4458.txt
Normal file
@@ -0,0 +1,28 @@
|
||||
AK4458 audio DAC
|
||||
|
||||
This device supports I2C mode.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "asahi-kasei,ak4458" or "asahi-kasei,ak4497"
|
||||
- reg : The I2C address of the device for I2C
|
||||
|
||||
Optional properties:
|
||||
- reset-gpios: A GPIO specifier for the power down & reset pin
|
||||
- mute-gpios: A GPIO specifier for the soft mute pin
|
||||
- AVDD-supply: Analog power supply
|
||||
- DVDD-supply: Digital power supply
|
||||
- dsd-path: Select DSD input pins for ak4497
|
||||
0: select #16, #17, #19 pins
|
||||
1: select #3, #4, #5 pins
|
||||
|
||||
Example:
|
||||
|
||||
&i2c {
|
||||
ak4458: dac@10 {
|
||||
compatible = "asahi-kasei,ak4458";
|
||||
reg = <0x10>;
|
||||
reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>
|
||||
mute-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>
|
||||
};
|
||||
};
|
11
bindings/sound/ak4554.txt
Normal file
11
bindings/sound/ak4554.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
AK4554 ADC/DAC
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "asahi-kasei,ak4554"
|
||||
|
||||
Example:
|
||||
|
||||
ak4554-adc-dac {
|
||||
compatible = "asahi-kasei,ak4554";
|
||||
};
|
49
bindings/sound/ak4613.yaml
Normal file
49
bindings/sound/ak4613.yaml
Normal file
@@ -0,0 +1,49 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/ak4613.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: AK4613 I2C transmitter
|
||||
|
||||
maintainers:
|
||||
- Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: asahi-kasei,ak4613
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
patternProperties:
|
||||
"^asahi-kasei,in[1-2]-single-end$":
|
||||
description: Input Pin 1 - 2.
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
|
||||
"^asahi-kasei,out[1-6]-single-end$":
|
||||
description: Output Pin 1 - 6.
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
ak4613: codec@10 {
|
||||
compatible = "asahi-kasei,ak4613";
|
||||
reg = <0x10>;
|
||||
};
|
||||
};
|
56
bindings/sound/ak4642.yaml
Normal file
56
bindings/sound/ak4642.yaml
Normal file
@@ -0,0 +1,56 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/ak4642.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: AK4642 I2C transmitter
|
||||
|
||||
maintainers:
|
||||
- Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- asahi-kasei,ak4642
|
||||
- asahi-kasei,ak4643
|
||||
- asahi-kasei,ak4648
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#clock-cells":
|
||||
const: 0
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-frequency:
|
||||
description: common clock binding; frequency of MCKO
|
||||
|
||||
clock-output-names:
|
||||
description: common clock name
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
ak4643: codec@12 {
|
||||
compatible = "asahi-kasei,ak4643";
|
||||
#sound-dai-cells = <0>;
|
||||
reg = <0x12>;
|
||||
#clock-cells = <0>;
|
||||
clocks = <&audio_clock>;
|
||||
clock-frequency = <12288000>;
|
||||
clock-output-names = "ak4643_mcko";
|
||||
};
|
||||
};
|
23
bindings/sound/ak5386.txt
Normal file
23
bindings/sound/ak5386.txt
Normal file
@@ -0,0 +1,23 @@
|
||||
AK5386 Single-ended 24-Bit 192kHz delta-sigma ADC
|
||||
|
||||
This device has no control interface.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "asahi-kasei,ak5386"
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpio : a GPIO spec for the reset/power down pin.
|
||||
If specified, it will be deasserted at probe time.
|
||||
- va-supply : a regulator spec, providing 5.0V
|
||||
- vd-supply : a regulator spec, providing 3.3V
|
||||
|
||||
Example:
|
||||
|
||||
spdif: ak5386@0 {
|
||||
compatible = "asahi-kasei,ak5386";
|
||||
reset-gpio = <&gpio0 23>;
|
||||
va-supply = <&vdd_5v0_reg>;
|
||||
vd-supply = <&vdd_3v3_reg>;
|
||||
};
|
24
bindings/sound/ak5558.txt
Normal file
24
bindings/sound/ak5558.txt
Normal file
@@ -0,0 +1,24 @@
|
||||
AK5558 8 channel differential 32-bit delta-sigma ADC
|
||||
|
||||
This device supports I2C mode only.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "asahi-kasei,ak5558" or "asahi-kasei,ak5552".
|
||||
- reg : The I2C address of the device.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpios: A GPIO specifier for the power down & reset pin.
|
||||
- AVDD-supply: Analog power supply
|
||||
- DVDD-supply: Digital power supply
|
||||
|
||||
Example:
|
||||
|
||||
&i2c {
|
||||
ak5558: adc@10 {
|
||||
compatible = "asahi-kasei,ak5558";
|
||||
reg = <0x10>;
|
||||
reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
25
bindings/sound/alc5623.txt
Normal file
25
bindings/sound/alc5623.txt
Normal file
@@ -0,0 +1,25 @@
|
||||
ALC5621/ALC5622/ALC5623 audio Codec
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: "realtek,alc5623"
|
||||
- reg: the I2C address of the device.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- add-ctrl: Default register value for Reg-40h, Additional Control
|
||||
Register. If absent or has the value of 0, the
|
||||
register is untouched.
|
||||
|
||||
- jack-det-ctrl: Default register value for Reg-5Ah, Jack Detect
|
||||
Control Register. If absent or has value 0, the
|
||||
register is untouched.
|
||||
|
||||
Example:
|
||||
|
||||
alc5621: alc5621@1a {
|
||||
compatible = "alc5621";
|
||||
reg = <0x1a>;
|
||||
add-ctrl = <0x3700>;
|
||||
jack-det-ctrl = <0x4810>;
|
||||
};
|
43
bindings/sound/alc5632.txt
Normal file
43
bindings/sound/alc5632.txt
Normal file
@@ -0,0 +1,43 @@
|
||||
ALC5632 audio CODEC
|
||||
|
||||
This device supports I2C only.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "realtek,alc5632"
|
||||
|
||||
- reg : the I2C address of the device.
|
||||
|
||||
- gpio-controller : Indicates this device is a GPIO controller.
|
||||
|
||||
- #gpio-cells : Should be two. The first cell is the pin number and the
|
||||
second cell is used to specify optional parameters (currently unused).
|
||||
|
||||
Pins on the device (for linking into audio routes):
|
||||
|
||||
* SPK_OUTP
|
||||
* SPK_OUTN
|
||||
* HP_OUT_L
|
||||
* HP_OUT_R
|
||||
* AUX_OUT_P
|
||||
* AUX_OUT_N
|
||||
* LINE_IN_L
|
||||
* LINE_IN_R
|
||||
* PHONE_P
|
||||
* PHONE_N
|
||||
* MIC1_P
|
||||
* MIC1_N
|
||||
* MIC2_P
|
||||
* MIC2_N
|
||||
* MICBIAS1
|
||||
* DMICDAT
|
||||
|
||||
Example:
|
||||
|
||||
alc5632: alc5632@1e {
|
||||
compatible = "realtek,alc5632";
|
||||
reg = <0x1a>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
267
bindings/sound/allwinner,sun4i-a10-codec.yaml
Normal file
267
bindings/sound/allwinner,sun4i-a10-codec.yaml
Normal file
@@ -0,0 +1,267 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-codec.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A10 Codec
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
compatible:
|
||||
enum:
|
||||
- allwinner,sun4i-a10-codec
|
||||
- allwinner,sun6i-a31-codec
|
||||
- allwinner,sun7i-a20-codec
|
||||
- allwinner,sun8i-a23-codec
|
||||
- allwinner,sun8i-h3-codec
|
||||
- allwinner,sun8i-v3s-codec
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Bus Clock
|
||||
- description: Module Clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: apb
|
||||
- const: codec
|
||||
|
||||
dmas:
|
||||
items:
|
||||
- description: RX DMA Channel
|
||||
- description: TX DMA Channel
|
||||
|
||||
dma-names:
|
||||
items:
|
||||
- const: rx
|
||||
- const: tx
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
allwinner,audio-routing:
|
||||
description: |-
|
||||
A list of the connections between audio components. Each entry
|
||||
is a pair of strings, the first being the connection's sink, the
|
||||
second being the connection's source.
|
||||
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
|
||||
minItems: 2
|
||||
maxItems: 18
|
||||
items:
|
||||
enum:
|
||||
# Audio Pins on the SoC
|
||||
- HP
|
||||
- HPCOM
|
||||
- LINEIN
|
||||
- LINEOUT
|
||||
- MIC1
|
||||
- MIC2
|
||||
- MIC3
|
||||
|
||||
# Microphone Biases from the SoC
|
||||
- HBIAS
|
||||
- MBIAS
|
||||
|
||||
# Board Connectors
|
||||
- Headphone
|
||||
- Headset Mic
|
||||
- Line In
|
||||
- Line Out
|
||||
- Mic
|
||||
- Speaker
|
||||
|
||||
allwinner,codec-analog-controls:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: Phandle to the codec analog controls in the PRCM
|
||||
|
||||
allwinner,pa-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO to enable the external amplifier
|
||||
|
||||
required:
|
||||
- "#sound-dai-cells"
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
- dmas
|
||||
- dma-names
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- allwinner,sun6i-a31-codec
|
||||
- allwinner,sun8i-a23-codec
|
||||
- allwinner,sun8i-h3-codec
|
||||
- allwinner,sun8i-v3s-codec
|
||||
|
||||
then:
|
||||
if:
|
||||
properties:
|
||||
compatible:
|
||||
const: allwinner,sun6i-a31-codec
|
||||
|
||||
then:
|
||||
required:
|
||||
- resets
|
||||
- allwinner,audio-routing
|
||||
|
||||
else:
|
||||
required:
|
||||
- resets
|
||||
- allwinner,audio-routing
|
||||
- allwinner,codec-analog-controls
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- allwinner,sun6i-a31-codec
|
||||
|
||||
then:
|
||||
properties:
|
||||
allwinner,audio-routing:
|
||||
items:
|
||||
enum:
|
||||
- HP
|
||||
- HPCOM
|
||||
- LINEIN
|
||||
- LINEOUT
|
||||
- MIC1
|
||||
- MIC2
|
||||
- MIC3
|
||||
- HBIAS
|
||||
- MBIAS
|
||||
- Headphone
|
||||
- Headset Mic
|
||||
- Line In
|
||||
- Line Out
|
||||
- Mic
|
||||
- Speaker
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- allwinner,sun8i-a23-codec
|
||||
|
||||
then:
|
||||
properties:
|
||||
allwinner,audio-routing:
|
||||
items:
|
||||
enum:
|
||||
- HP
|
||||
- HPCOM
|
||||
- LINEIN
|
||||
- MIC1
|
||||
- MIC2
|
||||
- HBIAS
|
||||
- MBIAS
|
||||
- Headphone
|
||||
- Headset Mic
|
||||
- Line In
|
||||
- Line Out
|
||||
- Mic
|
||||
- Speaker
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- allwinner,sun8i-h3-codec
|
||||
|
||||
then:
|
||||
properties:
|
||||
allwinner,audio-routing:
|
||||
items:
|
||||
enum:
|
||||
- HP
|
||||
- HPCOM
|
||||
- LINEIN
|
||||
- LINEOUT
|
||||
- MIC1
|
||||
- MIC2
|
||||
- HBIAS
|
||||
- MBIAS
|
||||
- Headphone
|
||||
- Headset Mic
|
||||
- Line In
|
||||
- Line Out
|
||||
- Mic
|
||||
- Speaker
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- allwinner,sun8i-v3s-codec
|
||||
|
||||
then:
|
||||
properties:
|
||||
allwinner,audio-routing:
|
||||
items:
|
||||
enum:
|
||||
- HP
|
||||
- HPCOM
|
||||
- MIC1
|
||||
- HBIAS
|
||||
- Headphone
|
||||
- Headset Mic
|
||||
- Line In
|
||||
- Line Out
|
||||
- Mic
|
||||
- Speaker
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
codec@1c22c00 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "allwinner,sun7i-a20-codec";
|
||||
reg = <0x01c22c00 0x40>;
|
||||
interrupts = <0 30 4>;
|
||||
clocks = <&apb0_gates 0>, <&codec_clk>;
|
||||
clock-names = "apb", "codec";
|
||||
dmas = <&dma 0 19>, <&dma 0 19>;
|
||||
dma-names = "rx", "tx";
|
||||
};
|
||||
|
||||
- |
|
||||
codec@1c22c00 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "allwinner,sun6i-a31-codec";
|
||||
reg = <0x01c22c00 0x98>;
|
||||
interrupts = <0 29 4>;
|
||||
clocks = <&ccu 61>, <&ccu 135>;
|
||||
clock-names = "apb", "codec";
|
||||
resets = <&ccu 42>;
|
||||
dmas = <&dma 15>, <&dma 15>;
|
||||
dma-names = "rx", "tx";
|
||||
allwinner,audio-routing =
|
||||
"Headphone", "HP",
|
||||
"Speaker", "LINEOUT",
|
||||
"LINEIN", "Line In",
|
||||
"MIC1", "MBIAS",
|
||||
"MIC1", "Mic",
|
||||
"MIC2", "HBIAS",
|
||||
"MIC2", "Headset Mic";
|
||||
};
|
||||
|
||||
...
|
146
bindings/sound/allwinner,sun4i-a10-i2s.yaml
Normal file
146
bindings/sound/allwinner,sun4i-a10-i2s.yaml
Normal file
@@ -0,0 +1,146 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-i2s.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A10 I2S Controller
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: allwinner,sun4i-a10-i2s
|
||||
- const: allwinner,sun6i-a31-i2s
|
||||
- const: allwinner,sun8i-a83t-i2s
|
||||
- const: allwinner,sun8i-h3-i2s
|
||||
- items:
|
||||
- const: allwinner,sun8i-r40-i2s
|
||||
- const: allwinner,sun8i-h3-i2s
|
||||
- items:
|
||||
- const: allwinner,sun8i-v3-i2s
|
||||
- const: allwinner,sun8i-h3-i2s
|
||||
- const: allwinner,sun50i-a64-codec-i2s
|
||||
- items:
|
||||
- const: allwinner,sun50i-a64-i2s
|
||||
- const: allwinner,sun8i-h3-i2s
|
||||
- const: allwinner,sun50i-h6-i2s
|
||||
- const: allwinner,sun50i-r329-i2s
|
||||
- items:
|
||||
- const: allwinner,sun20i-d1-i2s
|
||||
- const: allwinner,sun50i-r329-i2s
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Bus Clock
|
||||
- description: Module Clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: apb
|
||||
- const: mod
|
||||
|
||||
# Even though it only applies to subschemas under the conditionals,
|
||||
# not listing them here will trigger a warning because of the
|
||||
# additionalsProperties set to false.
|
||||
dmas: true
|
||||
dma-names: true
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- allwinner,sun6i-a31-i2s
|
||||
- allwinner,sun8i-a83t-i2s
|
||||
- allwinner,sun8i-h3-i2s
|
||||
- allwinner,sun50i-a64-codec-i2s
|
||||
- allwinner,sun50i-h6-i2s
|
||||
- allwinner,sun50i-r329-i2s
|
||||
|
||||
then:
|
||||
required:
|
||||
- resets
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- allwinner,sun8i-a83t-i2s
|
||||
- allwinner,sun8i-h3-i2s
|
||||
|
||||
then:
|
||||
properties:
|
||||
dmas:
|
||||
minItems: 1
|
||||
items:
|
||||
- description: RX DMA Channel
|
||||
- description: TX DMA Channel
|
||||
description:
|
||||
Some controllers cannot receive but can only transmit
|
||||
data. In such a case, the RX DMA channel is to be omitted.
|
||||
|
||||
dma-names:
|
||||
oneOf:
|
||||
- items:
|
||||
- const: rx
|
||||
- const: tx
|
||||
- const: tx
|
||||
description:
|
||||
Some controllers cannot receive but can only transmit
|
||||
data. In such a case, the RX name is to be omitted.
|
||||
|
||||
else:
|
||||
properties:
|
||||
dmas:
|
||||
items:
|
||||
- description: RX DMA Channel
|
||||
- description: TX DMA Channel
|
||||
|
||||
dma-names:
|
||||
items:
|
||||
- const: rx
|
||||
- const: tx
|
||||
|
||||
required:
|
||||
- "#sound-dai-cells"
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
- dmas
|
||||
- dma-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2s0: i2s@1c22400 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "allwinner,sun4i-a10-i2s";
|
||||
reg = <0x01c22400 0x400>;
|
||||
interrupts = <0 16 4>;
|
||||
clocks = <&apb0_gates 3>, <&i2s0_clk>;
|
||||
clock-names = "apb", "mod";
|
||||
dmas = <&dma 0 3>, <&dma 0 3>;
|
||||
dma-names = "rx", "tx";
|
||||
};
|
||||
|
||||
...
|
122
bindings/sound/allwinner,sun4i-a10-spdif.yaml
Normal file
122
bindings/sound/allwinner,sun4i-a10-spdif.yaml
Normal file
@@ -0,0 +1,122 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-spdif.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A10 S/PDIF Controller
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Liam Girdwood <lgirdwood@gmail.com>
|
||||
- Mark Brown <broonie@kernel.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: allwinner,sun4i-a10-spdif
|
||||
- const: allwinner,sun6i-a31-spdif
|
||||
- const: allwinner,sun8i-h3-spdif
|
||||
- const: allwinner,sun50i-h6-spdif
|
||||
- items:
|
||||
- const: allwinner,sun8i-a83t-spdif
|
||||
- const: allwinner,sun8i-h3-spdif
|
||||
- items:
|
||||
- const: allwinner,sun50i-a64-spdif
|
||||
- const: allwinner,sun8i-h3-spdif
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Bus Clock
|
||||
- description: Module Clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: apb
|
||||
- const: spdif
|
||||
|
||||
# Even though it only applies to subschemas under the conditionals,
|
||||
# not listing them here will trigger a warning because of the
|
||||
# additionalsProperties set to false.
|
||||
dmas: true
|
||||
dma-names: true
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- allwinner,sun6i-a31-spdif
|
||||
- allwinner,sun8i-h3-spdif
|
||||
|
||||
then:
|
||||
required:
|
||||
- resets
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- allwinner,sun8i-h3-spdif
|
||||
- allwinner,sun50i-h6-spdif
|
||||
|
||||
then:
|
||||
properties:
|
||||
dmas:
|
||||
description: TX DMA Channel
|
||||
|
||||
dma-names:
|
||||
const: tx
|
||||
|
||||
else:
|
||||
properties:
|
||||
dmas:
|
||||
items:
|
||||
- description: RX DMA Channel
|
||||
- description: TX DMA Channel
|
||||
|
||||
dma-names:
|
||||
items:
|
||||
- const: rx
|
||||
- const: tx
|
||||
|
||||
required:
|
||||
- "#sound-dai-cells"
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
- dmas
|
||||
- dma-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
spdif: spdif@1c21000 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "allwinner,sun4i-a10-spdif";
|
||||
reg = <0x01c21000 0x40>;
|
||||
interrupts = <13>;
|
||||
clocks = <&apb0_gates 1>, <&spdif_clk>;
|
||||
clock-names = "apb", "spdif";
|
||||
dmas = <&dma 0 2>, <&dma 0 2>;
|
||||
dma-names = "rx", "tx";
|
||||
};
|
||||
|
||||
...
|
44
bindings/sound/allwinner,sun50i-a64-codec-analog.yaml
Normal file
44
bindings/sound/allwinner,sun50i-a64-codec-analog.yaml
Normal file
@@ -0,0 +1,44 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/allwinner,sun50i-a64-codec-analog.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A64 Analog Codec
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: allwinner,sun50i-a64-codec-analog
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
cpvdd-supply:
|
||||
description:
|
||||
Regulator for the headphone amplifier
|
||||
|
||||
allwinner,internal-bias-resistor:
|
||||
description:
|
||||
Enable the internal 2.2K bias resistor between HBIAS and MICDET pins
|
||||
type: boolean
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- cpvdd-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
codec_analog: codec-analog@1f015c0 {
|
||||
compatible = "allwinner,sun50i-a64-codec-analog";
|
||||
reg = <0x01f015c0 0x4>;
|
||||
cpvdd-supply = <®_eldo1>;
|
||||
};
|
||||
|
||||
...
|
79
bindings/sound/allwinner,sun50i-h6-dmic.yaml
Normal file
79
bindings/sound/allwinner,sun50i-h6-dmic.yaml
Normal file
@@ -0,0 +1,79 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/allwinner,sun50i-h6-dmic.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner H6 DMIC
|
||||
|
||||
maintainers:
|
||||
- Ban Tao <fengzheng923@gmail.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: allwinner,sun50i-h6-dmic
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Bus Clock
|
||||
- description: Module Clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: bus
|
||||
- const: mod
|
||||
|
||||
dmas:
|
||||
items:
|
||||
- description: RX DMA Channel
|
||||
|
||||
dma-names:
|
||||
items:
|
||||
- const: rx
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- "#sound-dai-cells"
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
- dmas
|
||||
- dma-names
|
||||
- resets
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
#include <dt-bindings/clock/sun50i-h6-ccu.h>
|
||||
#include <dt-bindings/reset/sun50i-h6-ccu.h>
|
||||
|
||||
dmic: dmic@5095000 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "allwinner,sun50i-h6-dmic";
|
||||
reg = <0x05095000 0x400>;
|
||||
interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_DMIC>, <&ccu CLK_DMIC>;
|
||||
clock-names = "bus", "mod";
|
||||
dmas = <&dma 7>;
|
||||
dma-names = "rx";
|
||||
resets = <&ccu RST_BUS_DMIC>;
|
||||
};
|
||||
|
||||
...
|
41
bindings/sound/allwinner,sun8i-a23-codec-analog.yaml
Normal file
41
bindings/sound/allwinner,sun8i-a23-codec-analog.yaml
Normal file
@@ -0,0 +1,41 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/allwinner,sun8i-a23-codec-analog.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A23 Analog Codec
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
# FIXME: This is documented in the PRCM binding, but needs to be
|
||||
# migrated here at some point
|
||||
# - allwinner,sun8i-a23-codec-analog
|
||||
- const: allwinner,sun8i-h3-codec-analog
|
||||
- items:
|
||||
- const: allwinner,sun8i-v3-codec-analog
|
||||
- const: allwinner,sun8i-h3-codec-analog
|
||||
- const: allwinner,sun8i-v3s-codec-analog
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
codec_analog: codec-analog@1f015c0 {
|
||||
compatible = "allwinner,sun8i-h3-codec-analog";
|
||||
reg = <0x01f015c0 0x4>;
|
||||
};
|
||||
|
||||
...
|
65
bindings/sound/allwinner,sun8i-a33-codec.yaml
Normal file
65
bindings/sound/allwinner,sun8i-a33-codec.yaml
Normal file
@@ -0,0 +1,65 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/allwinner,sun8i-a33-codec.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner A33 Codec
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
- Maxime Ripard <mripard@kernel.org>
|
||||
|
||||
properties:
|
||||
"#sound-dai-cells":
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
description:
|
||||
A value of 0 is deprecated. When used, it only allows access to
|
||||
the ADC/DAC and AIF1 (the CPU DAI), not the other two AIFs/DAIs.
|
||||
|
||||
compatible:
|
||||
oneOf:
|
||||
- items:
|
||||
- const: allwinner,sun50i-a64-codec
|
||||
- const: allwinner,sun8i-a33-codec
|
||||
- const: allwinner,sun8i-a33-codec
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Bus Clock
|
||||
- description: Module Clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: bus
|
||||
- const: mod
|
||||
|
||||
required:
|
||||
- "#sound-dai-cells"
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
audio-codec@1c22e00 {
|
||||
#sound-dai-cells = <1>;
|
||||
compatible = "allwinner,sun8i-a33-codec";
|
||||
reg = <0x01c22e00 0x400>;
|
||||
interrupts = <0 29 4>;
|
||||
clocks = <&ccu 47>, <&ccu 92>;
|
||||
clock-names = "bus", "mod";
|
||||
};
|
||||
|
||||
...
|
118
bindings/sound/amlogic,aiu.yaml
Normal file
118
bindings/sound/amlogic,aiu.yaml
Normal file
@@ -0,0 +1,118 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/amlogic,aiu.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Amlogic AIU audio output controller
|
||||
|
||||
maintainers:
|
||||
- Jerome Brunet <jbrunet@baylibre.com>
|
||||
|
||||
allOf:
|
||||
- $ref: name-prefix.yaml#
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "^audio-controller@.*"
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 2
|
||||
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- amlogic,aiu-gxbb
|
||||
- amlogic,aiu-gxl
|
||||
- amlogic,aiu-meson8
|
||||
- amlogic,aiu-meson8b
|
||||
- const: amlogic,aiu
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: AIU peripheral clock
|
||||
- description: I2S peripheral clock
|
||||
- description: I2S output clock
|
||||
- description: I2S master clock
|
||||
- description: I2S mixer clock
|
||||
- description: SPDIF peripheral clock
|
||||
- description: SPDIF output clock
|
||||
- description: SPDIF master clock
|
||||
- description: SPDIF master clock multiplexer
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: pclk
|
||||
- const: i2s_pclk
|
||||
- const: i2s_aoclk
|
||||
- const: i2s_mclk
|
||||
- const: i2s_mixer
|
||||
- const: spdif_pclk
|
||||
- const: spdif_aoclk
|
||||
- const: spdif_mclk
|
||||
- const: spdif_mclk_sel
|
||||
|
||||
interrupts:
|
||||
items:
|
||||
- description: I2S interrupt line
|
||||
- description: SPDIF interrupt line
|
||||
|
||||
interrupt-names:
|
||||
items:
|
||||
- const: i2s
|
||||
- const: spdif
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
sound-name-prefix: true
|
||||
|
||||
required:
|
||||
- "#sound-dai-cells"
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-names
|
||||
- interrupts
|
||||
- interrupt-names
|
||||
- reg
|
||||
- resets
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/gxbb-clkc.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/reset/amlogic,meson-gxbb-reset.h>
|
||||
|
||||
aiu: audio-controller@5400 {
|
||||
compatible = "amlogic,aiu-gxl", "amlogic,aiu";
|
||||
#sound-dai-cells = <2>;
|
||||
reg = <0x5400 0x2ac>;
|
||||
interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>,
|
||||
<GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "i2s", "spdif";
|
||||
clocks = <&clkc CLKID_AIU_GLUE>,
|
||||
<&clkc CLKID_I2S_OUT>,
|
||||
<&clkc CLKID_AOCLK_GATE>,
|
||||
<&clkc CLKID_CTS_AMCLK>,
|
||||
<&clkc CLKID_MIXER_IFACE>,
|
||||
<&clkc CLKID_IEC958>,
|
||||
<&clkc CLKID_IEC958_GATE>,
|
||||
<&clkc CLKID_CTS_MCLK_I958>,
|
||||
<&clkc CLKID_CTS_I958>;
|
||||
clock-names = "pclk",
|
||||
"i2s_pclk",
|
||||
"i2s_aoclk",
|
||||
"i2s_mclk",
|
||||
"i2s_mixer",
|
||||
"spdif_pclk",
|
||||
"spdif_aoclk",
|
||||
"spdif_mclk",
|
||||
"spdif_mclk_sel";
|
||||
resets = <&reset RESET_AIU>;
|
||||
};
|
34
bindings/sound/amlogic,axg-fifo.txt
Normal file
34
bindings/sound/amlogic,axg-fifo.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
* Amlogic Audio FIFO controllers
|
||||
|
||||
Required properties:
|
||||
- compatible: 'amlogic,axg-toddr' or
|
||||
'amlogic,axg-toddr' or
|
||||
'amlogic,g12a-frddr' or
|
||||
'amlogic,g12a-toddr' or
|
||||
'amlogic,sm1-frddr' or
|
||||
'amlogic,sm1-toddr'
|
||||
- reg: physical base address of the controller and length of memory
|
||||
mapped region.
|
||||
- interrupts: interrupt specifier for the fifo.
|
||||
- clocks: phandle to the fifo peripheral clock provided by the audio
|
||||
clock controller.
|
||||
- resets: list of reset phandle, one for each entry reset-names.
|
||||
- reset-names: should contain the following:
|
||||
* "arb" : memory ARB line (required)
|
||||
* "rst" : dedicated device reset line (optional)
|
||||
- #sound-dai-cells: must be 0.
|
||||
- amlogic,fifo-depth: The size of the controller's fifo in bytes. This
|
||||
is useful for determining certain configuration such
|
||||
as the flush threshold of the fifo
|
||||
|
||||
Example of FRDDR A on the A113 SoC:
|
||||
|
||||
frddr_a: audio-controller@1c0 {
|
||||
compatible = "amlogic,axg-frddr";
|
||||
reg = <0x0 0x1c0 0x0 0x1c>;
|
||||
#sound-dai-cells = <0>;
|
||||
interrupts = <GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc_audio AUD_CLKID_FRDDR_A>;
|
||||
resets = <&arb AXG_ARB_FRDDR_A>;
|
||||
fifo-depth = <512>;
|
||||
};
|
29
bindings/sound/amlogic,axg-pdm.txt
Normal file
29
bindings/sound/amlogic,axg-pdm.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
* Amlogic Audio PDM input
|
||||
|
||||
Required properties:
|
||||
- compatible: 'amlogic,axg-pdm' or
|
||||
'amlogic,g12a-pdm' or
|
||||
'amlogic,sm1-pdm'
|
||||
- reg: physical base address of the controller and length of memory
|
||||
mapped region.
|
||||
- clocks: list of clock phandle, one for each entry clock-names.
|
||||
- clock-names: should contain the following:
|
||||
* "pclk" : peripheral clock.
|
||||
* "dclk" : pdm digital clock
|
||||
* "sysclk" : dsp system clock
|
||||
- #sound-dai-cells: must be 0.
|
||||
|
||||
Optional property:
|
||||
- resets: phandle to the dedicated reset line of the pdm input.
|
||||
|
||||
Example of PDM on the A113 SoC:
|
||||
|
||||
pdm: audio-controller@ff632000 {
|
||||
compatible = "amlogic,axg-pdm";
|
||||
reg = <0x0 0xff632000 0x0 0x34>;
|
||||
#sound-dai-cells = <0>;
|
||||
clocks = <&clkc_audio AUD_CLKID_PDM>,
|
||||
<&clkc_audio AUD_CLKID_PDM_DCLK>,
|
||||
<&clkc_audio AUD_CLKID_PDM_SYSCLK>;
|
||||
clock-names = "pclk", "dclk", "sysclk";
|
||||
};
|
124
bindings/sound/amlogic,axg-sound-card.txt
Normal file
124
bindings/sound/amlogic,axg-sound-card.txt
Normal file
@@ -0,0 +1,124 @@
|
||||
Amlogic AXG sound card:
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: "amlogic,axg-sound-card"
|
||||
- model : User specified audio sound card name, one string
|
||||
|
||||
Optional properties:
|
||||
|
||||
- audio-aux-devs : List of phandles pointing to auxiliary devices
|
||||
- audio-widgets : Please refer to widgets.txt.
|
||||
- audio-routing : A list of the connections between audio components.
|
||||
|
||||
Subnodes:
|
||||
|
||||
- dai-link: Container for dai-link level properties and the CODEC
|
||||
sub-nodes. There should be at least one (and probably more)
|
||||
subnode of this type.
|
||||
|
||||
Required dai-link properties:
|
||||
|
||||
- sound-dai: phandle and port of the CPU DAI.
|
||||
|
||||
Required TDM Backend dai-link properties:
|
||||
- dai-format : CPU/CODEC common audio format
|
||||
|
||||
Optional TDM Backend dai-link properties:
|
||||
- dai-tdm-slot-rx-mask-{0,1,2,3}: Receive direction slot masks
|
||||
- dai-tdm-slot-tx-mask-{0,1,2,3}: Transmit direction slot masks
|
||||
When omitted, mask is assumed to have to no
|
||||
slots. A valid must have at one slot, so at
|
||||
least one these mask should be provided with
|
||||
an enabled slot.
|
||||
- dai-tdm-slot-num : Please refer to tdm-slot.txt.
|
||||
If omitted, slot number is set to accommodate the largest
|
||||
mask provided.
|
||||
- dai-tdm-slot-width : Please refer to tdm-slot.txt. default to 32 if omitted.
|
||||
- mclk-fs : Multiplication factor between stream rate and mclk
|
||||
|
||||
Backend dai-link subnodes:
|
||||
|
||||
- codec: dai-link representing backend links should have at least one subnode.
|
||||
One subnode for each codec of the dai-link.
|
||||
dai-link representing frontend links have no codec, therefore have no
|
||||
subnodes
|
||||
|
||||
Required codec subnodes properties:
|
||||
|
||||
- sound-dai: phandle and port of the CODEC DAI.
|
||||
|
||||
Optional codec subnodes properties:
|
||||
|
||||
- dai-tdm-slot-tx-mask : Please refer to tdm-slot.txt.
|
||||
- dai-tdm-slot-rx-mask : Please refer to tdm-slot.txt.
|
||||
|
||||
Example:
|
||||
|
||||
sound {
|
||||
compatible = "amlogic,axg-sound-card";
|
||||
model = "AXG-S420";
|
||||
audio-aux-devs = <&tdmin_a>, <&tdmout_c>;
|
||||
audio-widgets = "Line", "Lineout",
|
||||
"Line", "Linein",
|
||||
"Speaker", "Speaker1 Left",
|
||||
"Speaker", "Speaker1 Right";
|
||||
"Speaker", "Speaker2 Left",
|
||||
"Speaker", "Speaker2 Right";
|
||||
audio-routing = "TDMOUT_C IN 0", "FRDDR_A OUT 2",
|
||||
"SPDIFOUT IN 0", "FRDDR_A OUT 3",
|
||||
"TDM_C Playback", "TDMOUT_C OUT",
|
||||
"TDMIN_A IN 2", "TDM_C Capture",
|
||||
"TDMIN_A IN 5", "TDM_C Loopback",
|
||||
"TODDR_A IN 0", "TDMIN_A OUT",
|
||||
"Lineout", "Lineout AOUTL",
|
||||
"Lineout", "Lineout AOUTR",
|
||||
"Speaker1 Left", "SPK1 OUT_A",
|
||||
"Speaker2 Left", "SPK2 OUT_A",
|
||||
"Speaker1 Right", "SPK1 OUT_B",
|
||||
"Speaker2 Right", "SPK2 OUT_B",
|
||||
"Linein AINL", "Linein",
|
||||
"Linein AINR", "Linein";
|
||||
|
||||
dai-link@0 {
|
||||
sound-dai = <&frddr_a>;
|
||||
};
|
||||
|
||||
dai-link@1 {
|
||||
sound-dai = <&toddr_a>;
|
||||
};
|
||||
|
||||
dai-link@2 {
|
||||
sound-dai = <&tdmif_c>;
|
||||
dai-format = "i2s";
|
||||
dai-tdm-slot-tx-mask-2 = <1 1>;
|
||||
dai-tdm-slot-tx-mask-3 = <1 1>;
|
||||
dai-tdm-slot-rx-mask-1 = <1 1>;
|
||||
mclk-fs = <256>;
|
||||
|
||||
codec@0 {
|
||||
sound-dai = <&lineout>;
|
||||
};
|
||||
|
||||
codec@1 {
|
||||
sound-dai = <&speaker_amp1>;
|
||||
};
|
||||
|
||||
codec@2 {
|
||||
sound-dai = <&speaker_amp2>;
|
||||
};
|
||||
|
||||
codec@3 {
|
||||
sound-dai = <&linein>;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
dai-link@3 {
|
||||
sound-dai = <&spdifout>;
|
||||
|
||||
codec {
|
||||
sound-dai = <&spdif_dit>;
|
||||
};
|
||||
};
|
||||
};
|
27
bindings/sound/amlogic,axg-spdifin.txt
Normal file
27
bindings/sound/amlogic,axg-spdifin.txt
Normal file
@@ -0,0 +1,27 @@
|
||||
* Amlogic Audio SPDIF Input
|
||||
|
||||
Required properties:
|
||||
- compatible: 'amlogic,axg-spdifin' or
|
||||
'amlogic,g12a-spdifin' or
|
||||
'amlogic,sm1-spdifin'
|
||||
- interrupts: interrupt specifier for the spdif input.
|
||||
- clocks: list of clock phandle, one for each entry clock-names.
|
||||
- clock-names: should contain the following:
|
||||
* "pclk" : peripheral clock.
|
||||
* "refclk" : spdif input reference clock
|
||||
- #sound-dai-cells: must be 0.
|
||||
|
||||
Optional property:
|
||||
- resets: phandle to the dedicated reset line of the spdif input.
|
||||
|
||||
Example on the A113 SoC:
|
||||
|
||||
spdifin: audio-controller@400 {
|
||||
compatible = "amlogic,axg-spdifin";
|
||||
reg = <0x0 0x400 0x0 0x30>;
|
||||
#sound-dai-cells = <0>;
|
||||
interrupts = <GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&clkc_audio AUD_CLKID_SPDIFIN>,
|
||||
<&clkc_audio AUD_CLKID_SPDIFIN_CLK>;
|
||||
clock-names = "pclk", "refclk";
|
||||
};
|
25
bindings/sound/amlogic,axg-spdifout.txt
Normal file
25
bindings/sound/amlogic,axg-spdifout.txt
Normal file
@@ -0,0 +1,25 @@
|
||||
* Amlogic Audio SPDIF Output
|
||||
|
||||
Required properties:
|
||||
- compatible: 'amlogic,axg-spdifout' or
|
||||
'amlogic,g12a-spdifout' or
|
||||
'amlogic,sm1-spdifout'
|
||||
- clocks: list of clock phandle, one for each entry clock-names.
|
||||
- clock-names: should contain the following:
|
||||
* "pclk" : peripheral clock.
|
||||
* "mclk" : master clock
|
||||
- #sound-dai-cells: must be 0.
|
||||
|
||||
Optional property:
|
||||
- resets: phandle to the dedicated reset line of the spdif output.
|
||||
|
||||
Example on the A113 SoC:
|
||||
|
||||
spdifout: audio-controller@480 {
|
||||
compatible = "amlogic,axg-spdifout";
|
||||
reg = <0x0 0x480 0x0 0x50>;
|
||||
#sound-dai-cells = <0>;
|
||||
clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>,
|
||||
<&clkc_audio AUD_CLKID_SPDIFOUT_CLK>;
|
||||
clock-names = "pclk", "mclk";
|
||||
};
|
36
bindings/sound/amlogic,axg-tdm-formatters.txt
Normal file
36
bindings/sound/amlogic,axg-tdm-formatters.txt
Normal file
@@ -0,0 +1,36 @@
|
||||
* Amlogic Audio TDM formatters
|
||||
|
||||
Required properties:
|
||||
- compatible: 'amlogic,axg-tdmin' or
|
||||
'amlogic,axg-tdmout' or
|
||||
'amlogic,g12a-tdmin' or
|
||||
'amlogic,g12a-tdmout' or
|
||||
'amlogic,sm1-tdmin' or
|
||||
'amlogic,sm1-tdmout
|
||||
- reg: physical base address of the controller and length of memory
|
||||
mapped region.
|
||||
- clocks: list of clock phandle, one for each entry clock-names.
|
||||
- clock-names: should contain the following:
|
||||
* "pclk" : peripheral clock.
|
||||
* "sclk" : bit clock.
|
||||
* "sclk_sel" : bit clock input multiplexer.
|
||||
* "lrclk" : sample clock
|
||||
* "lrclk_sel": sample clock input multiplexer
|
||||
|
||||
Optional property:
|
||||
- resets: phandle to the dedicated reset line of the tdm formatter.
|
||||
|
||||
Example of TDMOUT_A on the S905X2 SoC:
|
||||
|
||||
tdmout_a: audio-controller@500 {
|
||||
compatible = "amlogic,axg-tdmout";
|
||||
reg = <0x0 0x500 0x0 0x40>;
|
||||
resets = <&clkc_audio AUD_RESET_TDMOUT_A>;
|
||||
clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>,
|
||||
<&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>,
|
||||
<&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>,
|
||||
<&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>,
|
||||
<&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>;
|
||||
clock-names = "pclk", "sclk", "sclk_sel",
|
||||
"lrclk", "lrclk_sel";
|
||||
};
|
22
bindings/sound/amlogic,axg-tdm-iface.txt
Normal file
22
bindings/sound/amlogic,axg-tdm-iface.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
* Amlogic Audio TDM Interfaces
|
||||
|
||||
Required properties:
|
||||
- compatible: 'amlogic,axg-tdm-iface'
|
||||
- clocks: list of clock phandle, one for each entry clock-names.
|
||||
- clock-names: should contain the following:
|
||||
* "sclk" : bit clock.
|
||||
* "lrclk": sample clock
|
||||
* "mclk" : master clock
|
||||
-> optional if the interface is in clock slave mode.
|
||||
- #sound-dai-cells: must be 0.
|
||||
|
||||
Example of TDM_A on the A113 SoC:
|
||||
|
||||
tdmif_a: audio-controller@0 {
|
||||
compatible = "amlogic,axg-tdm-iface";
|
||||
#sound-dai-cells = <0>;
|
||||
clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>,
|
||||
<&clkc_audio AUD_CLKID_MST_A_SCLK>,
|
||||
<&clkc_audio AUD_CLKID_MST_A_LRCLK>;
|
||||
clock-names = "mclk", "sclk", "lrclk";
|
||||
};
|
56
bindings/sound/amlogic,g12a-toacodec.yaml
Normal file
56
bindings/sound/amlogic,g12a-toacodec.yaml
Normal file
@@ -0,0 +1,56 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/amlogic,g12a-toacodec.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Amlogic G12a Internal DAC Control Glue
|
||||
|
||||
maintainers:
|
||||
- Jerome Brunet <jbrunet@baylibre.com>
|
||||
|
||||
allOf:
|
||||
- $ref: name-prefix.yaml#
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "^audio-controller@.*"
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 1
|
||||
|
||||
compatible:
|
||||
oneOf:
|
||||
- items:
|
||||
- const: amlogic,g12a-toacodec
|
||||
- items:
|
||||
- enum:
|
||||
- amlogic,sm1-toacodec
|
||||
- const: amlogic,g12a-toacodec
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
sound-name-prefix: true
|
||||
|
||||
required:
|
||||
- "#sound-dai-cells"
|
||||
- compatible
|
||||
- reg
|
||||
- resets
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/reset/amlogic,meson-g12a-audio-reset.h>
|
||||
|
||||
toacodec: audio-controller@740 {
|
||||
compatible = "amlogic,g12a-toacodec";
|
||||
reg = <0x740 0x4>;
|
||||
#sound-dai-cells = <1>;
|
||||
resets = <&clkc_audio AUD_RESET_TOACODEC>;
|
||||
};
|
58
bindings/sound/amlogic,g12a-tohdmitx.txt
Normal file
58
bindings/sound/amlogic,g12a-tohdmitx.txt
Normal file
@@ -0,0 +1,58 @@
|
||||
* Amlogic HDMI Tx control glue
|
||||
|
||||
Required properties:
|
||||
- compatible: "amlogic,g12a-tohdmitx" or
|
||||
"amlogic,sm1-tohdmitx"
|
||||
- reg: physical base address of the controller and length of memory
|
||||
mapped region.
|
||||
- #sound-dai-cells: should be 1.
|
||||
- resets: phandle to the dedicated reset line of the hdmitx glue.
|
||||
|
||||
Example on the S905X2 SoC:
|
||||
|
||||
tohdmitx: audio-controller@744 {
|
||||
compatible = "amlogic,g12a-tohdmitx";
|
||||
reg = <0x0 0x744 0x0 0x4>;
|
||||
#sound-dai-cells = <1>;
|
||||
resets = <&clkc_audio AUD_RESET_TOHDMITX>;
|
||||
};
|
||||
|
||||
Example of an 'amlogic,axg-sound-card':
|
||||
|
||||
sound {
|
||||
compatible = "amlogic,axg-sound-card";
|
||||
|
||||
[...]
|
||||
|
||||
dai-link-x {
|
||||
sound-dai = <&tdmif_a>;
|
||||
dai-format = "i2s";
|
||||
dai-tdm-slot-tx-mask-0 = <1 1>;
|
||||
|
||||
codec-0 {
|
||||
sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
|
||||
};
|
||||
|
||||
codec-1 {
|
||||
sound-dai = <&external_dac>;
|
||||
};
|
||||
};
|
||||
|
||||
dai-link-y {
|
||||
sound-dai = <&tdmif_c>;
|
||||
dai-format = "i2s";
|
||||
dai-tdm-slot-tx-mask-0 = <1 1>;
|
||||
|
||||
codec {
|
||||
sound-dai = <&tohdmitx TOHDMITX_I2S_IN_C>;
|
||||
};
|
||||
};
|
||||
|
||||
dai-link-z {
|
||||
sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
|
||||
|
||||
codec {
|
||||
sound-dai = <&hdmi_tx>;
|
||||
};
|
||||
};
|
||||
};
|
116
bindings/sound/amlogic,gx-sound-card.yaml
Normal file
116
bindings/sound/amlogic,gx-sound-card.yaml
Normal file
@@ -0,0 +1,116 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/amlogic,gx-sound-card.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Amlogic GX sound card
|
||||
|
||||
maintainers:
|
||||
- Jerome Brunet <jbrunet@baylibre.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- const: amlogic,gx-sound-card
|
||||
|
||||
audio-aux-devs:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
description: list of auxiliary devices
|
||||
|
||||
audio-routing:
|
||||
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
|
||||
minItems: 2
|
||||
description: |-
|
||||
A list of the connections between audio components. Each entry is a
|
||||
pair of strings, the first being the connection's sink, the second
|
||||
being the connection's source.
|
||||
|
||||
audio-widgets:
|
||||
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
|
||||
minItems: 2
|
||||
description: |-
|
||||
A list off component DAPM widget. Each entry is a pair of strings,
|
||||
the first being the widget type, the second being the widget name
|
||||
|
||||
model:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description: User specified audio sound card name
|
||||
|
||||
patternProperties:
|
||||
"^dai-link-[0-9]+$":
|
||||
type: object
|
||||
additionalProperties: false
|
||||
description: |-
|
||||
dai-link child nodes:
|
||||
Container for dai-link level properties and the CODEC sub-nodes.
|
||||
There should be at least one (and probably more) subnode of this type
|
||||
|
||||
properties:
|
||||
dai-format:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
enum: [ i2s, left-j, dsp_a ]
|
||||
|
||||
mclk-fs:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |-
|
||||
Multiplication factor between the frame rate and master clock
|
||||
rate
|
||||
|
||||
sound-dai:
|
||||
maxItems: 1
|
||||
description: phandle of the CPU DAI
|
||||
|
||||
patternProperties:
|
||||
"^codec-[0-9]+$":
|
||||
type: object
|
||||
additionalProperties: false
|
||||
description: |-
|
||||
Codecs:
|
||||
dai-link representing backend links should have at least one subnode.
|
||||
One subnode for each codec of the dai-link. dai-link representing
|
||||
frontend links have no codec, therefore have no subnodes
|
||||
|
||||
properties:
|
||||
sound-dai:
|
||||
maxItems: 1
|
||||
description: phandle of the codec DAI
|
||||
|
||||
required:
|
||||
- sound-dai
|
||||
|
||||
required:
|
||||
- sound-dai
|
||||
|
||||
required:
|
||||
- model
|
||||
- dai-link-0
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
sound {
|
||||
compatible = "amlogic,gx-sound-card";
|
||||
model = "GXL-ACME-S905X-FOO";
|
||||
audio-aux-devs = <&>;
|
||||
audio-routing = "I2S ENCODER I2S IN", "I2S FIFO Playback";
|
||||
|
||||
dai-link-0 {
|
||||
sound-dai = <&i2s_fifo>;
|
||||
};
|
||||
|
||||
dai-link-1 {
|
||||
sound-dai = <&i2s_encoder>;
|
||||
dai-format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
|
||||
codec-0 {
|
||||
sound-dai = <&codec0>;
|
||||
};
|
||||
|
||||
codec-1 {
|
||||
sound-dai = <&codec1>;
|
||||
};
|
||||
};
|
||||
};
|
70
bindings/sound/amlogic,t9015.yaml
Normal file
70
bindings/sound/amlogic,t9015.yaml
Normal file
@@ -0,0 +1,70 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/amlogic,t9015.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Amlogic T9015 Internal Audio DAC
|
||||
|
||||
maintainers:
|
||||
- Jerome Brunet <jbrunet@baylibre.com>
|
||||
|
||||
allOf:
|
||||
- $ref: name-prefix.yaml#
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "^audio-controller@.*"
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
compatible:
|
||||
items:
|
||||
- const: amlogic,t9015
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Peripheral clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: pclk
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
AVDD-supply:
|
||||
description:
|
||||
Analogue power supply.
|
||||
|
||||
sound-name-prefix: true
|
||||
|
||||
required:
|
||||
- "#sound-dai-cells"
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- resets
|
||||
- AVDD-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/g12a-clkc.h>
|
||||
#include <dt-bindings/reset/amlogic,meson-g12a-reset.h>
|
||||
|
||||
acodec: audio-controller@32000 {
|
||||
compatible = "amlogic,t9015";
|
||||
reg = <0x32000 0x14>;
|
||||
#sound-dai-cells = <0>;
|
||||
clocks = <&clkc CLKID_AUDIO_CODEC>;
|
||||
clock-names = "pclk";
|
||||
resets = <&reset RESET_AUDIO_CODEC>;
|
||||
AVDD-supply = <&vddao_1v8>;
|
||||
};
|
131
bindings/sound/apple,mca.yaml
Normal file
131
bindings/sound/apple,mca.yaml
Normal file
@@ -0,0 +1,131 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/apple,mca.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Apple MCA I2S transceiver
|
||||
|
||||
description: |
|
||||
MCA is an I2S transceiver peripheral found on M1 and other Apple chips. It is
|
||||
composed of a number of identical clusters which can operate independently
|
||||
or in an interlinked fashion. Up to 6 clusters have been seen on an MCA.
|
||||
|
||||
maintainers:
|
||||
- Martin Povišer <povik+lin@cutebit.org>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- apple,t6000-mca
|
||||
- apple,t8103-mca
|
||||
- const: apple,mca
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: Register region of the MCA clusters proper
|
||||
- description: Register region of the DMA glue and its FIFOs
|
||||
|
||||
interrupts:
|
||||
minItems: 4
|
||||
maxItems: 6
|
||||
description:
|
||||
One interrupt per each cluster
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
dmas:
|
||||
minItems: 16
|
||||
maxItems: 24
|
||||
description:
|
||||
DMA channels corresponding to the SERDES units in the peripheral. They are
|
||||
listed in groups of four per cluster, and within the group they are given
|
||||
as associated to the TXA, RXA, TXB, RXB units.
|
||||
|
||||
dma-names:
|
||||
minItems: 16
|
||||
items:
|
||||
- const: tx0a
|
||||
- const: rx0a
|
||||
- const: tx0b
|
||||
- const: rx0b
|
||||
- const: tx1a
|
||||
- const: rx1a
|
||||
- const: tx1b
|
||||
- const: rx1b
|
||||
- const: tx2a
|
||||
- const: rx2a
|
||||
- const: tx2b
|
||||
- const: rx2b
|
||||
- const: tx3a
|
||||
- const: rx3a
|
||||
- const: tx3b
|
||||
- const: rx3b
|
||||
- const: tx4a
|
||||
- const: rx4a
|
||||
- const: tx4b
|
||||
- const: rx4b
|
||||
- const: tx5a
|
||||
- const: rx5a
|
||||
- const: tx5b
|
||||
- const: rx5b
|
||||
description: |
|
||||
Names for the DMA channels: 'tx'/'rx', then cluster number, then 'a'/'b'
|
||||
based on the associated SERDES unit.
|
||||
|
||||
clocks:
|
||||
minItems: 4
|
||||
maxItems: 6
|
||||
description:
|
||||
Clusters' input reference clock.
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
power-domains:
|
||||
minItems: 5
|
||||
maxItems: 7
|
||||
description:
|
||||
First a general power domain for register access, then the power
|
||||
domains of individual clusters for their operation.
|
||||
|
||||
'#sound-dai-cells':
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- dmas
|
||||
- dma-names
|
||||
- clocks
|
||||
- power-domains
|
||||
- '#sound-dai-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
mca: i2s@9b600000 {
|
||||
compatible = "apple,t6000-mca", "apple,mca";
|
||||
reg = <0x9b600000 0x10000>,
|
||||
<0x9b200000 0x20000>;
|
||||
|
||||
clocks = <&nco 0>, <&nco 1>, <&nco 2>, <&nco 3>;
|
||||
power-domains = <&ps_audio_p>, <&ps_mca0>, <&ps_mca1>,
|
||||
<&ps_mca2>, <&ps_mca3>;
|
||||
dmas = <&admac 0>, <&admac 1>, <&admac 2>, <&admac 3>,
|
||||
<&admac 4>, <&admac 5>, <&admac 6>, <&admac 7>,
|
||||
<&admac 8>, <&admac 9>, <&admac 10>, <&admac 11>,
|
||||
<&admac 12>, <&admac 13>, <&admac 14>, <&admac 15>;
|
||||
dma-names = "tx0a", "rx0a", "tx0b", "rx0b",
|
||||
"tx1a", "rx1a", "tx1b", "rx1b",
|
||||
"tx2a", "rx2a", "tx2b", "rx2b",
|
||||
"tx3a", "rx3a", "tx3b", "rx3b";
|
||||
|
||||
#sound-dai-cells = <1>;
|
||||
};
|
62
bindings/sound/arm,pl041.yaml
Normal file
62
bindings/sound/arm,pl041.yaml
Normal file
@@ -0,0 +1,62 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/arm,pl041.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Arm Ltd. PrimeCell PL041 AACI sound interface
|
||||
|
||||
maintainers:
|
||||
- Andre Przywara <andre.przywara@arm.com>
|
||||
|
||||
description:
|
||||
The Arm PrimeCell Advanced Audio CODEC Interface (AACI) is an AMBA compliant
|
||||
peripheral that provides communication with an audio CODEC using the AC-link
|
||||
protocol.
|
||||
|
||||
# We need a select here so we don't match all nodes with 'arm,primecell'
|
||||
select:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: arm,pl041
|
||||
required:
|
||||
- compatible
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- const: arm,pl041
|
||||
- const: arm,primecell
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
description: APB register access clock
|
||||
|
||||
clock-names:
|
||||
const: apb_pclk
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
audio-controller@40000 {
|
||||
compatible = "arm,pl041", "arm,primecell";
|
||||
reg = <0x040000 0x1000>;
|
||||
interrupts = <11>;
|
||||
clocks = <&v2m_clk24mhz>;
|
||||
clock-names = "apb_pclk";
|
||||
};
|
||||
|
||||
...
|
26
bindings/sound/armada-370db-audio.txt
Normal file
26
bindings/sound/armada-370db-audio.txt
Normal file
@@ -0,0 +1,26 @@
|
||||
Device Tree bindings for the Armada 370 DB audio
|
||||
================================================
|
||||
|
||||
These Device Tree bindings are used to describe the audio complex
|
||||
found on the Armada 370 DB platform.
|
||||
|
||||
Mandatory properties:
|
||||
|
||||
* compatible: must be "marvell,a370db-audio"
|
||||
|
||||
* marvell,audio-controller: a phandle that points to the audio
|
||||
controller of the Armada 370 SoC.
|
||||
|
||||
* marvell,audio-codec: a set of three phandles that points to:
|
||||
|
||||
1/ the analog audio codec connected to the Armada 370 SoC
|
||||
2/ the S/PDIF transceiver
|
||||
3/ the S/PDIF receiver
|
||||
|
||||
Example:
|
||||
|
||||
sound {
|
||||
compatible = "marvell,a370db-audio";
|
||||
marvell,audio-controller = <&audio_controller>;
|
||||
marvell,audio-codec = <&audio_codec &spdif_out &spdif_in>;
|
||||
};
|
100
bindings/sound/atmel,sama5d2-classd.yaml
Normal file
100
bindings/sound/atmel,sama5d2-classd.yaml
Normal file
@@ -0,0 +1,100 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
# Copyright (C) 2022 Microchip Technology, Inc. and its subsidiaries
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/atmel,sama5d2-classd.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Atmel ClassD Amplifier
|
||||
|
||||
maintainers:
|
||||
- Nicolas Ferre <nicolas.ferre@microchip.com>
|
||||
- Alexandre Belloni <alexandre.belloni@bootlin.com>
|
||||
- Claudiu Beznea <claudiu.beznea@microchip.com>
|
||||
|
||||
description:
|
||||
The Audio Class D Amplifier (CLASSD) is a digital input, Pulse Width
|
||||
Modulated (PWM) output stereo Class D amplifier.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: atmel,sama5d2-classd
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
dmas:
|
||||
maxItems: 1
|
||||
|
||||
dma-names:
|
||||
const: tx
|
||||
|
||||
clocks:
|
||||
maxItems: 2
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: pclk
|
||||
- const: gclk
|
||||
|
||||
atmel,model:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
default: CLASSD
|
||||
description: The user-visible name of this sound complex.
|
||||
|
||||
atmel,pwm-type:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
enum:
|
||||
- single
|
||||
- diff
|
||||
default: single
|
||||
description: PWM modulation type.
|
||||
|
||||
atmel,non-overlap-time:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum:
|
||||
- 5
|
||||
- 10
|
||||
- 15
|
||||
- 20
|
||||
default: 10
|
||||
description:
|
||||
Set non-overlapping time, the unit is nanosecond(ns).
|
||||
Non-overlapping will be disabled if not specified.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- dmas
|
||||
- dma-names
|
||||
- clock-names
|
||||
- clocks
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/dma/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
classd: sound@fc048000 {
|
||||
compatible = "atmel,sama5d2-classd";
|
||||
reg = <0xfc048000 0x100>;
|
||||
interrupts = <59 IRQ_TYPE_LEVEL_HIGH 7>;
|
||||
dmas = <&dma0
|
||||
(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
|
||||
| AT91_XDMAC_DT_PERID(47))>;
|
||||
dma-names = "tx";
|
||||
clocks = <&classd_clk>, <&classd_gclk>;
|
||||
clock-names = "pclk", "gclk";
|
||||
assigned-clocks = <&classd_gclk>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_classd_default>;
|
||||
atmel,model = "classd @ SAMA5D2-Xplained";
|
||||
atmel,pwm-type = "diff";
|
||||
atmel,non-overlap-time = <10>;
|
||||
};
|
85
bindings/sound/atmel,sama5d2-i2s.yaml
Normal file
85
bindings/sound/atmel,sama5d2-i2s.yaml
Normal file
@@ -0,0 +1,85 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
# Copyright (C) 2022 Microchip Technology, Inc. and its subsidiaries
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/atmel,sama5d2-i2s.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Atmel I2S controller
|
||||
|
||||
maintainers:
|
||||
- Nicolas Ferre <nicolas.ferre@microchip.com>
|
||||
- Alexandre Belloni <alexandre.belloni@bootlin.com>
|
||||
- Claudiu Beznea <claudiu.beznea@microchip.com>
|
||||
|
||||
description:
|
||||
Atmel I2S (Inter-IC Sound Controller) bus is the standard
|
||||
interface for connecting audio devices, such as audio codecs.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: atmel,sama5d2-i2s
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Peripheral clock
|
||||
- description: Generated clock (Optional)
|
||||
- description: I2S mux clock (Optional). Set
|
||||
with gclk when Master Mode is required.
|
||||
minItems: 1
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: pclk
|
||||
- const: gclk
|
||||
- const: muxclk
|
||||
minItems: 1
|
||||
|
||||
dmas:
|
||||
items:
|
||||
- description: TX DMA Channel
|
||||
- description: RX DMA Channel
|
||||
|
||||
dma-names:
|
||||
items:
|
||||
- const: tx
|
||||
- const: rx
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- dmas
|
||||
- dma-names
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/dma/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
i2s@f8050000 {
|
||||
compatible = "atmel,sama5d2-i2s";
|
||||
reg = <0xf8050000 0x300>;
|
||||
interrupts = <54 IRQ_TYPE_LEVEL_HIGH 7>;
|
||||
dmas = <&dma0
|
||||
(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
|
||||
AT91_XDMAC_DT_PERID(31))>,
|
||||
<&dma0
|
||||
(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
|
||||
AT91_XDMAC_DT_PERID(32))>;
|
||||
dma-names = "tx", "rx";
|
||||
clocks = <&i2s0_clk>, <&i2s0_gclk>, <&i2s0muxck>;
|
||||
clock-names = "pclk", "gclk", "muxclk";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_i2s0_default>;
|
||||
};
|
98
bindings/sound/atmel,sama5d2-pdmic.yaml
Normal file
98
bindings/sound/atmel,sama5d2-pdmic.yaml
Normal file
@@ -0,0 +1,98 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
# Copyright (C) 2022 Microchip Technology, Inc. and its subsidiaries
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/atmel,sama5d2-pdmic.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Atmel PDMIC decoder
|
||||
|
||||
maintainers:
|
||||
- Claudiu Beznea <claudiu.beznea@microchip.com>
|
||||
|
||||
description:
|
||||
Atmel Pulse Density Modulation Interface Controller
|
||||
(PDMIC) peripheral is a mono PDM decoder module
|
||||
that decodes an incoming PDM sample stream.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: atmel,sama5d2-pdmic
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: peripheral clock
|
||||
- description: generated clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: pclk
|
||||
- const: gclk
|
||||
|
||||
dmas:
|
||||
maxItems: 1
|
||||
|
||||
dma-names:
|
||||
const: rx
|
||||
|
||||
atmel,mic-min-freq:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
The minimal frequency that the microphone supports.
|
||||
|
||||
atmel,mic-max-freq:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
The maximal frequency that the microphone supports.
|
||||
|
||||
atmel,model:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
default: PDMIC
|
||||
description: The user-visible name of this sound card.
|
||||
|
||||
atmel,mic-offset:
|
||||
$ref: /schemas/types.yaml#/definitions/int32
|
||||
default: 0
|
||||
description: The offset that should be added.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- dmas
|
||||
- dma-names
|
||||
- clock-names
|
||||
- clocks
|
||||
- atmel,mic-min-freq
|
||||
- atmel,mic-max-freq
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/dma/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
pdmic: sound@f8018000 {
|
||||
compatible = "atmel,sama5d2-pdmic";
|
||||
reg = <0xf8018000 0x124>;
|
||||
interrupts = <48 IRQ_TYPE_LEVEL_HIGH 7>;
|
||||
dmas = <&dma0
|
||||
(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
|
||||
| AT91_XDMAC_DT_PERID(50))>;
|
||||
dma-names = "rx";
|
||||
clocks = <&pdmic_clk>, <&pdmic_gclk>;
|
||||
clock-names = "pclk", "gclk";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pdmic_default>;
|
||||
atmel,model = "PDMIC@sama5d2_xplained";
|
||||
atmel,mic-min-freq = <1000000>;
|
||||
atmel,mic-max-freq = <3246000>;
|
||||
atmel,mic-offset = <0x0>;
|
||||
};
|
26
bindings/sound/atmel-at91sam9g20ek-wm8731-audio.txt
Normal file
26
bindings/sound/atmel-at91sam9g20ek-wm8731-audio.txt
Normal file
@@ -0,0 +1,26 @@
|
||||
* Atmel at91sam9g20ek wm8731 audio complex
|
||||
|
||||
Required properties:
|
||||
- compatible: "atmel,at91sam9g20ek-wm8731-audio"
|
||||
- atmel,model: The user-visible name of this sound complex.
|
||||
- atmel,audio-routing: A list of the connections between audio components.
|
||||
- atmel,ssc-controller: The phandle of the SSC controller
|
||||
- atmel,audio-codec: The phandle of the WM8731 audio codec
|
||||
Optional properties:
|
||||
- pinctrl-names, pinctrl-0: Please refer to pinctrl-bindings.txt
|
||||
|
||||
Example:
|
||||
sound {
|
||||
compatible = "atmel,at91sam9g20ek-wm8731-audio";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pck0_as_mck>;
|
||||
|
||||
atmel,model = "wm8731 @ AT91SAMG20EK";
|
||||
|
||||
atmel,audio-routing =
|
||||
"Ext Spk", "LHPOUT",
|
||||
"Int MIC", "MICIN";
|
||||
|
||||
atmel,ssc-controller = <&ssc0>;
|
||||
atmel,audio-codec = <&wm8731>;
|
||||
};
|
35
bindings/sound/atmel-sam9x5-wm8731-audio.txt
Normal file
35
bindings/sound/atmel-sam9x5-wm8731-audio.txt
Normal file
@@ -0,0 +1,35 @@
|
||||
* Atmel at91sam9x5ek wm8731 audio complex
|
||||
|
||||
Required properties:
|
||||
- compatible: "atmel,sam9x5-wm8731-audio"
|
||||
- atmel,model: The user-visible name of this sound complex.
|
||||
- atmel,ssc-controller: The phandle of the SSC controller
|
||||
- atmel,audio-codec: The phandle of the WM8731 audio codec
|
||||
- atmel,audio-routing: A list of the connections between audio components.
|
||||
Each entry is a pair of strings, the first being the connection's sink,
|
||||
the second being the connection's source.
|
||||
|
||||
Available audio endpoints for the audio-routing table:
|
||||
|
||||
Board connectors:
|
||||
* Headphone Jack
|
||||
* Line In Jack
|
||||
|
||||
wm8731 pins:
|
||||
cf Documentation/devicetree/bindings/sound/wlf,wm8731.yaml
|
||||
|
||||
Example:
|
||||
sound {
|
||||
compatible = "atmel,sam9x5-wm8731-audio";
|
||||
|
||||
atmel,model = "wm8731 @ AT91SAM9X5EK";
|
||||
|
||||
atmel,audio-routing =
|
||||
"Headphone Jack", "RHPOUT",
|
||||
"Headphone Jack", "LHPOUT",
|
||||
"LLINEIN", "Line In Jack",
|
||||
"RLINEIN", "Line In Jack";
|
||||
|
||||
atmel,ssc-controller = <&ssc0>;
|
||||
atmel,audio-codec = <&wm8731>;
|
||||
};
|
55
bindings/sound/atmel-wm8904.txt
Normal file
55
bindings/sound/atmel-wm8904.txt
Normal file
@@ -0,0 +1,55 @@
|
||||
Atmel ASoC driver with wm8904 audio codec complex
|
||||
|
||||
Required properties:
|
||||
- compatible: "atmel,asoc-wm8904"
|
||||
- atmel,model: The user-visible name of this sound complex.
|
||||
- atmel,audio-routing: A list of the connections between audio components.
|
||||
Each entry is a pair of strings, the first being the connection's sink,
|
||||
the second being the connection's source. Valid names for sources and
|
||||
sinks are the WM8904's pins, and the jacks on the board:
|
||||
|
||||
WM8904 pins:
|
||||
|
||||
* IN1L
|
||||
* IN1R
|
||||
* IN2L
|
||||
* IN2R
|
||||
* IN3L
|
||||
* IN3R
|
||||
* HPOUTL
|
||||
* HPOUTR
|
||||
* LINEOUTL
|
||||
* LINEOUTR
|
||||
* MICBIAS
|
||||
|
||||
Board connectors:
|
||||
|
||||
* Headphone Jack
|
||||
* Line In Jack
|
||||
* Mic
|
||||
|
||||
- atmel,ssc-controller: The phandle of the SSC controller
|
||||
- atmel,audio-codec: The phandle of the WM8904 audio codec
|
||||
|
||||
Optional properties:
|
||||
- pinctrl-names, pinctrl-0: Please refer to pinctrl-bindings.txt
|
||||
|
||||
Example:
|
||||
sound {
|
||||
compatible = "atmel,asoc-wm8904";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_pck0_as_mck>;
|
||||
|
||||
atmel,model = "wm8904 @ AT91SAM9N12EK";
|
||||
|
||||
atmel,audio-routing =
|
||||
"Headphone Jack", "HPOUTL",
|
||||
"Headphone Jack", "HPOUTR",
|
||||
"IN2L", "Line In Jack",
|
||||
"IN2R", "Line In Jack",
|
||||
"Mic", "MICBIAS",
|
||||
"IN1L", "Mic";
|
||||
|
||||
atmel,ssc-controller = <&ssc0>;
|
||||
atmel,audio-codec = <&wm8904>;
|
||||
};
|
20
bindings/sound/atmel_ac97c.txt
Normal file
20
bindings/sound/atmel_ac97c.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
* Atmel AC97 controller
|
||||
|
||||
Required properties:
|
||||
- compatible: "atmel,at91sam9263-ac97c"
|
||||
- reg: Address and length of the register set for the device
|
||||
- interrupts: Should contain AC97 interrupt
|
||||
- ac97-gpios: Please refer to soc-ac97link.txt, only ac97-reset is used
|
||||
Optional properties:
|
||||
- pinctrl-names, pinctrl-0: Please refer to pinctrl-bindings.txt
|
||||
|
||||
Example:
|
||||
sound@fffa0000 {
|
||||
compatible = "atmel,at91sam9263-ac97c";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_ac97>;
|
||||
reg = <0xfffa0000 0x4000>;
|
||||
interrupts = <18 IRQ_TYPE_LEVEL_HIGH 5>;
|
||||
|
||||
ac97-gpios = <&pioB 0 0 &pioB 2 0 &pioC 29 GPIO_ACTIVE_LOW>;
|
||||
};
|
57
bindings/sound/audio-graph-card.yaml
Normal file
57
bindings/sound/audio-graph-card.yaml
Normal file
@@ -0,0 +1,57 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/audio-graph-card.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Audio Graph Card
|
||||
|
||||
maintainers:
|
||||
- Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/sound/audio-graph.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- audio-graph-card
|
||||
- audio-graph-scu-card
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
sound {
|
||||
compatible = "audio-graph-card";
|
||||
|
||||
dais = <&cpu_port_a>;
|
||||
};
|
||||
|
||||
cpu {
|
||||
/*
|
||||
* dai-controller own settings
|
||||
*/
|
||||
|
||||
port {
|
||||
cpu_endpoint: endpoint {
|
||||
remote-endpoint = <&codec_endpoint>;
|
||||
dai-format = "left_j";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
codec {
|
||||
/*
|
||||
* codec own settings
|
||||
*/
|
||||
|
||||
port {
|
||||
codec_endpoint: endpoint {
|
||||
remote-endpoint = <&cpu_endpoint>;
|
||||
};
|
||||
};
|
||||
};
|
60
bindings/sound/audio-graph-card2.yaml
Normal file
60
bindings/sound/audio-graph-card2.yaml
Normal file
@@ -0,0 +1,60 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/audio-graph-card2.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Audio Graph Card2
|
||||
|
||||
maintainers:
|
||||
- Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- audio-graph-card2
|
||||
links:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
label:
|
||||
maxItems: 1
|
||||
routing:
|
||||
description: |
|
||||
A list of the connections between audio components.
|
||||
Each entry is a pair of strings, the first being the
|
||||
connection's sink, the second being the connection's source.
|
||||
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
|
||||
multi:
|
||||
type: object
|
||||
description: Multi-CPU/Codec node
|
||||
dpcm:
|
||||
type: object
|
||||
description: DPCM node
|
||||
codec2codec:
|
||||
type: object
|
||||
description: Codec to Codec node
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- links
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
sound {
|
||||
compatible = "audio-graph-card2";
|
||||
|
||||
links = <&cpu_port>;
|
||||
};
|
||||
|
||||
cpu {
|
||||
compatible = "cpu-driver";
|
||||
|
||||
cpu_port: port { cpu_ep: endpoint { remote-endpoint = <&codec_ep>; }; };
|
||||
};
|
||||
|
||||
codec {
|
||||
compatible = "codec-driver";
|
||||
|
||||
port { codec_ep: endpoint { remote-endpoint = <&cpu_ep>; }; };
|
||||
};
|
103
bindings/sound/audio-graph-port.yaml
Normal file
103
bindings/sound/audio-graph-port.yaml
Normal file
@@ -0,0 +1,103 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/audio-graph-port.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Audio Graph Card 'port' Node Bindings
|
||||
|
||||
maintainers:
|
||||
- Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
|
||||
|
||||
select: false
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/graph.yaml#/$defs/port-base
|
||||
|
||||
properties:
|
||||
prefix:
|
||||
description: "device name prefix"
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
convert-rate:
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-sample-rate"
|
||||
convert-channels:
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-channels"
|
||||
convert-sample-format:
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-sample-format"
|
||||
|
||||
patternProperties:
|
||||
"^endpoint(@[0-9a-f]+)?":
|
||||
$ref: /schemas/graph.yaml#/$defs/endpoint-base
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
mclk-fs:
|
||||
description: |
|
||||
Multiplication factor between stream rate and codec mclk.
|
||||
When defined, mclk-fs property defined in dai-link sub nodes are
|
||||
ignored.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
frame-inversion:
|
||||
description: dai-link uses frame clock inversion
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
bitclock-inversion:
|
||||
description: dai-link uses bit clock inversion
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
frame-master:
|
||||
description: Indicates dai-link frame master.
|
||||
oneOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/flag
|
||||
- $ref: /schemas/types.yaml#/definitions/phandle
|
||||
bitclock-master:
|
||||
description: Indicates dai-link bit clock master
|
||||
oneOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/flag
|
||||
- $ref: /schemas/types.yaml#/definitions/phandle
|
||||
|
||||
dai-format:
|
||||
description: audio format.
|
||||
items:
|
||||
enum:
|
||||
- i2s
|
||||
- right_j
|
||||
- left_j
|
||||
- dsp_a
|
||||
- dsp_b
|
||||
- ac97
|
||||
- pdm
|
||||
- msb
|
||||
- lsb
|
||||
convert-rate:
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-sample-rate"
|
||||
convert-channels:
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-channels"
|
||||
convert-sample-format:
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-sample-format"
|
||||
|
||||
dai-tdm-slot-num:
|
||||
description: Number of slots in use.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
dai-tdm-slot-width:
|
||||
description: Width in bits for each slot.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
dai-tdm-slot-width-map:
|
||||
description: Mapping of sample widths to slot widths. For hardware
|
||||
that cannot support a fixed slot width or a slot width always
|
||||
equal to sample width. A matrix of one or more 3-tuples.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-matrix
|
||||
items:
|
||||
items:
|
||||
-
|
||||
description: Sample width in bits
|
||||
minimum: 8
|
||||
maximum: 64
|
||||
-
|
||||
description: Slot width in bits
|
||||
minimum: 8
|
||||
maximum: 256
|
||||
-
|
||||
description: Slot count
|
||||
minimum: 1
|
||||
maximum: 64
|
||||
|
||||
additionalProperties: true
|
46
bindings/sound/audio-graph.yaml
Normal file
46
bindings/sound/audio-graph.yaml
Normal file
@@ -0,0 +1,46 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/audio-graph.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Audio Graph
|
||||
|
||||
maintainers:
|
||||
- Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
|
||||
|
||||
properties:
|
||||
dais:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
label:
|
||||
maxItems: 1
|
||||
prefix:
|
||||
description: "device name prefix"
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
routing:
|
||||
description: |
|
||||
A list of the connections between audio components.
|
||||
Each entry is a pair of strings, the first being the
|
||||
connection's sink, the second being the connection's source.
|
||||
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
|
||||
widgets:
|
||||
description: User specified audio sound widgets.
|
||||
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
|
||||
convert-rate:
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-sample-rate"
|
||||
convert-channels:
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-channels"
|
||||
convert-sample-format:
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-sample-format"
|
||||
|
||||
pa-gpios:
|
||||
maxItems: 1
|
||||
hp-det-gpio:
|
||||
maxItems: 1
|
||||
mic-det-gpio:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- dais
|
||||
|
||||
additionalProperties: true
|
54
bindings/sound/awinic,aw8738.yaml
Normal file
54
bindings/sound/awinic,aw8738.yaml
Normal file
@@ -0,0 +1,54 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/awinic,aw8738.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Awinic AW8738 Audio Amplifier
|
||||
|
||||
maintainers:
|
||||
- Stephan Gerhold <stephan@gerhold.net>
|
||||
|
||||
description:
|
||||
The Awinic AW8738 is a simple audio amplifier with different operation modes
|
||||
(set using one-wire pulse control). The mode configures the speaker-guard
|
||||
function (primarily the power limit for the amplifier).
|
||||
|
||||
allOf:
|
||||
- $ref: name-prefix.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: awinic,aw8738
|
||||
|
||||
mode-gpios:
|
||||
description:
|
||||
GPIO used for one-wire pulse control. The pin is typically called SHDN
|
||||
(active-low), but this is misleading since it is actually more than
|
||||
just a simple shutdown/enable control.
|
||||
maxItems: 1
|
||||
|
||||
awinic,mode:
|
||||
description: Operation mode (number of pulses for one-wire pulse control)
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 7
|
||||
|
||||
sound-name-prefix: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- mode-gpios
|
||||
- awinic,mode
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
audio-amplifier {
|
||||
compatible = "awinic,aw8738";
|
||||
mode-gpios = <&msmgpio 114 GPIO_ACTIVE_HIGH>;
|
||||
awinic,mode = <5>;
|
||||
sound-name-prefix = "Speaker Amp";
|
||||
};
|
92
bindings/sound/axentia,tse850-pcm5142.txt
Normal file
92
bindings/sound/axentia,tse850-pcm5142.txt
Normal file
@@ -0,0 +1,92 @@
|
||||
Devicetree bindings for the Axentia TSE-850 audio complex
|
||||
|
||||
Required properties:
|
||||
- compatible: "axentia,tse850-pcm5142"
|
||||
- axentia,cpu-dai: The phandle of the cpu dai.
|
||||
- axentia,audio-codec: The phandle of the PCM5142 codec.
|
||||
- axentia,add-gpios: gpio specifier that controls the mixer.
|
||||
- axentia,loop1-gpios: gpio specifier that controls loop relays on channel 1.
|
||||
- axentia,loop2-gpios: gpio specifier that controls loop relays on channel 2.
|
||||
- axentia,ana-supply: Regulator that supplies the output amplifier. Must
|
||||
support voltages in the 2V - 20V range, in 1V steps.
|
||||
|
||||
The schematics explaining the gpios are as follows:
|
||||
|
||||
loop1 relays
|
||||
IN1 +---o +------------+ o---+ OUT1
|
||||
\ /
|
||||
+ +
|
||||
| / |
|
||||
+--o +--. |
|
||||
| add | |
|
||||
| V |
|
||||
| .---. |
|
||||
DAC +----------->|Sum|---+
|
||||
| '---' |
|
||||
| |
|
||||
+ +
|
||||
|
||||
IN2 +---o--+------------+--o---+ OUT2
|
||||
loop2 relays
|
||||
|
||||
The 'loop1' gpio pin controlls two relays, which are either in loop position,
|
||||
meaning that input and output are directly connected, or they are in mixer
|
||||
position, meaning that the signal is passed through the 'Sum' mixer. Similarly
|
||||
for 'loop2'.
|
||||
|
||||
In the above, the 'loop1' relays are inactive, thus feeding IN1 to the mixer
|
||||
(if 'add' is active) and feeding the mixer output to OUT1. The 'loop2' relays
|
||||
are active, short-cutting the TSE-850 from channel 2. IN1, IN2, OUT1 and OUT2
|
||||
are TSE-850 connectors and DAC is the PCB name of the (filtered) output from
|
||||
the PCM5142 codec.
|
||||
|
||||
Example:
|
||||
|
||||
&ssc0 {
|
||||
#sound-dai-cells = <0>;
|
||||
|
||||
};
|
||||
|
||||
&i2c {
|
||||
codec: pcm5142@4c {
|
||||
compatible = "ti,pcm5142";
|
||||
|
||||
reg = <0x4c>;
|
||||
|
||||
AVDD-supply = <®_3v3>;
|
||||
DVDD-supply = <®_3v3>;
|
||||
CPVDD-supply = <®_3v3>;
|
||||
|
||||
clocks = <&sck>;
|
||||
|
||||
pll-in = <3>;
|
||||
pll-out = <6>;
|
||||
};
|
||||
};
|
||||
|
||||
ana: ana-reg {
|
||||
compatible = "pwm-regulator";
|
||||
|
||||
regulator-name = "ANA";
|
||||
|
||||
pwms = <&pwm0 2 1000 PWM_POLARITY_INVERTED>;
|
||||
pwm-dutycycle-unit = <1000>;
|
||||
pwm-dutycycle-range = <100 1000>;
|
||||
|
||||
regulator-min-microvolt = <2000000>;
|
||||
regulator-max-microvolt = <20000000>;
|
||||
regulator-ramp-delay = <1000>;
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "axentia,tse850-pcm5142";
|
||||
|
||||
axentia,cpu-dai = <&ssc0>;
|
||||
axentia,audio-codec = <&codec>;
|
||||
|
||||
axentia,add-gpios = <&pioA 8 GPIO_ACTIVE_LOW>;
|
||||
axentia,loop1-gpios = <&pioA 10 GPIO_ACTIVE_LOW>;
|
||||
axentia,loop2-gpios = <&pioA 11 GPIO_ACTIVE_LOW>;
|
||||
|
||||
axentia,ana-supply = <&ana>;
|
||||
};
|
24
bindings/sound/brcm,bcm2835-i2s.txt
Normal file
24
bindings/sound/brcm,bcm2835-i2s.txt
Normal file
@@ -0,0 +1,24 @@
|
||||
* Broadcom BCM2835 SoC I2S/PCM module
|
||||
|
||||
Required properties:
|
||||
- compatible: "brcm,bcm2835-i2s"
|
||||
- reg: Should contain PCM registers location and length.
|
||||
- clocks: the (PCM) clock to use
|
||||
- dmas: List of DMA controller phandle and DMA request line ordered pairs.
|
||||
- dma-names: Identifier string for each DMA request line in the dmas property.
|
||||
These strings correspond 1:1 with the ordered pairs in dmas.
|
||||
|
||||
One of the DMA channels will be responsible for transmission (should be
|
||||
named "tx") and one for reception (should be named "rx").
|
||||
|
||||
Example:
|
||||
|
||||
bcm2835_i2s: i2s@7e203000 {
|
||||
compatible = "brcm,bcm2835-i2s";
|
||||
reg = <0x7e203000 0x24>;
|
||||
clocks = <&clocks BCM2835_CLOCK_PCM>;
|
||||
|
||||
dmas = <&dma 2>,
|
||||
<&dma 3>;
|
||||
dma-names = "tx", "rx";
|
||||
};
|
29
bindings/sound/brcm,bcm63xx-audio.txt
Normal file
29
bindings/sound/brcm,bcm63xx-audio.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
Broadcom DSL/PON BCM63xx Audio I2S controller
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "brcm,bcm63xx-i2s".
|
||||
- #address-cells: 32bit valued, 1 cell.
|
||||
- #size-cells: 32bit valued, 0 cell.
|
||||
- reg: Should contain audio registers location and length
|
||||
- interrupts: Should contain the interrupt for the controller.
|
||||
- clocks: Must contain an entry for each entry in clock-names.
|
||||
Please refer to clock-bindings.txt.
|
||||
- clock-names: One of each entry matching the clocks phandles list:
|
||||
- "i2sclk" (generated clock) Required.
|
||||
- "i2sosc" (fixed 200MHz clock) Required.
|
||||
|
||||
(1) : The generated clock is required only when any of TX and RX
|
||||
works on Master Mode.
|
||||
(2) : The fixed 200MHz clock is from internal chip and always on
|
||||
|
||||
Example:
|
||||
|
||||
i2s: bcm63xx-i2s {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "brcm,bcm63xx-i2s";
|
||||
reg = <0xFF802080 0xFF>;
|
||||
interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&i2sclk>, <&osc>;
|
||||
clock-names = "i2sclk","i2sosc";
|
||||
};
|
63
bindings/sound/brcm,cygnus-audio.txt
Normal file
63
bindings/sound/brcm,cygnus-audio.txt
Normal file
@@ -0,0 +1,63 @@
|
||||
BROADCOM Cygnus Audio I2S/TDM/SPDIF controller
|
||||
|
||||
Required properties:
|
||||
- compatible : "brcm,cygnus-audio"
|
||||
- #address-cells: 32bit valued, 1 cell.
|
||||
- #size-cells: 32bit valued, 0 cell.
|
||||
- reg : Should contain audio registers location and length
|
||||
- reg-names: names of the registers listed in "reg" property
|
||||
Valid names are "aud" and "i2s_in". "aud" contains a
|
||||
set of DMA, I2S_OUT and SPDIF registers. "i2s_in" contains
|
||||
a set of I2S_IN registers.
|
||||
- clocks: PLL and leaf clocks used by audio ports
|
||||
- assigned-clocks: PLL and leaf clocks
|
||||
- assigned-clock-parents: parent clocks of the assigned clocks
|
||||
(usually the PLL)
|
||||
- assigned-clock-rates: List of clock frequencies of the
|
||||
assigned clocks
|
||||
- clock-names: names of 3 leaf clocks used by audio ports
|
||||
Valid names are "ch0_audio", "ch1_audio", "ch2_audio"
|
||||
- interrupts: audio DMA interrupt number
|
||||
|
||||
SSP Subnode properties:
|
||||
- reg: The index of ssp port interface to use
|
||||
Valid value are 0, 1, 2, or 3 (for spdif)
|
||||
|
||||
Example:
|
||||
cygnus_audio: audio@180ae000 {
|
||||
compatible = "brcm,cygnus-audio";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x180ae000 0xafd>, <0x180aec00 0x1f8>;
|
||||
reg-names = "aud", "i2s_in";
|
||||
clocks = <&audiopll BCM_CYGNUS_AUDIOPLL_CH0>,
|
||||
<&audiopll BCM_CYGNUS_AUDIOPLL_CH1>,
|
||||
<&audiopll BCM_CYGNUS_AUDIOPLL_CH2>;
|
||||
assigned-clocks = <&audiopll BCM_CYGNUS_AUDIOPLL>,
|
||||
<&audiopll BCM_CYGNUS_AUDIOPLL_CH0>,
|
||||
<&audiopll BCM_CYGNUS_AUDIOPLL_CH1>,
|
||||
<&audiopll BCM_CYGNUS_AUDIOPLL_CH2>;
|
||||
assigned-clock-parents = <&audiopll BCM_CYGNUS_AUDIOPLL>;
|
||||
assigned-clock-rates = <1769470191>,
|
||||
<0>,
|
||||
<0>,
|
||||
<0>;
|
||||
clock-names = "ch0_audio", "ch1_audio", "ch2_audio";
|
||||
interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
ssp0: ssp_port@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
|
||||
ssp1: ssp_port@1 {
|
||||
reg = <1>;
|
||||
};
|
||||
|
||||
ssp2: ssp_port@2 {
|
||||
reg = <2>;
|
||||
};
|
||||
|
||||
spdif: spdif_port@3 {
|
||||
reg = <3>;
|
||||
};
|
||||
};
|
18
bindings/sound/cdns,xtfpga-i2s.txt
Normal file
18
bindings/sound/cdns,xtfpga-i2s.txt
Normal file
@@ -0,0 +1,18 @@
|
||||
Bindings for I2S controller built into xtfpga Xtensa bitstreams.
|
||||
|
||||
Required properties:
|
||||
- compatible: shall be "cdns,xtfpga-i2s".
|
||||
- reg: memory region (address and length) with device registers.
|
||||
- interrupts: interrupt for the device.
|
||||
- clocks: phandle to the clk used as master clock. I2S bus clock
|
||||
is derived from it.
|
||||
|
||||
Examples:
|
||||
|
||||
i2s0: xtfpga-i2s@d080000 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "cdns,xtfpga-i2s";
|
||||
reg = <0x0d080000 0x40>;
|
||||
interrupts = <2 1>;
|
||||
clocks = <&cdce706 4>;
|
||||
};
|
195
bindings/sound/cirrus,cs35l41.yaml
Normal file
195
bindings/sound/cirrus,cs35l41.yaml
Normal file
@@ -0,0 +1,195 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/cirrus,cs35l41.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Cirrus Logic CS35L41 Speaker Amplifier
|
||||
|
||||
maintainers:
|
||||
- david.rhodes@cirrus.com
|
||||
|
||||
description: |
|
||||
CS35L41 is a boosted mono Class D amplifier with DSP
|
||||
speaker protection and equalization
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cirrus,cs35l40
|
||||
- cirrus,cs35l41
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
'#sound-dai-cells':
|
||||
description:
|
||||
The first cell indicating the audio interface.
|
||||
const: 1
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
VA-supply:
|
||||
description: voltage regulator phandle for the VA supply
|
||||
|
||||
VP-supply:
|
||||
description: voltage regulator phandle for the VP supply
|
||||
|
||||
cirrus,boost-peak-milliamp:
|
||||
description:
|
||||
Boost-converter peak current limit in mA.
|
||||
Configures the peak current by monitoring the current through the boost FET.
|
||||
Range starts at 1600 mA and goes to a maximum of 4500 mA with increments
|
||||
of 50 mA. See section 4.3.6 of the datasheet for details.
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 1600
|
||||
maximum: 4500
|
||||
default: 4500
|
||||
|
||||
cirrus,boost-ind-nanohenry:
|
||||
description:
|
||||
Boost inductor value, expressed in nH. Valid
|
||||
values include 1000, 1200, 1500 and 2200.
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 1000
|
||||
maximum: 2200
|
||||
|
||||
cirrus,boost-cap-microfarad:
|
||||
description:
|
||||
Total equivalent boost capacitance on the VBST
|
||||
and VAMP pins, derated at 11 volts DC. The value must be rounded to the
|
||||
nearest integer and expressed in uF.
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
|
||||
cirrus,asp-sdout-hiz:
|
||||
description:
|
||||
Audio serial port SDOUT Hi-Z control. Sets the Hi-Z
|
||||
configuration for SDOUT pin of amplifier.
|
||||
0 = Logic 0 during unused slots, and while all transmit channels disabled
|
||||
1 = Hi-Z during unused slots but logic 0 while all transmit channels disabled
|
||||
2 = (Default) Logic 0 during unused slots, but Hi-Z while all transmit channels disabled
|
||||
3 = Hi-Z during unused slots and while all transmit channels disabled
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
default: 2
|
||||
|
||||
cirrus,boost-type:
|
||||
description:
|
||||
Configures the type of Boost being used.
|
||||
Internal boost requires boost-peak-milliamp, boost-ind-nanohenry and
|
||||
boost-cap-microfarad.
|
||||
External Boost must have GPIO1 as GPIO output. GPIO1 will be set high to
|
||||
enable boost voltage.
|
||||
0 = Internal Boost
|
||||
1 = External Boost
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
|
||||
cirrus,gpio1-polarity-invert:
|
||||
description:
|
||||
Boolean which specifies whether the GPIO1
|
||||
level is inverted. If this property is not present the level is not inverted.
|
||||
type: boolean
|
||||
|
||||
cirrus,gpio1-output-enable:
|
||||
description:
|
||||
Boolean which specifies whether the GPIO1 pin
|
||||
is configured as an output. If this property is not present the
|
||||
pin will be configured as an input.
|
||||
type: boolean
|
||||
|
||||
cirrus,gpio1-src-select:
|
||||
description:
|
||||
Configures the function of the GPIO1 pin.
|
||||
Note that the options are different from the GPIO2 pin
|
||||
0 = High Impedance (Default)
|
||||
1 = GPIO
|
||||
2 = Sync
|
||||
3 = MCLK input
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
|
||||
cirrus,gpio2-polarity-invert:
|
||||
description:
|
||||
Boolean which specifies whether the GPIO2
|
||||
level is inverted. If this property is not present the level is not inverted.
|
||||
type: boolean
|
||||
|
||||
cirrus,gpio2-output-enable:
|
||||
description:
|
||||
Boolean which specifies whether the GPIO2 pin
|
||||
is configured as an output. If this property is not present the
|
||||
pin will be configured as an input.
|
||||
type: boolean
|
||||
|
||||
cirrus,gpio2-src-select:
|
||||
description:
|
||||
Configures the function of the GPIO2 pin.
|
||||
Note that the options are different from the GPIO1 pin.
|
||||
0 = High Impedance (Default)
|
||||
1 = GPIO
|
||||
2 = Open Drain INTB
|
||||
3 = MCLK input
|
||||
4 = Push-pull INTB (active low)
|
||||
5 = Push-pull INT (active high)
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0
|
||||
maximum: 5
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#sound-dai-cells"
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
cirrus,boost-type:
|
||||
const: 0
|
||||
then:
|
||||
required:
|
||||
- cirrus,boost-peak-milliamp
|
||||
- cirrus,boost-ind-nanohenry
|
||||
- cirrus,boost-cap-microfarad
|
||||
else:
|
||||
if:
|
||||
properties:
|
||||
cirrus,boost-type:
|
||||
const: 1
|
||||
then:
|
||||
required:
|
||||
- cirrus,gpio1-output-enable
|
||||
- cirrus,gpio1-src-select
|
||||
properties:
|
||||
cirrus,boost-peak-milliamp: false
|
||||
cirrus,boost-ind-nanohenry: false
|
||||
cirrus,boost-cap-microfarad: false
|
||||
cirrus,gpio1-src-select:
|
||||
enum: [1]
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cs35l41: cs35l41@2 {
|
||||
#sound-dai-cells = <1>;
|
||||
compatible = "cirrus,cs35l41";
|
||||
reg = <2>;
|
||||
VA-supply = <&dummy_vreg>;
|
||||
VP-supply = <&dummy_vreg>;
|
||||
reset-gpios = <&gpio 110 0>;
|
||||
|
||||
cirrus,boost-type = <0>;
|
||||
cirrus,boost-peak-milliamp = <4500>;
|
||||
cirrus,boost-ind-nanohenry = <1000>;
|
||||
cirrus,boost-cap-microfarad = <15>;
|
||||
};
|
||||
};
|
75
bindings/sound/cirrus,cs35l45.yaml
Normal file
75
bindings/sound/cirrus,cs35l45.yaml
Normal file
@@ -0,0 +1,75 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/cirrus,cs35l45.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Cirrus Logic CS35L45 Speaker Amplifier
|
||||
|
||||
maintainers:
|
||||
- Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
|
||||
- Richard Fitzgerald <rf@opensource.cirrus.com>
|
||||
|
||||
description: |
|
||||
CS35L45 is a Boosted Mono Class D Amplifier with DSP
|
||||
Speaker Protection and Adaptive Battery Management.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cirrus,cs35l45
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
'#sound-dai-cells':
|
||||
const: 1
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
vdd-a-supply:
|
||||
description: voltage regulator phandle for the VDD_A supply
|
||||
|
||||
vdd-batt-supply:
|
||||
description: voltage regulator phandle for the VDD_BATT supply
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 5000000
|
||||
|
||||
cirrus,asp-sdout-hiz-ctrl:
|
||||
description:
|
||||
Audio serial port SDOUT Hi-Z control. Sets the Hi-Z
|
||||
configuration for SDOUT pin of amplifier. Logical OR of
|
||||
CS35L45_ASP_TX_HIZ_xxx values.
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
default: 2
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#sound-dai-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/sound/cs35l45.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cs35l45: cs35l45@2 {
|
||||
#sound-dai-cells = <1>;
|
||||
compatible = "cirrus,cs35l45";
|
||||
reg = <2>;
|
||||
spi-max-frequency = <5000000>;
|
||||
vdd-a-supply = <&dummy_vreg>;
|
||||
vdd-batt-supply = <&dummy_vreg>;
|
||||
reset-gpios = <&gpio 110 0>;
|
||||
cirrus,asp-sdout-hiz-ctrl = <(CS35L45_ASP_TX_HIZ_UNUSED |
|
||||
CS35L45_ASP_TX_HIZ_DISABLED)>;
|
||||
};
|
||||
};
|
74
bindings/sound/cirrus,cs4234.yaml
Normal file
74
bindings/sound/cirrus,cs4234.yaml
Normal file
@@ -0,0 +1,74 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/cirrus,cs4234.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Cirrus Logic cs4234 audio CODEC
|
||||
|
||||
maintainers:
|
||||
- patches@opensource.cirrus.com
|
||||
|
||||
description:
|
||||
The CS4234 is a highly versatile CODEC that combines 4 channels of
|
||||
high performance analog to digital conversion, 4 channels of high
|
||||
performance digital to analog conversion for audio, and 1 channel of
|
||||
digital to analog conversion to provide a nondelayed audio reference
|
||||
signal to an external Class H tracking power supply. If not used to
|
||||
drive a tracking power supply, the 5th DAC can instead be used as a
|
||||
standard audio grade DAC, with performance specifications identical
|
||||
to that of the 4 DACs in the audio path. Additionally, the CS4234
|
||||
includes tunable group delay for each of the 4 audio DAC paths to
|
||||
provide lead time for the external switch-mode power supply, and a
|
||||
nondelayed path into the DAC outputs for input signals requiring a
|
||||
low-latency path to the outputs.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cirrus,cs4234
|
||||
|
||||
reg:
|
||||
description:
|
||||
The 7-bit I2C address depends on the state of the ADx pins, in
|
||||
binary given by [0 0 1 0 AD2 AD1 AD0 0].
|
||||
items:
|
||||
minimum: 0x10
|
||||
maximum: 0x17
|
||||
|
||||
VA-supply:
|
||||
description:
|
||||
Analogue power supply.
|
||||
|
||||
VL-supply:
|
||||
description:
|
||||
Interface power supply.
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- VA-supply
|
||||
- VL-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c@e0004000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0xe0004000 0x1000>;
|
||||
|
||||
cs4234: codec@11 {
|
||||
compatible = "cirrus,cs4234";
|
||||
reg = <0x11>;
|
||||
|
||||
VA-supply = <&vdd3v3>;
|
||||
VL-supply = <&vdd3v3>;
|
||||
|
||||
reset-gpios = <&gpio 0>;
|
||||
};
|
||||
};
|
226
bindings/sound/cirrus,cs42l42.yaml
Normal file
226
bindings/sound/cirrus,cs42l42.yaml
Normal file
@@ -0,0 +1,226 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/cirrus,cs42l42.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Cirrus Logic CS42L42 audio CODEC
|
||||
|
||||
maintainers:
|
||||
- patches@opensource.cirrus.com
|
||||
|
||||
description:
|
||||
The CS42L42 is a low-power audio codec designed for portable applications.
|
||||
It provides a high-dynamic range, stereo DAC for audio playback and a mono
|
||||
high-dynamic-range ADC for audio capture. There is an integrated headset
|
||||
detection block.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cirrus,cs42l42
|
||||
- cirrus,cs42l83
|
||||
|
||||
reg:
|
||||
description:
|
||||
The I2C address of the CS42L42.
|
||||
maxItems: 1
|
||||
|
||||
VP-supply:
|
||||
description:
|
||||
VP power supply.
|
||||
|
||||
VCP-supply:
|
||||
description:
|
||||
Charge pump power supply.
|
||||
|
||||
VD_FILT-supply:
|
||||
description:
|
||||
FILT+ power supply.
|
||||
|
||||
VL-supply:
|
||||
description:
|
||||
Logic power supply.
|
||||
|
||||
VA-supply:
|
||||
description:
|
||||
Analog power supply.
|
||||
|
||||
reset-gpios:
|
||||
description:
|
||||
This pin will be asserted and then deasserted to reset the
|
||||
CS42L42 before communication starts.
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
description:
|
||||
Interrupt for CS42L42 IRQ line.
|
||||
maxItems: 1
|
||||
|
||||
cirrus,ts-inv:
|
||||
description: |
|
||||
Sets the behaviour of the jack plug detect switch.
|
||||
|
||||
0 - (Default) Shorted to tip when unplugged, open when plugged.
|
||||
This is "inverted tip sense (ITS)" in the datasheet.
|
||||
|
||||
1 - Open when unplugged, shorted to tip when plugged.
|
||||
This is "normal tip sense (TS)" in the datasheet.
|
||||
|
||||
The CS42L42_TS_INV_* defines are available for this.
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
|
||||
cirrus,ts-dbnc-rise:
|
||||
description: |
|
||||
Debounce the rising edge of TIP_SENSE_PLUG. With no
|
||||
debounce, the tip sense pin might be noisy on a plug event.
|
||||
|
||||
0 - 0ms
|
||||
1 - 125ms
|
||||
2 - 250ms
|
||||
3 - 500ms
|
||||
4 - 750ms
|
||||
5 - 1s (Default)
|
||||
6 - 1.25s
|
||||
7 - 1.5s
|
||||
|
||||
The CS42L42_TS_DBNCE_* defines are available for this.
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0
|
||||
maximum: 7
|
||||
|
||||
cirrus,ts-dbnc-fall:
|
||||
description: |
|
||||
Debounce the falling edge of TIP_SENSE_UNPLUG. With no
|
||||
debounce, the tip sense pin might be noisy on an unplug event.
|
||||
|
||||
0 - 0ms
|
||||
1 - 125ms
|
||||
2 - 250ms
|
||||
3 - 500ms
|
||||
4 - 750ms
|
||||
5 - 1s (Default)
|
||||
6 - 1.25s
|
||||
7 - 1.5s
|
||||
|
||||
The CS42L42_TS_DBNCE_* defines are available for this.
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0
|
||||
maximum: 7
|
||||
|
||||
cirrus,btn-det-init-dbnce:
|
||||
description: |
|
||||
This sets how long to wait after enabling button detection
|
||||
interrupts before servicing button interrupts, to allow the
|
||||
HS bias time to settle. Value is in milliseconds.
|
||||
There may be erroneous button interrupts if this debounce time
|
||||
is too short.
|
||||
|
||||
0ms - 200ms,
|
||||
Default = 100ms
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0
|
||||
maximum: 200
|
||||
|
||||
cirrus,btn-det-event-dbnce:
|
||||
description: |
|
||||
This sets how long to wait after receiving a button press
|
||||
interrupt before processing it. Allows time for the button
|
||||
press to make a clean connection with the bias resistors.
|
||||
Value is in milliseconds.
|
||||
|
||||
0ms - 20ms,
|
||||
Default = 10ms
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0
|
||||
maximum: 20
|
||||
|
||||
cirrus,bias-lvls:
|
||||
description: |
|
||||
For a level-detect headset button scheme, each button will bias
|
||||
the mic pin to a certain voltage. To determine which button was
|
||||
pressed, the voltage is compared to sequential, decreasing
|
||||
voltages, until the compared voltage < bias voltage.
|
||||
For different hardware setups, a designer might want to tweak this.
|
||||
This is an array of descending values for the comparator voltage,
|
||||
given as percent of the HSBIAS voltage.
|
||||
|
||||
Array of 4 values, each 0-63
|
||||
< x1 x2 x3 x4 >
|
||||
Default = < 15 8 4 1 >
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
items:
|
||||
minimum: 0
|
||||
maximum: 63
|
||||
|
||||
cirrus,hs-bias-ramp-rate:
|
||||
description: |
|
||||
If present this sets the rate that the HS bias should rise and fall.
|
||||
The actual rise and fall times depend on external hardware (the
|
||||
datasheet gives several rise and fall time examples).
|
||||
|
||||
0 - Fast rise time; slow, load-dependent fall time
|
||||
1 - Fast
|
||||
2 - Slow (default)
|
||||
3 - Slowest
|
||||
|
||||
The CS42L42_HSBIAS_RAMP_* defines are available for this.
|
||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
|
||||
cirrus,hs-bias-sense-disable:
|
||||
description: |
|
||||
If present the HSBIAS sense is disabled. Configures HSBIAS output
|
||||
current sense through the external 2.21-k resistor. HSBIAS_SENSE
|
||||
is a hardware feature to reduce the potential pop noise when the
|
||||
headset plug is removed slowly. But on some platforms ESD voltage
|
||||
will affect it causing plug detection to fail, especially with CTIA
|
||||
headset type. For different hardware setups, a designer might want
|
||||
to tweak default behavior.
|
||||
type: boolean
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- VP-supply
|
||||
- VCP-supply
|
||||
- VD_FILT-supply
|
||||
- VL-supply
|
||||
- VA-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/sound/cs42l42.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cs42l42: cs42l42@48 {
|
||||
compatible = "cirrus,cs42l42";
|
||||
reg = <0x48>;
|
||||
VA-supply = <&dummy_vreg>;
|
||||
VP-supply = <&dummy_vreg>;
|
||||
VCP-supply = <&dummy_vreg>;
|
||||
VD_FILT-supply = <&dummy_vreg>;
|
||||
VL-supply = <&dummy_vreg>;
|
||||
|
||||
reset-gpios = <&axi_gpio_0 1 0>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <55 8>;
|
||||
|
||||
cirrus,ts-inv = <CS42L42_TS_INV_DIS>;
|
||||
cirrus,ts-dbnc-rise = <CS42L42_TS_DBNCE_1000>;
|
||||
cirrus,ts-dbnc-fall = <CS42L42_TS_DBNCE_0>;
|
||||
cirrus,btn-det-init-dbnce = <100>;
|
||||
cirrus,btn-det-event-dbnce = <10>;
|
||||
cirrus,bias-lvls = <0x0F 0x08 0x04 0x01>;
|
||||
cirrus,hs-bias-ramp-rate = <CS42L42_HSBIAS_RAMP_SLOW>;
|
||||
};
|
||||
};
|
71
bindings/sound/cirrus,cs42l51.yaml
Normal file
71
bindings/sound/cirrus,cs42l51.yaml
Normal file
@@ -0,0 +1,71 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/cirrus,cs42l51.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: CS42L51 audio codec DT bindings
|
||||
|
||||
maintainers:
|
||||
- Olivier Moysan <olivier.moysan@foss.st.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: cirrus,cs42l51
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: MCLK
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
VL-supply:
|
||||
description: phandle to voltage regulator of digital interface section
|
||||
|
||||
VD-supply:
|
||||
description: phandle to voltage regulator of digital internal section
|
||||
|
||||
VA-supply:
|
||||
description: phandle to voltage regulator of analog internal section
|
||||
|
||||
VAHP-supply:
|
||||
description: phandle to voltage regulator of headphone
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#sound-dai-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cs42l51@4a {
|
||||
compatible = "cirrus,cs42l51";
|
||||
reg = <0x4a>;
|
||||
#sound-dai-cells = <0>;
|
||||
clocks = <&mclk_prov>;
|
||||
clock-names = "MCLK";
|
||||
VL-supply = <®_audio>;
|
||||
VD-supply = <®_audio>;
|
||||
VA-supply = <®_audio>;
|
||||
VAHP-supply = <®_audio>;
|
||||
reset-gpios = <&gpiog 9 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
...
|
52
bindings/sound/cirrus,lochnagar.yaml
Normal file
52
bindings/sound/cirrus,lochnagar.yaml
Normal file
@@ -0,0 +1,52 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/cirrus,lochnagar.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Cirrus Logic Lochnagar Audio Development Board
|
||||
|
||||
maintainers:
|
||||
- patches@opensource.cirrus.com
|
||||
|
||||
description: |
|
||||
Lochnagar is an evaluation and development board for Cirrus Logic
|
||||
Smart CODEC and Amp devices. It allows the connection of most Cirrus
|
||||
Logic devices on mini-cards, as well as allowing connection of various
|
||||
application processor systems to provide a full evaluation platform.
|
||||
Audio system topology, clocking and power can all be controlled through
|
||||
the Lochnagar, allowing the device under test to be used in a variety of
|
||||
possible use cases.
|
||||
|
||||
This binding document describes the binding for the audio portion of the
|
||||
driver.
|
||||
|
||||
This binding must be part of the Lochnagar MFD binding:
|
||||
[1] ../mfd/cirrus,lochnagar.yaml
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cirrus,lochnagar2-soundcard
|
||||
|
||||
'#sound-dai-cells':
|
||||
description:
|
||||
The first cell indicating the audio interface.
|
||||
const: 1
|
||||
|
||||
clocks:
|
||||
description:
|
||||
Master clock source for the sound card, should normally be set to
|
||||
LOCHNAGAR_SOUNDCARD_MCLK provided by the Lochnagar clock driver.
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
const: mclk
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- '#sound-dai-cells'
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
additionalProperties: false
|
115
bindings/sound/cirrus,madera.yaml
Normal file
115
bindings/sound/cirrus,madera.yaml
Normal file
@@ -0,0 +1,115 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/cirrus,madera.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Cirrus Logic Madera class audio CODECs
|
||||
|
||||
maintainers:
|
||||
- patches@opensource.cirrus.com
|
||||
|
||||
description: |
|
||||
This describes audio configuration bindings for these codecs.
|
||||
|
||||
See also the core bindings for the parent MFD driver:
|
||||
|
||||
Documentation/devicetree/bindings/mfd/cirrus,madera.yaml
|
||||
|
||||
and defines for values used in these bindings:
|
||||
|
||||
include/dt-bindings/sound/madera.h
|
||||
|
||||
The properties are all contained in the parent MFD node.
|
||||
|
||||
properties:
|
||||
'#sound-dai-cells':
|
||||
description:
|
||||
The first cell indicating the audio interface.
|
||||
const: 1
|
||||
|
||||
cirrus,inmode:
|
||||
description:
|
||||
A list of input mode settings for each input. A maximum
|
||||
of 24 cells, with four cells per input in the order INnAL,
|
||||
INnAR INnBL INnBR. For non-muxed inputs the first two cells
|
||||
for that input set the mode for the left and right channel
|
||||
and the second two cells must be 0. For muxed inputs the
|
||||
first two cells for that input set the mode of the left and
|
||||
right A inputs and the second two cells set the mode of the
|
||||
left and right B inputs. Valid mode values are one of the
|
||||
MADERA_INMODE_xxx. If the array is shorter than the number
|
||||
of inputs the unspecified inputs default to MADERA_INMODE_DIFF.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
minItems: 1
|
||||
maxItems: 24
|
||||
items:
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
default: 0
|
||||
|
||||
cirrus,out-mono:
|
||||
description:
|
||||
Mono bit for each output, maximum of six cells if the array
|
||||
is shorter outputs will be set to stereo.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
minItems: 1
|
||||
maxItems: 6
|
||||
items:
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
default: 0
|
||||
|
||||
cirrus,dmic-ref:
|
||||
description: |
|
||||
Indicates how the MICBIAS pins have been externally connected
|
||||
to DMICs on each input, one cell per input.
|
||||
|
||||
<IN1 IN2 IN3 ...>
|
||||
|
||||
A value of 0 indicates MICVDD and is the default,
|
||||
other values depend on the codec: For CS47L35 one of the
|
||||
CS47L35_DMIC_REF_xxx values For all other codecs one of
|
||||
the MADERA_DMIC_REF_xxx values Also see the datasheet for a
|
||||
description of the INn_DMIC_SUP field.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
minItems: 1
|
||||
maxItems: 6
|
||||
items:
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
default: 0
|
||||
|
||||
cirrus,max-channels-clocked:
|
||||
description:
|
||||
Maximum number of channels that I2S clocks will be generated
|
||||
for. Useful when clock master for systems where the I2S bus
|
||||
has multiple data lines. One cell for each AIF, use a value
|
||||
of zero for AIFs that should be handled normally.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
items:
|
||||
default: 0
|
||||
|
||||
cirrus,pdm-fmt:
|
||||
description:
|
||||
PDM speaker data format, must contain 2 cells (OUT5 and
|
||||
OUT6). See the PDM_SPKn_FMT field in the datasheet for a
|
||||
description of this value. The second cell is ignored for
|
||||
codecs that do not have OUT6.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
|
||||
cirrus,pdm-mute:
|
||||
description: |
|
||||
PDM mute format, must contain 2 cells (OUT5 and OUT6). See the
|
||||
PDM_SPKn_CTRL_1 register in the datasheet for a description
|
||||
of this value. The second cell is ignored for codecs that
|
||||
do not have OUT6.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
|
||||
additionalProperties: true
|
62
bindings/sound/cs35l32.txt
Normal file
62
bindings/sound/cs35l32.txt
Normal file
@@ -0,0 +1,62 @@
|
||||
CS35L32 audio CODEC
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "cirrus,cs35l32"
|
||||
|
||||
- reg : the I2C address of the device for I2C. Address is determined by the level
|
||||
of the AD0 pin. Level 0 is 0x40 while Level 1 is 0x41.
|
||||
|
||||
- VA-supply, VP-supply : power supplies for the device,
|
||||
as covered in Documentation/devicetree/bindings/regulator/regulator.txt.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpios : a GPIO spec for the reset pin. If specified, it will be
|
||||
deasserted before communication to the codec starts.
|
||||
|
||||
- cirrus,boost-manager : Boost voltage control.
|
||||
0 = Automatically managed. Boost-converter output voltage is the higher
|
||||
of the two: Class G or adaptive LED voltage.
|
||||
1 = Automatically managed irrespective of audio, adapting for low-power
|
||||
dissipation when LEDs are ON, and operating in Fixed-Boost Bypass Mode
|
||||
if LEDs are OFF (VBST = VP).
|
||||
2 = (Default) Boost voltage fixed in Bypass Mode (VBST = VP).
|
||||
3 = Boost voltage fixed at 5 V.
|
||||
|
||||
- cirrus,sdout-datacfg : Data configuration for dual CS35L32 applications only.
|
||||
Determines the data packed in a two-CS35L32 configuration.
|
||||
0 = Left/right channels VMON[11:0], IMON[11:0], VPMON[7:0].
|
||||
1 = Left/right channels VMON[11:0], IMON[11:0], STATUS.
|
||||
2 = (Default) left/right channels VMON[15:0], IMON [15:0].
|
||||
3 = Left/right channels VPMON[7:0], STATUS.
|
||||
|
||||
- cirrus,sdout-share : SDOUT sharing. Determines whether one or two CS35L32
|
||||
devices are on board sharing SDOUT.
|
||||
0 = (Default) One IC.
|
||||
1 = Two IC's.
|
||||
|
||||
- cirrus,battery-recovery : Low battery nominal recovery threshold, rising VP.
|
||||
0 = 3.1V
|
||||
1 = 3.2V
|
||||
2 = 3.3V (Default)
|
||||
3 = 3.4V
|
||||
|
||||
- cirrus,battery-threshold : Low battery nominal threshold, falling VP.
|
||||
0 = 3.1V
|
||||
1 = 3.2V
|
||||
2 = 3.3V
|
||||
3 = 3.4V (Default)
|
||||
4 = 3.5V
|
||||
5 = 3.6V
|
||||
|
||||
Example:
|
||||
|
||||
codec: codec@40 {
|
||||
compatible = "cirrus,cs35l32";
|
||||
reg = <0x40>;
|
||||
reset-gpios = <&gpio 10 0>;
|
||||
cirrus,boost-manager = <0x03>;
|
||||
cirrus,sdout-datacfg = <0x02>;
|
||||
VA-supply = <®_audio>;
|
||||
};
|
124
bindings/sound/cs35l33.txt
Normal file
124
bindings/sound/cs35l33.txt
Normal file
@@ -0,0 +1,124 @@
|
||||
CS35L33 Speaker Amplifier
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "cirrus,cs35l33"
|
||||
|
||||
- reg : the I2C address of the device for I2C
|
||||
|
||||
- VA-supply, VP-supply : power supplies for the device,
|
||||
as covered in
|
||||
Documentation/devicetree/bindings/regulator/regulator.txt.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpios : gpio used to reset the amplifier
|
||||
|
||||
- interrupts : IRQ line info CS35L33.
|
||||
(See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
|
||||
for further information relating to interrupt properties)
|
||||
|
||||
- cirrus,boost-ctl : Booster voltage use to supply the amp. If the value is
|
||||
0, then VBST = VP. If greater than 0, the boost voltage will be 3300mV with
|
||||
a value of 1 and will increase at a step size of 100mV until a maximum of
|
||||
8000mV.
|
||||
|
||||
- cirrus,ramp-rate : On power up, it affects the time from when the power
|
||||
up sequence begins to the time the audio reaches a full-scale output.
|
||||
On power down, it affects the time from when the power-down sequence
|
||||
begins to when the amplifier disables the PWM outputs. If this property
|
||||
is not set then soft ramping will be disabled and ramp time would be
|
||||
20ms. If this property is set to 0,1,2,3 then ramp times would be 40ms,
|
||||
60ms,100ms,175ms respectively for 48KHz sample rate.
|
||||
|
||||
- cirrus,boost-ipk : The maximum current allowed for the boost converter.
|
||||
The range starts at 1850000uA and goes to a maximum of 3600000uA
|
||||
with a step size of 15625uA. The default is 2500000uA.
|
||||
|
||||
- cirrus,imon-adc-scale : Configures the scaling of data bits from the IMON
|
||||
ADC data word. This property can be set as a value of 0 for bits 15 down
|
||||
to 0, 6 for 21 down to 6, 7, for 22 down to 7, 8 for 23 down to 8.
|
||||
|
||||
|
||||
Optional H/G Algorithm sub-node:
|
||||
|
||||
The cs35l33 node can have a single "cirrus,hg-algo" sub-node that will enable
|
||||
the internal H/G Algorithm.
|
||||
|
||||
- cirrus,hg-algo : Sub-node for internal Class H/G algorithm that
|
||||
controls the amplifier supplies.
|
||||
|
||||
Optional properties for the "cirrus,hg-algo" sub-node:
|
||||
|
||||
- cirrus,mem-depth : Memory depth for the Class H/G algorithm measured in
|
||||
LRCLK cycles. If this property is set to 0, 1, 2, or 3 then the memory
|
||||
depths will be 1, 4, 8, 16 LRCLK cycles. The default is 16 LRCLK cycles.
|
||||
|
||||
cirrus,release-rate : The number of consecutive LRCLK periods before
|
||||
allowing release condition tracking updates. The number of LRCLK periods
|
||||
start at 3 to a maximum of 255.
|
||||
|
||||
- cirrus,ldo-thld : Configures the signal threshold at which the PWM output
|
||||
stage enters LDO operation. Starts as a default value of 50mV for a value
|
||||
of 1 and increases with a step size of 50mV to a maximum of 750mV (value of
|
||||
0xF).
|
||||
|
||||
- cirrus,ldo-path-disable : This is a boolean property. If present, the H/G
|
||||
algorithm uses the max detection path. If not present, the LDO
|
||||
detection path is used.
|
||||
|
||||
- cirrus,ldo-entry-delay : The LDO entry delay in milliseconds before the H/G
|
||||
algorithm switches to the LDO voltage. This property can be set to values
|
||||
from 0 to 7 for delays of 5ms, 10ms, 50ms, 100ms, 200ms, 500ms, 1000ms.
|
||||
The default is 100ms.
|
||||
|
||||
- cirrus,vp-hg-auto : This is a boolean property. When set, class H/G VPhg
|
||||
automatic updating is enabled.
|
||||
|
||||
- cirrus,vp-hg : Class H/G algorithm VPhg. Controls the H/G algorithm's
|
||||
reference to the VP voltage for when to start generating a boosted VBST.
|
||||
The reference voltage starts at 3000mV with a value of 0x3 and is increased
|
||||
by 100mV per step to a maximum of 5500mV.
|
||||
|
||||
- cirrus,vp-hg-rate : The rate (number of LRCLK periods) at which the VPhg is
|
||||
allowed to increase to a higher voltage when using VPhg automatic
|
||||
tracking. This property can be set to values from 0 to 3 with rates of 128
|
||||
periods, 2048 periods, 32768 periods, and 524288 periods.
|
||||
The default is 32768 periods.
|
||||
|
||||
- cirrus,vp-hg-va : VA calculation reference for automatic VPhg tracking
|
||||
using VPMON. This property can be set to values from 0 to 6 starting at
|
||||
1800mV with a step size of 50mV up to a maximum value of 1750mV.
|
||||
Default is 1800mV.
|
||||
|
||||
Example:
|
||||
|
||||
cs35l33: cs35l33@40 {
|
||||
compatible = "cirrus,cs35l33";
|
||||
reg = <0x40>;
|
||||
|
||||
VA-supply = <&ldo5_reg>;
|
||||
VP-supply = <&ldo5_reg>;
|
||||
|
||||
interrupt-parent = <&gpio8>;
|
||||
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
reset-gpios = <&cs47l91 34 0>;
|
||||
|
||||
cirrus,ramp-rate = <0x0>;
|
||||
cirrus,boost-ctl = <0x30>; /* VBST = 8000mV */
|
||||
cirrus,boost-ipk = <0xE0>; /* 3600mA */
|
||||
cirrus,imon-adc-scale = <0> /* Bits 15 down to 0 */
|
||||
|
||||
cirrus,hg-algo {
|
||||
cirrus,mem-depth = <0x3>;
|
||||
cirrus,release-rate = <0x3>;
|
||||
cirrus,ldo-thld = <0x1>;
|
||||
cirrus,ldo-path-disable = <0x0>;
|
||||
cirrus,ldo-entry-delay=<0x4>;
|
||||
cirrus,vp-hg-auto;
|
||||
cirrus,vp-hg=<0xF>;
|
||||
cirrus,vp-hg-rate=<0x2>;
|
||||
cirrus,vp-hg-va=<0x0>;
|
||||
};
|
||||
};
|
62
bindings/sound/cs35l34.txt
Normal file
62
bindings/sound/cs35l34.txt
Normal file
@@ -0,0 +1,62 @@
|
||||
CS35L34 Speaker Amplifier
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "cirrus,cs35l34"
|
||||
|
||||
- reg : the I2C address of the device for I2C.
|
||||
|
||||
- VA-supply, VP-supply : power supplies for the device,
|
||||
as covered in
|
||||
Documentation/devicetree/bindings/regulator/regulator.txt.
|
||||
|
||||
- cirrus,boost-vtge-millivolt : Boost Voltage Value. Configures the boost
|
||||
converter's output voltage in mV. The range is from VP to 8V with
|
||||
increments of 100mV.
|
||||
|
||||
- cirrus,boost-nanohenry: Inductor value for boost converter. The value is
|
||||
in nH and they can be values of 1000nH, 1100nH, 1200nH, 1500nH, and 2200nH.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpios: GPIO used to reset the amplifier.
|
||||
|
||||
- interrupts : IRQ line info CS35L34.
|
||||
(See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
|
||||
for further information relating to interrupt properties)
|
||||
|
||||
- cirrus,boost-peak-milliamp : Boost converter peak current limit in mA. The
|
||||
range starts at 1200mA and goes to a maximum of 3840mA with increments of
|
||||
80mA. The default value is 2480mA.
|
||||
|
||||
- cirrus,i2s-sdinloc : ADSP SDIN I2S channel location. Indicates whether the
|
||||
received mono data is in the left or right portion of the I2S frame
|
||||
according to the AD0 pin or directly via this configuration.
|
||||
0x0 (Default) = Selected by AD0 input (if AD0 = LOW, use left channel),
|
||||
0x2 = Left,
|
||||
0x1 = Selected by the inversion of the AD0 input (if AD0 = LOW, use right
|
||||
channel),
|
||||
0x3 = Right.
|
||||
|
||||
- cirrus,gain-zc-disable: Boolean property. If set, the gain change will take
|
||||
effect without waiting for a zero cross.
|
||||
|
||||
- cirrus,tdm-rising-edge: Boolean property. If set, data is on the rising edge of
|
||||
SCLK. Otherwise, data is on the falling edge of SCLK.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
cs35l34: cs35l34@40 {
|
||||
compatible = "cirrus,cs35l34";
|
||||
reg = <0x40>;
|
||||
|
||||
interrupt-parent = <&gpio8>;
|
||||
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
reset-gpios = <&gpio 10 0>;
|
||||
|
||||
cirrus,boost-vtge-milltvolt = <8000>; /* 8V */
|
||||
cirrus,boost-ind-nanohenry = <1000>; /* 1uH */
|
||||
cirrus,boost-peak-milliamp = <3000>; /* 3A */
|
||||
};
|
181
bindings/sound/cs35l35.txt
Normal file
181
bindings/sound/cs35l35.txt
Normal file
@@ -0,0 +1,181 @@
|
||||
CS35L35 Boosted Speaker Amplifier
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "cirrus,cs35l35"
|
||||
|
||||
- reg : the I2C address of the device for I2C
|
||||
|
||||
- VA-supply, VP-supply : power supplies for the device,
|
||||
as covered in
|
||||
Documentation/devicetree/bindings/regulator/regulator.txt.
|
||||
|
||||
- interrupts : IRQ line info CS35L35.
|
||||
(See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
|
||||
for further information relating to interrupt properties)
|
||||
|
||||
- cirrus,boost-ind-nanohenry: Inductor value for boost converter. The value is
|
||||
in nH and they can be values of 1000nH, 1200nH, 1500nH, and 2200nH.
|
||||
|
||||
Optional properties:
|
||||
- reset-gpios : gpio used to reset the amplifier
|
||||
|
||||
- cirrus,stereo-config : Boolean to determine if there are 2 AMPs for a
|
||||
Stereo configuration
|
||||
|
||||
- cirrus,audio-channel : Set Location of Audio Signal on Serial Port
|
||||
0 = Data Packet received on Left I2S Channel
|
||||
1 = Data Packet received on Right I2S Channel
|
||||
|
||||
- cirrus,advisory-channel : Set Location of Advisory Signal on Serial Port
|
||||
0 = Data Packet received on Left I2S Channel
|
||||
1 = Data Packet received on Right I2S Channel
|
||||
|
||||
- cirrus,shared-boost : Boolean to enable ClassH tracking of Advisory Signal
|
||||
if 2 Devices share Boost BST_CTL
|
||||
|
||||
- cirrus,external-boost : Boolean to specify the device is using an external
|
||||
boost supply, note that sharing a boost from another cs35l35 would constitute
|
||||
using an external supply for the slave device
|
||||
|
||||
- cirrus,sp-drv-strength : Value for setting the Serial Port drive strength
|
||||
Table 3-10 of the datasheet lists drive-strength specifications
|
||||
0 = 1x (Default)
|
||||
1 = .5x
|
||||
- cirrus,sp-drv-unused : Determines how unused slots should be driven on the
|
||||
Serial Port.
|
||||
0 - Hi-Z
|
||||
2 - Drive 0's (Default)
|
||||
3 - Drive 1's
|
||||
|
||||
- cirrus,bst-pdn-fet-on : Boolean to determine if the Boost PDN control
|
||||
powers down with a rectification FET On or Off. If VSPK is supplied
|
||||
externally then FET is off.
|
||||
|
||||
- cirrus,boost-ctl-millivolt : Boost Voltage Value. Configures the boost
|
||||
converter's output voltage in mV. The range is from 2600mV to 9000mV with
|
||||
increments of 100mV.
|
||||
(Default) VP
|
||||
|
||||
- cirrus,boost-peak-milliamp : Boost-converter peak current limit in mA.
|
||||
Configures the peak current by monitoring the current through the boost FET.
|
||||
Range starts at 1680mA and goes to a maximum of 4480mA with increments of
|
||||
110mA.
|
||||
(Default) 2.46 Amps
|
||||
|
||||
- cirrus,amp-gain-zc : Boolean to determine if to use Amplifier gain-change
|
||||
zero-cross
|
||||
|
||||
Optional H/G Algorithm sub-node:
|
||||
|
||||
The cs35l35 node can have a single "cirrus,classh-internal-algo" sub-node
|
||||
that will disable automatic control of the internal H/G Algorithm.
|
||||
|
||||
It is strongly recommended that the Datasheet be referenced when adjusting
|
||||
or using these Class H Algorithm controls over the internal Algorithm.
|
||||
Serious damage can occur to the Device and surrounding components.
|
||||
|
||||
- cirrus,classh-internal-algo : Sub-node for the Internal Class H Algorithm
|
||||
See Section 4.3 Internal Class H Algorithm in the Datasheet.
|
||||
If not used, the device manages the ClassH Algorithm internally.
|
||||
|
||||
Optional properties for the "cirrus,classh-internal-algo" Sub-node
|
||||
|
||||
Section 7.29 Class H Control
|
||||
- cirrus,classh-bst-overide : Boolean
|
||||
- cirrus,classh-bst-max-limit
|
||||
- cirrus,classh-mem-depth
|
||||
|
||||
Section 7.30 Class H Headroom Control
|
||||
- cirrus,classh-headroom
|
||||
|
||||
Section 7.31 Class H Release Rate
|
||||
- cirrus,classh-release-rate
|
||||
|
||||
Section 7.32 Class H Weak FET Drive Control
|
||||
- cirrus,classh-wk-fet-disable
|
||||
- cirrus,classh-wk-fet-delay
|
||||
- cirrus,classh-wk-fet-thld
|
||||
|
||||
Section 7.34 Class H VP Control
|
||||
- cirrus,classh-vpch-auto
|
||||
- cirrus,classh-vpch-rate
|
||||
- cirrus,classh-vpch-man
|
||||
|
||||
Optional Monitor Signal Format sub-node:
|
||||
|
||||
The cs35l35 node can have a single "cirrus,monitor-signal-format" sub-node
|
||||
for adjusting the Depth, Location and Frame of the Monitoring Signals
|
||||
for Algorithms.
|
||||
|
||||
See Sections 4.8.2 through 4.8.4 Serial-Port Control in the Datasheet
|
||||
|
||||
-cirrus,monitor-signal-format : Sub-node for the Monitor Signaling Formating
|
||||
on the I2S Port. Each of the 3 8 bit values in the array contain the settings
|
||||
for depth, location, and frame.
|
||||
|
||||
If not used, the defaults for the 6 monitor signals is used.
|
||||
|
||||
Sections 7.44 - 7.53 lists values for the depth, location, and frame
|
||||
for each monitoring signal.
|
||||
|
||||
- cirrus,imon : 4 8 bit values to set the depth, location, frame and ADC
|
||||
scale of the IMON monitor signal.
|
||||
|
||||
- cirrus,vmon : 3 8 bit values to set the depth, location, and frame
|
||||
of the VMON monitor signal.
|
||||
|
||||
- cirrus,vpmon : 3 8 bit values to set the depth, location, and frame
|
||||
of the VPMON monitor signal.
|
||||
|
||||
- cirrus,vbstmon : 3 8 bit values to set the depth, location, and frame
|
||||
of the VBSTMON monitor signal
|
||||
|
||||
- cirrus,vpbrstat : 3 8 bit values to set the depth, location, and frame
|
||||
of the VPBRSTAT monitor signal
|
||||
|
||||
- cirrus,zerofill : 3 8 bit values to set the depth, location, and frame\
|
||||
of the ZEROFILL packet in the monitor signal
|
||||
|
||||
Example:
|
||||
|
||||
cs35l35: cs35l35@20 {
|
||||
compatible = "cirrus,cs35l35";
|
||||
reg = <0x20>;
|
||||
VA-supply = <&dummy_vreg>;
|
||||
VP-supply = <&dummy_vreg>;
|
||||
reset-gpios = <&axi_gpio 54 0>;
|
||||
interrupt-parent = <&gpio8>;
|
||||
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
|
||||
cirrus,boost-ctl-millivolt = <9000>;
|
||||
|
||||
cirrus,stereo-config;
|
||||
cirrus,audio-channel = <0x00>;
|
||||
cirrus,advisory-channel = <0x01>;
|
||||
cirrus,shared-boost;
|
||||
|
||||
cirrus,classh-internal-algo {
|
||||
cirrus,classh-bst-overide;
|
||||
cirrus,classh-bst-max-limit = <0x01>;
|
||||
cirrus,classh-mem-depth = <0x01>;
|
||||
cirrus,classh-release-rate = <0x08>;
|
||||
cirrus,classh-headroom-millivolt = <0x0B>;
|
||||
cirrus,classh-wk-fet-disable = <0x01>;
|
||||
cirrus,classh-wk-fet-delay = <0x04>;
|
||||
cirrus,classh-wk-fet-thld = <0x01>;
|
||||
cirrus,classh-vpch-auto = <0x01>;
|
||||
cirrus,classh-vpch-rate = <0x02>;
|
||||
cirrus,classh-vpch-man = <0x05>;
|
||||
};
|
||||
|
||||
/* Depth, Location, Frame */
|
||||
cirrus,monitor-signal-format {
|
||||
cirrus,imon = /bits/ 8 <0x03 0x00 0x01>;
|
||||
cirrus,vmon = /bits/ 8 <0x03 0x00 0x00>;
|
||||
cirrus,vpmon = /bits/ 8 <0x03 0x04 0x00>;
|
||||
cirrus,vbstmon = /bits/ 8 <0x03 0x04 0x01>;
|
||||
cirrus,vpbrstat = /bits/ 8 <0x00 0x04 0x00>;
|
||||
cirrus,zerofill = /bits/ 8 <0x00 0x00 0x00>;
|
||||
};
|
||||
|
||||
};
|
168
bindings/sound/cs35l36.txt
Normal file
168
bindings/sound/cs35l36.txt
Normal file
@@ -0,0 +1,168 @@
|
||||
CS35L36 Speaker Amplifier
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "cirrus,cs35l36"
|
||||
|
||||
- reg : the I2C address of the device for I2C
|
||||
|
||||
- VA-supply, VP-supply : power supplies for the device,
|
||||
as covered in
|
||||
Documentation/devicetree/bindings/regulator/regulator.txt.
|
||||
|
||||
- cirrus,boost-ctl-millivolt : Boost Voltage Value. Configures the boost
|
||||
converter's output voltage in mV. The range is from 2550mV to 12000mV with
|
||||
increments of 50mV.
|
||||
(Default) VP
|
||||
|
||||
- cirrus,boost-peak-milliamp : Boost-converter peak current limit in mA.
|
||||
Configures the peak current by monitoring the current through the boost FET.
|
||||
Range starts at 1600mA and goes to a maximum of 4500mA with increments of
|
||||
50mA.
|
||||
(Default) 4.50 Amps
|
||||
|
||||
- cirrus,boost-ind-nanohenry : Inductor estimation LBST reference value.
|
||||
Seeds the digital boost converter's inductor estimation block with the initial
|
||||
inductance value to reference.
|
||||
|
||||
1000 = 1uH (Default)
|
||||
1200 = 1.2uH
|
||||
|
||||
Optional properties:
|
||||
- cirrus,multi-amp-mode : Boolean to determine if there are more than
|
||||
one amplifier in the system. If more than one it is best to Hi-Z the ASP
|
||||
port to prevent bus contention on the output signal
|
||||
|
||||
- cirrus,boost-ctl-select : Boost conerter control source selection.
|
||||
Selects the source of the BST_CTL target VBST voltage for the boost
|
||||
converter to generate.
|
||||
0x00 - Control Port Value
|
||||
0x01 - Class H Tracking (Default)
|
||||
0x10 - MultiDevice Sync Value
|
||||
|
||||
- cirrus,amp-pcm-inv : Boolean to determine Amplifier will invert incoming
|
||||
PCM data
|
||||
|
||||
- cirrus,imon-pol-inv : Boolean to determine Amplifier will invert the
|
||||
polarity of outbound IMON feedback data
|
||||
|
||||
- cirrus,vmon-pol-inv : Boolean to determine Amplifier will invert the
|
||||
polarity of outbound VMON feedback data
|
||||
|
||||
- cirrus,dcm-mode-enable : Boost converter automatic DCM Mode enable.
|
||||
This enables the digital boost converter to operate in a low power
|
||||
(Discontinuous Conduction) mode during low loading conditions.
|
||||
|
||||
- cirrus,weak-fet-disable : Boolean : The strength of the output drivers is
|
||||
reduced when operating in a Weak-FET Drive Mode and must not be used to drive
|
||||
a large load.
|
||||
|
||||
- cirrus,classh-wk-fet-delay : Weak-FET entry delay. Controls the delay
|
||||
(in ms) before the Class H algorithm switches to the weak-FET voltage
|
||||
(after the audio falls and remains below the value specified in WKFET_AMP_THLD).
|
||||
|
||||
0 = 0ms
|
||||
1 = 5ms
|
||||
2 = 10ms
|
||||
3 = 50ms
|
||||
4 = 100ms (Default)
|
||||
5 = 200ms
|
||||
6 = 500ms
|
||||
7 = 1000ms
|
||||
|
||||
- cirrus,classh-weak-fet-thld-millivolt : Weak-FET amplifier drive threshold.
|
||||
Configures the signal threshold at which the PWM output stage enters
|
||||
weak-FET operation. The range is 50mV to 700mV in 50mV increments.
|
||||
|
||||
- cirrus,temp-warn-threshold : Amplifier overtemperature warning threshold.
|
||||
Configures the threshold at which the overtemperature warning condition occurs.
|
||||
When the threshold is met, the overtemperature warning attenuation is applied
|
||||
and the TEMP_WARN_EINT interrupt status bit is set.
|
||||
If TEMP_WARN_MASK = 0, INTb is asserted.
|
||||
|
||||
0 = 105C
|
||||
1 = 115C
|
||||
2 = 125C (Default)
|
||||
3 = 135C
|
||||
|
||||
- cirrus,irq-drive-select : Selects the driver type of the selected interrupt
|
||||
output.
|
||||
|
||||
0 = Open-drain
|
||||
1 = Push-pull (Default)
|
||||
|
||||
- cirrus,irq-gpio-select : Selects the pin to serve as the programmable
|
||||
interrupt output.
|
||||
|
||||
0 = PDM_DATA / SWIRE_SD / INT (Default)
|
||||
1 = GPIO
|
||||
|
||||
Optional properties for the "cirrus,vpbr-config" Sub-node
|
||||
|
||||
- cirrus,vpbr-en : VBST brownout prevention enable. Configures whether the
|
||||
VBST brownout prevention algorithm is enabled or disabled.
|
||||
|
||||
0 = VBST brownout prevention disabled (default)
|
||||
1 = VBST brownout prevention enabled
|
||||
|
||||
See Section 7.31.1 VPBR Config for configuration options & further details
|
||||
|
||||
- cirrus,vpbr-thld : Initial VPBR threshold. Configures the VP brownout
|
||||
threshold voltage
|
||||
|
||||
- cirrus,cirrus,vpbr-atk-rate : Attenuation attack step rate. Configures the
|
||||
amount delay between consecutive volume attenuation steps when a brownout
|
||||
condition is present and the VP brownout condition is in an attacking state.
|
||||
|
||||
- cirrus,vpbr-atk-vol : VP brownout prevention step size. Configures the VP
|
||||
brownout prevention attacking attenuation step size when operating in either
|
||||
digital volume or analog gain modes.
|
||||
|
||||
- cirrus,vpbr-max-attn : Maximum attenuation that the VP brownout prevention
|
||||
can apply to the audio signal.
|
||||
|
||||
- cirrus,vpbr-wait : Configures the delay time between a brownout condition
|
||||
no longer being present and the VP brownout prevention entering an attenuation
|
||||
release state.
|
||||
|
||||
- cirrus,vpbr-rel-rate : Attenuation release step rate. Configures the delay
|
||||
between consecutive volume attenuation release steps when a brownout condition
|
||||
is not longer present and the VP brownout is in an attenuation release state.
|
||||
|
||||
- cirrus,vpbr-mute-en : During the attack state, if the vpbr-max-attn value
|
||||
is reached, the error condition still remains, and this bit is set, the audio
|
||||
is muted.
|
||||
|
||||
Example:
|
||||
|
||||
cs35l36: cs35l36@40 {
|
||||
compatible = "cirrus,cs35l36";
|
||||
reg = <0x40>;
|
||||
VA-supply = <&dummy_vreg>;
|
||||
VP-supply = <&dummy_vreg>;
|
||||
reset-gpios = <&gpio0 54 0>;
|
||||
interrupt-parent = <&gpio8>;
|
||||
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
cirrus,boost-ind-nanohenry = <1000>;
|
||||
cirrus,boost-ctl-millivolt = <10000>;
|
||||
cirrus,boost-peak-milliamp = <4500>;
|
||||
cirrus,boost-ctl-select = <0x00>;
|
||||
cirrus,weak-fet-delay = <0x04>;
|
||||
cirrus,weak-fet-thld = <0x01>;
|
||||
cirrus,temp-warn-threshold = <0x01>;
|
||||
cirrus,multi-amp-mode;
|
||||
cirrus,irq-drive-select = <0x01>;
|
||||
cirrus,irq-gpio-select = <0x01>;
|
||||
|
||||
cirrus,vpbr-config {
|
||||
cirrus,vpbr-en = <0x00>;
|
||||
cirrus,vpbr-thld = <0x05>;
|
||||
cirrus,vpbr-atk-rate = <0x02>;
|
||||
cirrus,vpbr-atk-vol = <0x01>;
|
||||
cirrus,vpbr-max-attn = <0x09>;
|
||||
cirrus,vpbr-wait = <0x01>;
|
||||
cirrus,vpbr-rel-rate = <0x05>;
|
||||
cirrus,vpbr-mute-en = <0x00>;
|
||||
};
|
||||
};
|
29
bindings/sound/cs4265.txt
Normal file
29
bindings/sound/cs4265.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
CS4265 audio CODEC
|
||||
|
||||
This device supports I2C only.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "cirrus,cs4265"
|
||||
|
||||
- reg : the I2C address of the device for I2C. The I2C address depends on
|
||||
the state of the AD0 pin. If AD0 is high, the i2c address is 0x4f.
|
||||
If it is low, the i2c address is 0x4e.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpios : a GPIO spec for the reset pin. If specified, it will be
|
||||
deasserted before communication to the codec starts.
|
||||
|
||||
Examples:
|
||||
|
||||
codec_ad0_high: cs4265@4f { /* AD0 Pin is high */
|
||||
compatible = "cirrus,cs4265";
|
||||
reg = <0x4f>;
|
||||
};
|
||||
|
||||
|
||||
codec_ad0_low: cs4265@4e { /* AD0 Pin is low */
|
||||
compatible = "cirrus,cs4265";
|
||||
reg = <0x4e>;
|
||||
};
|
21
bindings/sound/cs4270.txt
Normal file
21
bindings/sound/cs4270.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
CS4270 audio CODEC
|
||||
|
||||
The driver for this device currently only supports I2C.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "cirrus,cs4270"
|
||||
|
||||
- reg : the I2C address of the device for I2C
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpios : a GPIO spec for the reset pin. If specified, it will be
|
||||
deasserted before communication to the codec starts.
|
||||
|
||||
Example:
|
||||
|
||||
codec: cs4270@48 {
|
||||
compatible = "cirrus,cs4270";
|
||||
reg = <0x48>;
|
||||
};
|
57
bindings/sound/cs4271.txt
Normal file
57
bindings/sound/cs4271.txt
Normal file
@@ -0,0 +1,57 @@
|
||||
Cirrus Logic CS4271 DT bindings
|
||||
|
||||
This driver supports both the I2C and the SPI bus.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: "cirrus,cs4271"
|
||||
|
||||
For required properties on SPI, please consult
|
||||
Documentation/devicetree/bindings/spi/spi-bus.txt
|
||||
|
||||
Required properties on I2C:
|
||||
|
||||
- reg: the i2c address
|
||||
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpio: a GPIO spec to define which pin is connected to the chip's
|
||||
!RESET pin
|
||||
- cirrus,amuteb-eq-bmutec: When given, the Codec's AMUTEB=BMUTEC flag
|
||||
is enabled.
|
||||
- cirrus,enable-soft-reset:
|
||||
The CS4271 requires its LRCLK and MCLK to be stable before its RESET
|
||||
line is de-asserted. That also means that clocks cannot be changed
|
||||
without putting the chip back into hardware reset, which also requires
|
||||
a complete re-initialization of all registers.
|
||||
|
||||
One (undocumented) workaround is to assert and de-assert the PDN bit
|
||||
in the MODE2 register. This workaround can be enabled with this DT
|
||||
property.
|
||||
|
||||
Note that this is not needed in case the clocks are stable
|
||||
throughout the entire runtime of the codec.
|
||||
|
||||
- vd-supply: Digital power
|
||||
- vl-supply: Logic power
|
||||
- va-supply: Analog Power
|
||||
|
||||
Examples:
|
||||
|
||||
codec_i2c: cs4271@10 {
|
||||
compatible = "cirrus,cs4271";
|
||||
reg = <0x10>;
|
||||
reset-gpio = <&gpio 23 0>;
|
||||
vd-supply = <&vdd_3v3_reg>;
|
||||
vl-supply = <&vdd_3v3_reg>;
|
||||
va-supply = <&vdd_3v3_reg>;
|
||||
};
|
||||
|
||||
codec_spi: cs4271@0 {
|
||||
compatible = "cirrus,cs4271";
|
||||
reg = <0x0>;
|
||||
reset-gpio = <&gpio 23 0>;
|
||||
spi-max-frequency = <6000000>;
|
||||
};
|
||||
|
46
bindings/sound/cs42l52.txt
Normal file
46
bindings/sound/cs42l52.txt
Normal file
@@ -0,0 +1,46 @@
|
||||
CS42L52 audio CODEC
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "cirrus,cs42l52"
|
||||
|
||||
- reg : the I2C address of the device for I2C
|
||||
|
||||
Optional properties:
|
||||
|
||||
- cirrus,reset-gpio : GPIO controller's phandle and the number
|
||||
of the GPIO used to reset the codec.
|
||||
|
||||
- cirrus,chgfreq-divisor : Values used to set the Charge Pump Frequency.
|
||||
Allowable values of 0x00 through 0x0F. These are raw values written to the
|
||||
register, not the actual frequency. The frequency is determined by the following.
|
||||
Frequency = (64xFs)/(N+2)
|
||||
N = chgfreq_val
|
||||
Fs = Sample Rate (variable)
|
||||
|
||||
- cirrus,mica-differential-cfg : boolean, If present, then the MICA input is configured
|
||||
as a differential input. If not present then the MICA input is configured as
|
||||
Single-ended input. Single-ended mode allows for MIC1 or MIC2 muxing for input.
|
||||
|
||||
- cirrus,micb-differential-cfg : boolean, If present, then the MICB input is configured
|
||||
as a differential input. If not present then the MICB input is configured as
|
||||
Single-ended input. Single-ended mode allows for MIC1 or MIC2 muxing for input.
|
||||
|
||||
- cirrus,micbias-lvl: Set the output voltage level on the MICBIAS Pin
|
||||
0 = 0.5 x VA
|
||||
1 = 0.6 x VA
|
||||
2 = 0.7 x VA
|
||||
3 = 0.8 x VA
|
||||
4 = 0.83 x VA
|
||||
5 = 0.91 x VA
|
||||
|
||||
Example:
|
||||
|
||||
codec: codec@4a {
|
||||
compatible = "cirrus,cs42l52";
|
||||
reg = <0x4a>;
|
||||
reset-gpio = <&gpio 10 0>;
|
||||
cirrus,chgfreq-divisor = <0x05>;
|
||||
cirrus.mica-differential-cfg;
|
||||
cirrus,micbias-lvl = <5>;
|
||||
};
|
63
bindings/sound/cs42l56.txt
Normal file
63
bindings/sound/cs42l56.txt
Normal file
@@ -0,0 +1,63 @@
|
||||
CS42L52 audio CODEC
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "cirrus,cs42l56"
|
||||
|
||||
- reg : the I2C address of the device for I2C
|
||||
|
||||
- VA-supply, VCP-supply, VLDO-supply : power supplies for the device,
|
||||
as covered in Documentation/devicetree/bindings/regulator/regulator.txt.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- cirrus,gpio-nreset : GPIO controller's phandle and the number
|
||||
of the GPIO used to reset the codec.
|
||||
|
||||
- cirrus,chgfreq-divisor : Values used to set the Charge Pump Frequency.
|
||||
Allowable values of 0x00 through 0x0F. These are raw values written to the
|
||||
register, not the actual frequency. The frequency is determined by the following.
|
||||
Frequency = MCLK / 4 * (N+2)
|
||||
N = chgfreq_val
|
||||
MCLK = Where MCLK is the frequency of the mclk signal after the MCLKDIV2 circuit.
|
||||
|
||||
- cirrus,ain1a-ref-cfg, ain1b-ref-cfg : boolean, If present, AIN1A or AIN1B are configured
|
||||
as a pseudo-differential input referenced to AIN1REF/AIN3A.
|
||||
|
||||
- cirrus,ain2a-ref-cfg, ain2b-ref-cfg : boolean, If present, AIN2A or AIN2B are configured
|
||||
as a pseudo-differential input referenced to AIN2REF/AIN3B.
|
||||
|
||||
- cirrus,micbias-lvl: Set the output voltage level on the MICBIAS Pin.
|
||||
0 = 0.5 x VA
|
||||
1 = 0.6 x VA
|
||||
2 = 0.7 x VA
|
||||
3 = 0.8 x VA
|
||||
4 = 0.83 x VA
|
||||
5 = 0.91 x VA
|
||||
|
||||
- cirrus,adaptive-pwr-cfg : Configures how the power to the Headphone and Lineout
|
||||
Amplifiers adapt to the output signal levels.
|
||||
0 = Adapt to Volume Mode. Voltage level determined by the sum of the relevant volume settings.
|
||||
1 = Fixed - Headphone and Line Amp supply = + or - VCP/2.
|
||||
2 = Fixed - Headphone and Line Amp supply = + or - VCP.
|
||||
3 = Adapted to Signal; Voltage level is dynamically determined by the output signal.
|
||||
|
||||
- cirrus,hpf-left-freq, hpf-right-freq : Sets the corner frequency (-3dB point) for the internal High-Pass
|
||||
Filter.
|
||||
0 = 1.8Hz
|
||||
1 = 119Hz
|
||||
2 = 236Hz
|
||||
3 = 464Hz
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
codec: codec@4b {
|
||||
compatible = "cirrus,cs42l56";
|
||||
reg = <0x4b>;
|
||||
cirrus,gpio-nreset = <&gpio 10 0>;
|
||||
cirrus,chgfreq-divisor = <0x05>;
|
||||
cirrus.ain1_ref_cfg;
|
||||
cirrus,micbias-lvl = <5>;
|
||||
VA-supply = <®_audio>;
|
||||
};
|
22
bindings/sound/cs42l73.txt
Normal file
22
bindings/sound/cs42l73.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
CS42L73 audio CODEC
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "cirrus,cs42l73"
|
||||
|
||||
- reg : the I2C address of the device for I2C
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset_gpio : a GPIO spec for the reset pin.
|
||||
- chgfreq : Charge Pump Frequency values 0x00-0x0F
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
codec: cs42l73@4a {
|
||||
compatible = "cirrus,cs42l73";
|
||||
reg = <0x4a>;
|
||||
reset_gpio = <&gpio 10 0>;
|
||||
chgfreq = <0x05>;
|
||||
};
|
34
bindings/sound/cs42xx8.txt
Normal file
34
bindings/sound/cs42xx8.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
CS42448/CS42888 audio CODEC
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : must contain one of "cirrus,cs42448" and "cirrus,cs42888"
|
||||
|
||||
- reg : the I2C address of the device for I2C
|
||||
|
||||
- clocks : a list of phandles + clock-specifiers, one for each entry in
|
||||
clock-names
|
||||
|
||||
- clock-names : must contain "mclk"
|
||||
|
||||
- VA-supply, VD-supply, VLS-supply, VLC-supply: power supplies for the device,
|
||||
as covered in Documentation/devicetree/bindings/regulator/regulator.txt
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpios : a GPIO spec to define which pin is connected to the chip's
|
||||
!RESET pin
|
||||
|
||||
Example:
|
||||
|
||||
cs42888: codec@48 {
|
||||
compatible = "cirrus,cs42888";
|
||||
reg = <0x48>;
|
||||
clocks = <&codec_mclk 0>;
|
||||
clock-names = "mclk";
|
||||
VA-supply = <®_audio>;
|
||||
VD-supply = <®_audio>;
|
||||
VLS-supply = <®_audio>;
|
||||
VLC-supply = <®_audio>;
|
||||
reset-gpios = <&pca9557_b 1 GPIO_ACTIVE_LOW>;
|
||||
};
|
67
bindings/sound/cs43130.txt
Normal file
67
bindings/sound/cs43130.txt
Normal file
@@ -0,0 +1,67 @@
|
||||
CS43130 DAC
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "cirrus,cs43130", "cirrus,cs4399", "cirrus,cs43131",
|
||||
"cirrus,cs43198"
|
||||
|
||||
- reg : the I2C address of the device for I2C
|
||||
|
||||
- VA-supply, VP-supply, VL-supply, VCP-supply, VD-supply:
|
||||
power supplies for the device, as covered in
|
||||
Documentation/devicetree/bindings/regulator/regulator.txt.
|
||||
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpios : Active low GPIO used to reset the device
|
||||
|
||||
- cirrus,xtal-ibias:
|
||||
When external MCLK is generated by external crystal
|
||||
oscillator, CS43130 can be used to provide bias current
|
||||
for external crystal. Amount of bias current sent is
|
||||
set as:
|
||||
1 = 7.5uA
|
||||
2 = 12.5uA
|
||||
3 = 15uA
|
||||
|
||||
- cirrus,dc-measure:
|
||||
Boolean, define to enable headphone DC impedance measurement.
|
||||
|
||||
- cirrus,ac-measure:
|
||||
Boolean, define to enable headphone AC impedance measurement.
|
||||
DC impedance must also be enabled for AC impedance measurement.
|
||||
|
||||
- cirrus,dc-threshold:
|
||||
Define 2 DC impedance thresholds in ohms for HP output control.
|
||||
Default values are 50 and 120 Ohms.
|
||||
|
||||
- cirrus,ac-freq:
|
||||
Define the frequencies at which to measure HP AC impedance.
|
||||
Only used if "cirrus,dc-measure" is defined.
|
||||
Exactly 10 frequencies must be defined.
|
||||
If this properties is undefined, by default,
|
||||
following frequencies are used:
|
||||
<24 43 93 200 431 928 2000 4309 9283 20000>
|
||||
The above frequencies are logarithmically equally spaced.
|
||||
Log base is 10.
|
||||
|
||||
Example:
|
||||
|
||||
cs43130: audio-codec@30 {
|
||||
compatible = "cirrus,cs43130";
|
||||
reg = <0x30>;
|
||||
reset-gpios = <&axi_gpio 54 0>;
|
||||
VA-supply = <&dummy_vreg>;
|
||||
VP-supply = <&dummy_vreg>;
|
||||
VL-supply = <&dummy_vreg>;
|
||||
VCP-supply = <&dummy_vreg>;
|
||||
VD-supply = <&dummy_vreg>;
|
||||
cirrus,xtal-ibias = <2>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <55 8>;
|
||||
cirrus,dc-measure;
|
||||
cirrus,ac-measure;
|
||||
cirrus,dc-threshold = /bits/ 16 <20 100>;
|
||||
cirrus,ac-freq = /bits/ 16 <24 43 93 200 431 928 2000 4309 9283 20000>;
|
||||
};
|
22
bindings/sound/cs4341.txt
Normal file
22
bindings/sound/cs4341.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
Cirrus Logic CS4341 audio DAC
|
||||
|
||||
This device supports both I2C and SPI (configured with pin strapping
|
||||
on the board).
|
||||
|
||||
Required properties:
|
||||
- compatible: "cirrus,cs4341a"
|
||||
- reg : the I2C address of the device for I2C, the chip select
|
||||
number for SPI.
|
||||
|
||||
For required properties on I2C-bus, please consult
|
||||
Documentation/devicetree/bindings/i2c/i2c.txt
|
||||
For required properties on SPI-bus, please consult
|
||||
Documentation/devicetree/bindings/spi/spi-bus.txt
|
||||
|
||||
Example:
|
||||
codec: cs4341@0 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "cirrus,cs4341a";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <6000000>;
|
||||
};
|
19
bindings/sound/cs4349.txt
Normal file
19
bindings/sound/cs4349.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
CS4349 audio CODEC
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "cirrus,cs4349"
|
||||
|
||||
- reg : the I2C address of the device for I2C
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpios : a GPIO spec for the reset pin.
|
||||
|
||||
Example:
|
||||
|
||||
codec: cs4349@48 {
|
||||
compatible = "cirrus,cs4349";
|
||||
reg = <0x48>;
|
||||
reset-gpios = <&gpio 54 0>;
|
||||
};
|
44
bindings/sound/cs53l30.txt
Normal file
44
bindings/sound/cs53l30.txt
Normal file
@@ -0,0 +1,44 @@
|
||||
CS53L30 audio CODEC
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "cirrus,cs53l30"
|
||||
|
||||
- reg : the I2C address of the device
|
||||
|
||||
- VA-supply, VP-supply : power supplies for the device,
|
||||
as covered in Documentation/devicetree/bindings/regulator/regulator.txt.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpios : a GPIO spec for the reset pin.
|
||||
|
||||
- mute-gpios : a GPIO spec for the MUTE pin. The active state can be either
|
||||
GPIO_ACTIVE_HIGH or GPIO_ACTIVE_LOW, which would be handled
|
||||
by the driver automatically.
|
||||
|
||||
- cirrus,micbias-lvl : Set the output voltage level on the MICBIAS Pin.
|
||||
0 = Hi-Z
|
||||
1 = 1.80 V
|
||||
2 = 2.75 V
|
||||
|
||||
- cirrus,use-sdout2 : This is a boolean property. If present, it indicates
|
||||
the hardware design connects both SDOUT1 and SDOUT2
|
||||
pins to output data. Otherwise, it indicates that
|
||||
only SDOUT1 is connected for data output.
|
||||
* CS53l30 supports 4-channel data output in the same
|
||||
* frame using two different ways:
|
||||
* 1) Normal I2S mode on two data pins -- each SDOUT
|
||||
* carries 2-channel data in the same time.
|
||||
* 2) TDM mode on one signle data pin -- SDOUT1 carries
|
||||
* 4-channel data per frame.
|
||||
|
||||
Example:
|
||||
|
||||
codec: cs53l30@48 {
|
||||
compatible = "cirrus,cs53l30";
|
||||
reg = <0x48>;
|
||||
reset-gpios = <&gpio 54 0>;
|
||||
VA-supply = <&cs53l30_va>;
|
||||
VP-supply = <&cs53l30_vp>;
|
||||
};
|
45
bindings/sound/da7213.txt
Normal file
45
bindings/sound/da7213.txt
Normal file
@@ -0,0 +1,45 @@
|
||||
Dialog Semiconductor DA7212/DA7213 Audio Codec bindings
|
||||
|
||||
======
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "dlg,da7212" or "dlg,da7213"
|
||||
- reg: Specifies the I2C slave address
|
||||
|
||||
Optional properties:
|
||||
- clocks : phandle and clock specifier for codec MCLK.
|
||||
- clock-names : Clock name string for 'clocks' attribute, should be "mclk".
|
||||
|
||||
- dlg,micbias1-lvl : Voltage (mV) for Mic Bias 1
|
||||
[<1600>, <2200>, <2500>, <3000>]
|
||||
- dlg,micbias2-lvl : Voltage (mV) for Mic Bias 2
|
||||
[<1600>, <2200>, <2500>, <3000>]
|
||||
- dlg,dmic-data-sel : DMIC channel select based on clock edge.
|
||||
["lrise_rfall", "lfall_rrise"]
|
||||
- dlg,dmic-samplephase : When to sample audio from DMIC.
|
||||
["on_clkedge", "between_clkedge"]
|
||||
- dlg,dmic-clkrate : DMIC clock frequency (Hz).
|
||||
[<1500000>, <3000000>]
|
||||
|
||||
- VDDA-supply : Regulator phandle for Analogue power supply
|
||||
- VDDMIC-supply : Regulator phandle for Mic Bias
|
||||
- VDDIO-supply : Regulator phandle for I/O power supply
|
||||
|
||||
======
|
||||
|
||||
Example:
|
||||
|
||||
codec_i2c: da7213@1a {
|
||||
compatible = "dlg,da7213";
|
||||
reg = <0x1a>;
|
||||
|
||||
clocks = <&clks 201>;
|
||||
clock-names = "mclk";
|
||||
|
||||
dlg,micbias1-lvl = <2500>;
|
||||
dlg,micbias2-lvl = <2500>;
|
||||
|
||||
dlg,dmic-data-sel = "lrise_rfall";
|
||||
dlg,dmic-samplephase = "between_clkedge";
|
||||
dlg,dmic-clkrate = <3000000>;
|
||||
};
|
102
bindings/sound/da7218.txt
Normal file
102
bindings/sound/da7218.txt
Normal file
@@ -0,0 +1,102 @@
|
||||
Dialog Semiconductor DA7218 Audio Codec bindings
|
||||
|
||||
DA7218 is an audio codec with HP detect feature.
|
||||
|
||||
======
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "dlg,da7217" or "dlg,da7218"
|
||||
- reg: Specifies the I2C slave address
|
||||
|
||||
- VDD-supply: VDD power supply for the device
|
||||
- VDDMIC-supply: VDDMIC power supply for the device
|
||||
- VDDIO-supply: VDDIO power supply for the device
|
||||
(See Documentation/devicetree/bindings/regulator/regulator.txt for further
|
||||
information relating to regulators)
|
||||
|
||||
Optional properties:
|
||||
- interrupts: IRQ line info for DA7218 chip.
|
||||
(See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt for
|
||||
further information relating to interrupt properties)
|
||||
- interrupt-names : Name associated with interrupt line. Should be "wakeup" if
|
||||
interrupt is to be used to wake system, otherwise "irq" should be used.
|
||||
- wakeup-source: Flag to indicate this device can wake system (suspend/resume).
|
||||
|
||||
- clocks : phandle and clock specifier for codec MCLK.
|
||||
- clock-names : Clock name string for 'clocks' attribute, should be "mclk".
|
||||
|
||||
- dlg,micbias1-lvl-millivolt : Voltage (mV) for Mic Bias 1
|
||||
[<1200>, <1600>, <1800>, <2000>, <2200>, <2400>, <2600>, <2800>, <3000>]
|
||||
- dlg,micbias2-lvl-millivolt : Voltage (mV) for Mic Bias 2
|
||||
[<1200>, <1600>, <1800>, <2000>, <2200>, <2400>, <2600>, <2800>, <3000>]
|
||||
- dlg,mic1-amp-in-sel : Mic1 input source type
|
||||
["diff", "se_p", "se_n"]
|
||||
- dlg,mic2-amp-in-sel : Mic2 input source type
|
||||
["diff", "se_p", "se_n"]
|
||||
- dlg,dmic1-data-sel : DMIC1 channel select based on clock edge.
|
||||
["lrise_rfall", "lfall_rrise"]
|
||||
- dlg,dmic1-samplephase : When to sample audio from DMIC1.
|
||||
["on_clkedge", "between_clkedge"]
|
||||
- dlg,dmic1-clkrate-hz : DMic1 clock frequency (Hz).
|
||||
[<1500000>, <3000000>]
|
||||
- dlg,dmic2-data-sel : DMic2 channel select based on clock edge.
|
||||
["lrise_rfall", "lfall_rrise"]
|
||||
- dlg,dmic2-samplephase : When to sample audio from DMic2.
|
||||
["on_clkedge", "between_clkedge"]
|
||||
- dlg,dmic2-clkrate-hz : DMic2 clock frequency (Hz).
|
||||
[<1500000>, <3000000>]
|
||||
- dlg,hp-diff-single-supply : Boolean flag, use single supply for HP
|
||||
(DA7217 only)
|
||||
|
||||
======
|
||||
|
||||
Optional Child node - 'da7218_hpldet' (DA7218 only):
|
||||
|
||||
Optional properties:
|
||||
- dlg,jack-rate-us : Time between jack detect measurements (us)
|
||||
[<5>, <10>, <20>, <40>, <80>, <160>, <320>, <640>]
|
||||
- dlg,jack-debounce : Number of debounce measurements taken for jack detect
|
||||
[<0>, <2>, <3>, <4>]
|
||||
- dlg,jack-threshold-pct : Threshold level for jack detection (% of VDD)
|
||||
[<84>, <88>, <92>, <96>]
|
||||
- dlg,comp-inv : Boolean flag, invert comparator output
|
||||
- dlg,hyst : Boolean flag, enable hysteresis
|
||||
- dlg,discharge : Boolean flag, auto discharge of Mic Bias on jack removal
|
||||
|
||||
======
|
||||
|
||||
Example:
|
||||
|
||||
codec: da7218@1a {
|
||||
compatible = "dlg,da7218";
|
||||
reg = <0x1a>;
|
||||
interrupt-parent = <&gpio6>;
|
||||
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
|
||||
wakeup-source;
|
||||
|
||||
VDD-supply = <®_audio>;
|
||||
VDDMIC-supply = <®_audio>;
|
||||
VDDIO-supply = <®_audio>;
|
||||
|
||||
clocks = <&clks 201>;
|
||||
clock-names = "mclk";
|
||||
|
||||
dlg,micbias1-lvl-millivolt = <2600>;
|
||||
dlg,micbias2-lvl-millivolt = <2600>;
|
||||
dlg,mic1-amp-in-sel = "diff";
|
||||
dlg,mic2-amp-in-sel = "diff";
|
||||
|
||||
dlg,dmic1-data-sel = "lrise_rfall";
|
||||
dlg,dmic1-samplephase = "on_clkedge";
|
||||
dlg,dmic1-clkrate-hz = <3000000>;
|
||||
dlg,dmic2-data-sel = "lrise_rfall";
|
||||
dlg,dmic2-samplephase = "on_clkedge";
|
||||
dlg,dmic2-clkrate-hz = <3000000>;
|
||||
|
||||
da7218_hpldet {
|
||||
dlg,jack-rate-us = <40>;
|
||||
dlg,jack-debounce = <2>;
|
||||
dlg,jack-threshold-pct = <84>;
|
||||
dlg,hyst;
|
||||
};
|
||||
};
|
112
bindings/sound/da7219.txt
Normal file
112
bindings/sound/da7219.txt
Normal file
@@ -0,0 +1,112 @@
|
||||
Dialog Semiconductor DA7219 Audio Codec bindings
|
||||
|
||||
DA7219 is an audio codec with advanced accessory detect features.
|
||||
|
||||
======
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "dlg,da7219"
|
||||
- reg: Specifies the I2C slave address
|
||||
|
||||
- interrupts : IRQ line info for DA7219.
|
||||
(See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt for
|
||||
further information relating to interrupt properties)
|
||||
|
||||
- VDD-supply: VDD power supply for the device
|
||||
- VDDMIC-supply: VDDMIC power supply for the device
|
||||
- VDDIO-supply: VDDIO power supply for the device
|
||||
(See Documentation/devicetree/bindings/regulator/regulator.txt for further
|
||||
information relating to regulators)
|
||||
|
||||
Optional properties:
|
||||
- interrupt-names : Name associated with interrupt line. Should be "wakeup" if
|
||||
interrupt is to be used to wake system, otherwise "irq" should be used.
|
||||
- wakeup-source: Flag to indicate this device can wake system (suspend/resume).
|
||||
|
||||
- #clock-cells : Should be set to '<1>', two clock sources provided;
|
||||
- clock-output-names : Names given for DAI clock outputs (WCLK & BCLK);
|
||||
|
||||
- clocks : phandle and clock specifier for codec MCLK.
|
||||
- clock-names : Clock name string for 'clocks' attribute, should be "mclk".
|
||||
|
||||
- dlg,micbias-lvl : Voltage (mV) for Mic Bias
|
||||
[<1600>, <1800>, <2000>, <2200>, <2400>, <2600>]
|
||||
- dlg,mic-amp-in-sel : Mic input source type
|
||||
["diff", "se_p", "se_n"]
|
||||
|
||||
Deprecated properties:
|
||||
- dlg,ldo-lvl : Required internal LDO voltage (mV) level for digital engine
|
||||
(LDO unavailable in production HW so property no longer required).
|
||||
|
||||
======
|
||||
|
||||
Child node - 'da7219_aad':
|
||||
|
||||
Optional properties:
|
||||
- dlg,micbias-pulse-lvl : Mic bias higher voltage pulse level (mV).
|
||||
[<2800>, <2900>]
|
||||
- dlg,micbias-pulse-time : Mic bias higher voltage pulse duration (ms)
|
||||
- dlg,btn-cfg : Periodic button press measurements for 4-pole jack (ms)
|
||||
[<2>, <5>, <10>, <50>, <100>, <200>, <500>]
|
||||
- dlg,mic-det-thr : Impedance threshold for mic detection measurement (Ohms)
|
||||
[<200>, <500>, <750>, <1000>]
|
||||
- dlg,jack-ins-deb : Debounce time for jack insertion (ms)
|
||||
[<5>, <10>, <20>, <50>, <100>, <200>, <500>, <1000>]
|
||||
- dlg,jack-det-rate: Jack type detection latency (3/4 pole)
|
||||
["32ms_64ms", "64ms_128ms", "128ms_256ms", "256ms_512ms"]
|
||||
- dlg,jack-rem-deb : Debounce time for jack removal (ms)
|
||||
[<1>, <5>, <10>, <20>]
|
||||
- dlg,a-d-btn-thr : Impedance threshold between buttons A and D
|
||||
[0x0 - 0xFF]
|
||||
- dlg,d-b-btn-thr : Impedance threshold between buttons D and B
|
||||
[0x0 - 0xFF]
|
||||
- dlg,b-c-btn-thr : Impedance threshold between buttons B and C
|
||||
[0x0 - 0xFF]
|
||||
- dlg,c-mic-btn-thr : Impedance threshold between button C and Mic
|
||||
[0x0 - 0xFF]
|
||||
- dlg,btn-avg : Number of 8-bit readings for averaged button measurement
|
||||
[<1>, <2>, <4>, <8>]
|
||||
- dlg,adc-1bit-rpt : Repeat count for 1-bit button measurement
|
||||
[<1>, <2>, <4>, <8>]
|
||||
|
||||
======
|
||||
|
||||
Example:
|
||||
|
||||
codec: da7219@1a {
|
||||
compatible = "dlg,da7219";
|
||||
reg = <0x1a>;
|
||||
|
||||
interrupt-parent = <&gpio6>;
|
||||
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
VDD-supply = <®_audio>;
|
||||
VDDMIC-supply = <®_audio>;
|
||||
VDDIO-supply = <®_audio>;
|
||||
|
||||
#clock-cells = <1>;
|
||||
clock-output-names = "dai-wclk", "dai-bclk";
|
||||
|
||||
clocks = <&clks 201>;
|
||||
clock-names = "mclk";
|
||||
|
||||
dlg,ldo-lvl = <1200>;
|
||||
dlg,micbias-lvl = <2600>;
|
||||
dlg,mic-amp-in-sel = "diff";
|
||||
|
||||
da7219_aad {
|
||||
dlg,btn-cfg = <50>;
|
||||
dlg,mic-det-thr = <500>;
|
||||
dlg,jack-ins-deb = <20>;
|
||||
dlg,jack-det-rate = "32ms_64ms";
|
||||
dlg,jack-rem-deb = <1>;
|
||||
|
||||
dlg,a-d-btn-thr = <0xa>;
|
||||
dlg,d-b-btn-thr = <0x16>;
|
||||
dlg,b-c-btn-thr = <0x21>;
|
||||
dlg,c-mic-btn-thr = <0x3E>;
|
||||
|
||||
dlg,btn-avg = <4>;
|
||||
dlg,adc-1bit-rpt = <1>;
|
||||
};
|
||||
};
|
22
bindings/sound/da9055.txt
Normal file
22
bindings/sound/da9055.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
* Dialog DA9055 Audio CODEC
|
||||
|
||||
DA9055 provides Audio CODEC support (I2C only).
|
||||
|
||||
The Audio CODEC device in DA9055 has its own I2C address which is configurable,
|
||||
so the device is instantiated separately from the PMIC (MFD) device.
|
||||
|
||||
For details on accompanying PMIC I2C device, see the following:
|
||||
Documentation/devicetree/bindings/mfd/da9055.txt
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: "dlg,da9055-codec"
|
||||
- reg: Specifies the I2C slave address
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
codec: da9055-codec@1a {
|
||||
compatible = "dlg,da9055-codec";
|
||||
reg = <0x1a>;
|
||||
};
|
40
bindings/sound/dai-params.yaml
Normal file
40
bindings/sound/dai-params.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/dai-params.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Digital Audio Interface (DAI) Stream Parameters
|
||||
|
||||
maintainers:
|
||||
- Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
|
||||
|
||||
select: false
|
||||
|
||||
$defs:
|
||||
|
||||
dai-channels:
|
||||
description: Number of audio channels used by DAI
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 32
|
||||
|
||||
dai-sample-format:
|
||||
description: Audio sample format used by DAI
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
enum:
|
||||
- s8
|
||||
- s16_le
|
||||
- s24_le
|
||||
- s24_3le
|
||||
- s32_le
|
||||
|
||||
dai-sample-rate:
|
||||
description: Audio sample rate used by DAI
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 8000
|
||||
maximum: 192000
|
||||
|
||||
properties: {}
|
||||
|
||||
additionalProperties: true
|
49
bindings/sound/davinci-evm-audio.txt
Normal file
49
bindings/sound/davinci-evm-audio.txt
Normal file
@@ -0,0 +1,49 @@
|
||||
* Texas Instruments SoC audio setups with TLV320AIC3X Codec
|
||||
|
||||
Required properties:
|
||||
- compatible : "ti,da830-evm-audio" : forDM365/DA8xx/OMAPL1x/AM33xx
|
||||
- ti,model : The user-visible name of this sound complex.
|
||||
- ti,audio-codec : The phandle of the TLV320AIC3x audio codec
|
||||
- ti,mcasp-controller : The phandle of the McASP controller
|
||||
- ti,audio-routing : A list of the connections between audio components.
|
||||
Each entry is a pair of strings, the first being the connection's sink,
|
||||
the second being the connection's source. Valid names for sources and
|
||||
sinks are the codec's pins, and the jacks on the board:
|
||||
|
||||
Optional properties:
|
||||
- ti,codec-clock-rate : The Codec Clock rate (in Hz) applied to the Codec.
|
||||
- clocks : Reference to the master clock
|
||||
- clock-names : The clock should be named "mclk"
|
||||
- Either codec-clock-rate or the codec-clock reference has to be defined. If
|
||||
the both are defined the driver attempts to set referenced clock to the
|
||||
defined rate and takes the rate from the clock reference.
|
||||
|
||||
Board connectors:
|
||||
|
||||
* Headphone Jack
|
||||
* Line Out
|
||||
* Mic Jack
|
||||
* Line In
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
sound {
|
||||
compatible = "ti,da830-evm-audio";
|
||||
ti,model = "DA830 EVM";
|
||||
ti,audio-codec = <&tlv320aic3x>;
|
||||
ti,mcasp-controller = <&mcasp1>;
|
||||
ti,codec-clock-rate = <12000000>;
|
||||
ti,audio-routing =
|
||||
"Headphone Jack", "HPLOUT",
|
||||
"Headphone Jack", "HPROUT",
|
||||
"Line Out", "LLOUT",
|
||||
"Line Out", "RLOUT",
|
||||
"MIC3L", "Mic Bias 2V",
|
||||
"MIC3R", "Mic Bias 2V",
|
||||
"Mic Bias 2V", "Mic Jack",
|
||||
"LINE1L", "Line In",
|
||||
"LINE2L", "Line In",
|
||||
"LINE1R", "Line In",
|
||||
"LINE2R", "Line In";
|
||||
};
|
201
bindings/sound/davinci-mcasp-audio.yaml
Normal file
201
bindings/sound/davinci-mcasp-audio.yaml
Normal file
@@ -0,0 +1,201 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/davinci-mcasp-audio.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: McASP Controller for TI SoCs
|
||||
|
||||
maintainers:
|
||||
- Jayesh Choudhary <j-choudhary@ti.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- ti,dm646x-mcasp-audio
|
||||
- ti,da830-mcasp-audio
|
||||
- ti,am33xx-mcasp-audio
|
||||
- ti,dra7-mcasp-audio
|
||||
- ti,omap4-mcasp-audio
|
||||
|
||||
reg:
|
||||
minItems: 1
|
||||
items:
|
||||
- description: CFG registers
|
||||
- description: data registers
|
||||
|
||||
reg-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: mpu
|
||||
- const: dat
|
||||
|
||||
op-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: 0 - I2S or 1 - DIT operation mode
|
||||
enum:
|
||||
- 0
|
||||
- 1
|
||||
|
||||
tdm-slots:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
number of channels over one serializer
|
||||
the property is ignored in DIT mode
|
||||
minimum: 2
|
||||
maximum: 32
|
||||
|
||||
serial-dir:
|
||||
description:
|
||||
A list of serializer configuration
|
||||
Entry is indication for serializer pin direction
|
||||
0 - Inactive, 1 - TX, 2 - RX
|
||||
All AXR pins should be present in the array even if inactive
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
minItems: 1
|
||||
maxItems: 25
|
||||
items:
|
||||
minimum: 0
|
||||
maximum: 2
|
||||
|
||||
dmas:
|
||||
minItems: 1
|
||||
items:
|
||||
- description: transmission DMA channel
|
||||
- description: reception DMA channel
|
||||
|
||||
dma-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: tx
|
||||
- const: rx
|
||||
|
||||
ti,hwmods:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description: Name of hwmod associated with McASP
|
||||
maxItems: 1
|
||||
deprecated: true
|
||||
|
||||
tx-num-evt:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
configures WFIFO threshold
|
||||
0 disables the FIFO use
|
||||
if property is missing, then also FIFO use is disabled
|
||||
|
||||
rx-num-evt:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
configures RFIFO threshold
|
||||
0 disables the FIFO use
|
||||
if property is missing, then also FIFO use is disabled
|
||||
|
||||
dismod:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
specify the drive on TX pin during inactive time slots
|
||||
0 - 3-state, 2 - logic low, 3 - logic high
|
||||
enum:
|
||||
- 0
|
||||
- 2
|
||||
- 3
|
||||
default: 2
|
||||
|
||||
interrupts:
|
||||
anyOf:
|
||||
- minItems: 1
|
||||
items:
|
||||
- description: TX interrupt
|
||||
- description: RX interrupt
|
||||
- items:
|
||||
- description: common/combined interrupt
|
||||
|
||||
interrupt-names:
|
||||
oneOf:
|
||||
- minItems: 1
|
||||
items:
|
||||
- const: tx
|
||||
- const: rx
|
||||
- const: common
|
||||
|
||||
fck_parent:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description: parent clock name for McASP fck
|
||||
maxItems: 1
|
||||
|
||||
auxclk-fs-ratio:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: ratio of AUCLK and FS rate if applicable
|
||||
|
||||
gpio-controller: true
|
||||
|
||||
"#gpio-cells":
|
||||
const: 2
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
items:
|
||||
- description: functional clock
|
||||
- description: module specific optional ahclkx clock
|
||||
- description: module specific optional ahclkr clock
|
||||
|
||||
clock-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: fck
|
||||
- const: ahclkx
|
||||
- const: ahclkr
|
||||
|
||||
power-domains:
|
||||
description: phandle to the corresponding power-domain
|
||||
maxItems: 1
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
port:
|
||||
description: connection for when McASP is used via graph card
|
||||
type: object
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- reg-names
|
||||
- dmas
|
||||
- dma-names
|
||||
- interrupts
|
||||
- interrupt-names
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
opmode:
|
||||
enum:
|
||||
- 0
|
||||
|
||||
then:
|
||||
required:
|
||||
- tdm-slots
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
mcasp0: mcasp0@1d00000 {
|
||||
compatible = "ti,da830-mcasp-audio";
|
||||
reg = <0x100000 0x3000>;
|
||||
reg-names = "mpu";
|
||||
interrupts = <82>, <83>;
|
||||
interrupt-names = "tx", "rx";
|
||||
op-mode = <0>; /* MCASP_IIS_MODE */
|
||||
tdm-slots = <2>;
|
||||
dmas = <&main_udmap 0xc400>, <&main_udmap 0x4400>;
|
||||
dma-names = "tx", "rx";
|
||||
serial-dir = <
|
||||
0 0 0 0 /* 0: INACTIVE, 1: TX, 2: RX */
|
||||
0 0 0 0
|
||||
0 0 0 1
|
||||
2 0 0 0 >;
|
||||
tx-num-evt = <1>;
|
||||
rx-num-evt = <1>;
|
||||
};
|
50
bindings/sound/davinci-mcbsp.txt
Normal file
50
bindings/sound/davinci-mcbsp.txt
Normal file
@@ -0,0 +1,50 @@
|
||||
Texas Instruments DaVinci McBSP module
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This binding describes the "Multi-channel Buffered Serial Port" (McBSP)
|
||||
audio interface found in some TI DaVinci processors like the OMAP-L138 or AM180x.
|
||||
|
||||
|
||||
Required properties:
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
- compatible :
|
||||
"ti,da850-mcbsp" : for DA850, AM180x and OPAM-L138 platforms
|
||||
|
||||
- reg : physical base address and length of the controller memory mapped
|
||||
region(s).
|
||||
- reg-names : Should contain:
|
||||
* "mpu" for the main registers (required).
|
||||
* "dat" for the data FIFO (optional).
|
||||
|
||||
- dmas: three element list of DMA controller phandles, DMA request line and
|
||||
TC channel ordered triplets.
|
||||
- dma-names: identifier string for each DMA request line in the dmas property.
|
||||
These strings correspond 1:1 with the ordered pairs in dmas. The dma
|
||||
identifiers must be "rx" and "tx".
|
||||
|
||||
Optional properties:
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
- interrupts : Interrupt numbers for McBSP
|
||||
- interrupt-names : Known interrupt names are "rx" and "tx"
|
||||
|
||||
- pinctrl-0: Should specify pin control group used for this controller.
|
||||
- pinctrl-names: Should contain only one value - "default", for more details
|
||||
please refer to pinctrl-bindings.txt
|
||||
|
||||
Example (AM1808):
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
mcbsp0: mcbsp@1d10000 {
|
||||
compatible = "ti,da850-mcbsp";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mcbsp0_pins>;
|
||||
|
||||
reg = <0x00110000 0x1000>,
|
||||
<0x00310000 0x1000>;
|
||||
reg-names = "mpu", "dat";
|
||||
interrupts = <97 98>;
|
||||
interrupt-names = "rx", "tx";
|
||||
dmas = <&edma0 3 1
|
||||
&edma0 2 1>;
|
||||
dma-names = "tx", "rx";
|
||||
};
|
22
bindings/sound/dmic.txt
Normal file
22
bindings/sound/dmic.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
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>;
|
||||
};
|
38
bindings/sound/es8328.txt
Normal file
38
bindings/sound/es8328.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
Everest ES8328 audio CODEC
|
||||
|
||||
This device supports both I2C and SPI.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : Should be "everest,es8328" or "everest,es8388"
|
||||
- DVDD-supply : Regulator providing digital core supply voltage 1.8 - 3.6V
|
||||
- AVDD-supply : Regulator providing analog supply voltage 3.3V
|
||||
- PVDD-supply : Regulator providing digital IO supply voltage 1.8 - 3.6V
|
||||
- IPVDD-supply : Regulator providing analog output voltage 3.3V
|
||||
- clocks : A 22.5792 or 11.2896 MHz clock
|
||||
- reg : the I2C address of the device for I2C, the chip select number for SPI
|
||||
|
||||
Pins on the device (for linking into audio routes):
|
||||
|
||||
* LOUT1
|
||||
* LOUT2
|
||||
* ROUT1
|
||||
* ROUT2
|
||||
* LINPUT1
|
||||
* RINPUT1
|
||||
* LINPUT2
|
||||
* RINPUT2
|
||||
* Mic Bias
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
codec: es8328@11 {
|
||||
compatible = "everest,es8328";
|
||||
DVDD-supply = <®_3p3v>;
|
||||
AVDD-supply = <®_3p3v>;
|
||||
PVDD-supply = <®_3p3v>;
|
||||
HPVDD-supply = <®_3p3v>;
|
||||
clocks = <&clks 169>;
|
||||
reg = <0x11>;
|
||||
};
|
26
bindings/sound/eukrea-tlv320.txt
Normal file
26
bindings/sound/eukrea-tlv320.txt
Normal file
@@ -0,0 +1,26 @@
|
||||
Audio complex for Eukrea boards with tlv320aic23 codec.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "eukrea,asoc-tlv320"
|
||||
|
||||
- eukrea,model : The user-visible name of this sound complex.
|
||||
|
||||
- ssi-controller : The phandle of the SSI controller.
|
||||
|
||||
- fsl,mux-int-port : The internal port of the i.MX audio muxer (AUDMUX).
|
||||
|
||||
- fsl,mux-ext-port : The external port of the i.MX audio muxer.
|
||||
|
||||
Note: The AUDMUX port numbering should start at 1, which is consistent with
|
||||
hardware manual.
|
||||
|
||||
Example:
|
||||
|
||||
sound {
|
||||
compatible = "eukrea,asoc-tlv320";
|
||||
eukrea,model = "imx51-eukrea-tlv320aic23";
|
||||
ssi-controller = <&ssi2>;
|
||||
fsl,mux-int-port = <2>;
|
||||
fsl,mux-ext-port = <3>;
|
||||
};
|
15
bindings/sound/everest,es7134.txt
Normal file
15
bindings/sound/everest,es7134.txt
Normal file
@@ -0,0 +1,15 @@
|
||||
ES7134 i2s DA converter
|
||||
|
||||
Required properties:
|
||||
- compatible : "everest,es7134" or
|
||||
"everest,es7144" or
|
||||
"everest,es7154"
|
||||
- VDD-supply : regulator phandle for the VDD supply
|
||||
- PVDD-supply: regulator phandle for the PVDD supply for the es7154
|
||||
|
||||
Example:
|
||||
|
||||
i2s_codec: external-codec {
|
||||
compatible = "everest,es7134";
|
||||
VDD-supply = <&vcc_5v>;
|
||||
};
|
28
bindings/sound/everest,es7241.txt
Normal file
28
bindings/sound/everest,es7241.txt
Normal file
@@ -0,0 +1,28 @@
|
||||
ES7241 i2s AD converter
|
||||
|
||||
Required properties:
|
||||
- compatible : "everest,es7241"
|
||||
- VDDP-supply: regulator phandle for the VDDA supply
|
||||
- VDDA-supply: regulator phandle for the VDDP supply
|
||||
- VDDD-supply: regulator phandle for the VDDD supply
|
||||
|
||||
Optional properties:
|
||||
- reset-gpios: gpio connected to the reset pin
|
||||
- m0-gpios : gpio connected to the m0 pin
|
||||
- m1-gpios : gpio connected to the m1 pin
|
||||
- everest,sdout-pull-down:
|
||||
Format used by the serial interface is controlled by pulling
|
||||
the sdout. If the sdout is pulled down, leftj format is used.
|
||||
If this property is not provided, sdout is assumed to pulled
|
||||
up and i2s format is used
|
||||
|
||||
Example:
|
||||
|
||||
linein: audio-codec@2 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "everest,es7241";
|
||||
VDDA-supply = <&vcc_3v3>;
|
||||
VDDP-supply = <&vcc_3v3>;
|
||||
VDDD-supply = <&vcc_3v3>;
|
||||
reset-gpios = <&gpio GPIOH_42>;
|
||||
};
|
50
bindings/sound/everest,es8316.yaml
Normal file
50
bindings/sound/everest,es8316.yaml
Normal file
@@ -0,0 +1,50 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/everest,es8316.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Everest ES8316 audio CODEC
|
||||
|
||||
maintainers:
|
||||
- Daniel Drake <drake@endlessm.com>
|
||||
- Katsuhiro Suzuki <katsuhiro@katsuster.net>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: everest,es8316
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: clock for master clock (MCLK)
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: mclk
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#sound-dai-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
es8316: codec@11 {
|
||||
compatible = "everest,es8316";
|
||||
reg = <0x11>;
|
||||
clocks = <&clks 10>;
|
||||
clock-names = "mclk";
|
||||
#sound-dai-cells = <0>;
|
||||
};
|
||||
};
|
116
bindings/sound/everest,es8326.yaml
Executable file
116
bindings/sound/everest,es8326.yaml
Executable file
@@ -0,0 +1,116 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/everest,es8326.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Everest ES8326 audio CODEC
|
||||
|
||||
maintainers:
|
||||
- David Yang <yangxiaohua@everest-semi.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: everest,es8326
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: clock for master clock (MCLK)
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: mclk
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
everest,jack-pol:
|
||||
$ref: /schemas/types.yaml#/definitions/uint8
|
||||
description: |
|
||||
just the value of reg 57. Bit(3) decides whether the jack polarity is inverted.
|
||||
Bit(2) decides whether the button on the headset is inverted.
|
||||
Bit(1)/(0) decides the mic properity to be OMTP/CTIA or auto.
|
||||
minimum: 0x00
|
||||
maximum: 0x0f
|
||||
default: 0x0f
|
||||
|
||||
everest,mic1-src:
|
||||
$ref: /schemas/types.yaml#/definitions/uint8
|
||||
description:
|
||||
the value of reg 2A when headset plugged.
|
||||
minimum: 0x00
|
||||
maximum: 0x77
|
||||
default: 0x22
|
||||
|
||||
everest,mic2-src:
|
||||
$ref: /schemas/types.yaml#/definitions/uint8
|
||||
description:
|
||||
the value of reg 2A when headset unplugged.
|
||||
minimum: 0x00
|
||||
maximum: 0x77
|
||||
default: 0x44
|
||||
|
||||
everest,jack-detect-inverted:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description:
|
||||
Defined to invert the jack detection.
|
||||
|
||||
everest,interrupt-src:
|
||||
$ref: /schemas/types.yaml#/definitions/uint8
|
||||
description: |
|
||||
value of reg 0x58, Defines the interrupt source.
|
||||
Bit(2) 1 means button press triggers irq, 0 means not.
|
||||
Bit(3) 1 means PIN9 is the irq source for jack detection. When set to 0,
|
||||
bias change on PIN9 do not triggers irq.
|
||||
Bit(4) 1 means PIN27 is the irq source for jack detection.
|
||||
Bit(5) 1 means PIN9 is the irq source after MIC detect.
|
||||
Bit(6) 1 means PIN27 is the irq source after MIC detect.
|
||||
minimum: 0
|
||||
maximum: 0x3c
|
||||
default: 0x08
|
||||
|
||||
everest,interrupt-clk:
|
||||
$ref: /schemas/types.yaml#/definitions/uint8
|
||||
description: |
|
||||
value of reg 0x59, Defines the interrupt output behavior.
|
||||
Bit(0-3) 0 means irq pulse equals 512*internal clock
|
||||
1 means irq pulse equals 1024*internal clock
|
||||
2 means ...
|
||||
7 means irq pulse equals 65536*internal clock
|
||||
8 means irq mutes PA
|
||||
9 means irq mutes PA and DAC output
|
||||
Bit(4) 1 means we invert the interrupt output.
|
||||
Bit(6) 1 means the chip do not detect jack type after button released.
|
||||
0 means the chip detect jack type again after button released.
|
||||
minimum: 0
|
||||
maximum: 0x7f
|
||||
default: 0x45
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#sound-dai-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
es8326: codec@19 {
|
||||
compatible = "everest,es8326";
|
||||
reg = <0x19>;
|
||||
clocks = <&clks 10>;
|
||||
clock-names = "mclk";
|
||||
#sound-dai-cells = <0>;
|
||||
everest,mic1-src = [22];
|
||||
everest,mic2-src = [44];
|
||||
everest,jack-pol = [0e];
|
||||
everest,interrupt-src = [08];
|
||||
everest,interrupt-clk = [45];
|
||||
};
|
||||
};
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user