xref: /freebsd/sys/contrib/device-tree/Bindings/sound/ti,tlv320aic3x.yaml (revision 725a9f47324d42037db93c27ceb40d4956872f3e)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2# Copyright (C) 2022 Texas Instruments Incorporated
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/sound/ti,tlv320aic3x.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Texas Instruments TLV320AIC3x Codec
9
10description: |
11  TLV320AIC3x are a series of low-power stereo audio codecs with stereo
12  headphone amplifier, as well as multiple inputs and outputs programmable in
13  single-ended or fully differential configurations.
14
15  The serial control bus supports SPI or I2C protocols, while the serial audio
16  data bus is programmable for I2S, left/right-justified, DSP, or TDM modes.
17
18  The following pins can be referred in the sound node's audio routing property:
19
20  CODEC output pins:
21     LLOUT
22     RLOUT
23     MONO_LOUT
24     HPLOUT
25     HPROUT
26     HPLCOM
27     HPRCOM
28
29  CODEC input pins for TLV320AIC3104:
30     MIC2L
31     MIC2R
32     LINE1L
33     LINE1R
34
35  CODEC input pins for other compatible codecs:
36     MIC3L
37     MIC3R
38     LINE1L
39     LINE2L
40     LINE1R
41     LINE2R
42
43maintainers:
44  - Jai Luthra <j-luthra@ti.com>
45
46properties:
47  compatible:
48    enum:
49      - ti,tlv320aic3x
50      - ti,tlv320aic33
51      - ti,tlv320aic3007
52      - ti,tlv320aic3106
53      - ti,tlv320aic3104
54
55  reg:
56    maxItems: 1
57
58  reset-gpios:
59    maxItems: 1
60    description:
61      GPIO specification for the active low RESET input.
62
63  gpio-reset:
64    $ref: /schemas/types.yaml#/definitions/uint32-matrix
65    maxItems: 1
66    description:
67      Deprecated, please use reset-gpios instead.
68    deprecated: true
69
70  ai3x-gpio-func:
71    description: AIC3X_GPIO1 & AIC3X_GPIO2 Functionality
72    $ref: /schemas/types.yaml#/definitions/uint32-array
73    maxItems: 2
74
75  ai3x-micbias-vg:
76    description: MicBias required voltage. If node is omitted then MicBias is powered down.
77    $ref: /schemas/types.yaml#/definitions/uint32
78    oneOf:
79      - const: 1
80        description: MICBIAS output is powered to 2.0V.
81      - const: 2
82        description: MICBIAS output is powered to 2.5V.
83      - const: 3
84        description: MICBIAS output is connected to AVDD.
85
86  ai3x-ocmv:
87    description: Output Common-Mode Voltage selection.
88    $ref: /schemas/types.yaml#/definitions/uint32
89    oneOf:
90      - const: 0
91        description: 1.35V
92      - const: 1
93        description: 1.5V
94      - const: 2
95        description: 1.65V
96      - const: 3
97        description: 1.8V
98
99  AVDD-supply:
100    description: Analog DAC voltage.
101
102  IOVDD-supply:
103    description: I/O voltage.
104
105  DRVDD-supply:
106    description: ADC analog and output driver voltage.
107
108  DVDD-supply:
109    description: Digital core voltage.
110
111  '#sound-dai-cells':
112    const: 0
113
114  clocks:
115    maxItems: 1
116
117  port:
118    $ref: audio-graph-port.yaml#
119    unevaluatedProperties: false
120
121required:
122  - compatible
123  - reg
124
125additionalProperties: false
126
127examples:
128  - |
129    #include <dt-bindings/gpio/gpio.h>
130    i2c {
131      #address-cells = <1>;
132      #size-cells = <0>;
133
134      tlv320aic3x_i2c: audio-codec@1b {
135        compatible = "ti,tlv320aic3x";
136        reg = <0x1b>;
137
138        reset-gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
139
140        AVDD-supply = <&regulator>;
141        IOVDD-supply = <&regulator>;
142        DRVDD-supply = <&regulator>;
143        DVDD-supply = <&regulator>;
144      };
145    };
146
147  - |
148    #include <dt-bindings/gpio/gpio.h>
149    spi {
150      #address-cells = <1>;
151      #size-cells = <0>;
152
153      tlv320aic3x_spi: audio-codec@0 {
154        compatible = "ti,tlv320aic3x";
155        reg = <0>; /* CS number */
156        #sound-dai-cells = <0>;
157
158        AVDD-supply = <&regulator>;
159        IOVDD-supply = <&regulator>;
160        DRVDD-supply = <&regulator>;
161        DVDD-supply = <&regulator>;
162        ai3x-ocmv = <0>;
163      };
164    };
165
166...
167