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    maxItems: 1
65    description:
66      Deprecated, please use reset-gpios instead.
67    deprecated: true
68
69  ai3x-gpio-func:
70    description: AIC3X_GPIO1 & AIC3X_GPIO2 Functionality
71    $ref: /schemas/types.yaml#/definitions/uint32-array
72    maxItems: 2
73
74  ai3x-micbias-vg:
75    description: MicBias required voltage. If node is omitted then MicBias is powered down.
76    $ref: /schemas/types.yaml#/definitions/uint32
77    oneOf:
78      - const: 1
79        description: MICBIAS output is powered to 2.0V.
80      - const: 2
81        description: MICBIAS output is powered to 2.5V.
82      - const: 3
83        description: MICBIAS output is connected to AVDD.
84
85  ai3x-ocmv:
86    description: Output Common-Mode Voltage selection.
87    $ref: /schemas/types.yaml#/definitions/uint32
88    oneOf:
89      - const: 0
90        description: 1.35V
91      - const: 1
92        description: 1.5V
93      - const: 2
94        description: 1.65V
95      - const: 3
96        description: 1.8V
97
98  AVDD-supply:
99    description: Analog DAC voltage.
100
101  IOVDD-supply:
102    description: I/O voltage.
103
104  DRVDD-supply:
105    description: ADC analog and output driver voltage.
106
107  DVDD-supply:
108    description: Digital core voltage.
109
110  '#sound-dai-cells':
111    const: 0
112
113  clocks:
114    maxItems: 1
115
116  port:
117    $ref: audio-graph-port.yaml#
118    unevaluatedProperties: false
119
120required:
121  - compatible
122  - reg
123
124additionalProperties: false
125
126examples:
127  - |
128    #include <dt-bindings/gpio/gpio.h>
129    i2c {
130      #address-cells = <1>;
131      #size-cells = <0>;
132
133      tlv320aic3x_i2c: audio-codec@1b {
134        compatible = "ti,tlv320aic3x";
135        reg = <0x1b>;
136
137        reset-gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
138
139        AVDD-supply = <&regulator>;
140        IOVDD-supply = <&regulator>;
141        DRVDD-supply = <&regulator>;
142        DVDD-supply = <&regulator>;
143      };
144    };
145
146  - |
147    #include <dt-bindings/gpio/gpio.h>
148    spi {
149      #address-cells = <1>;
150      #size-cells = <0>;
151
152      tlv320aic3x_spi: audio-codec@0 {
153        compatible = "ti,tlv320aic3x";
154        reg = <0>; /* CS number */
155        #sound-dai-cells = <0>;
156
157        AVDD-supply = <&regulator>;
158        IOVDD-supply = <&regulator>;
159        DRVDD-supply = <&regulator>;
160        DVDD-supply = <&regulator>;
161        ai3x-ocmv = <0>;
162      };
163    };
164
165...
166