xref: /linux/Documentation/devicetree/bindings/sound/wlf,wm8994.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1*80404e4eSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*80404e4eSKrzysztof Kozlowski%YAML 1.2
3*80404e4eSKrzysztof Kozlowski---
4*80404e4eSKrzysztof Kozlowski$id: http://devicetree.org/schemas/sound/wlf,wm8994.yaml#
5*80404e4eSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6*80404e4eSKrzysztof Kozlowski
7*80404e4eSKrzysztof Kozlowskititle: Wolfson WM1811/WM8994/WM8958 audio codecs
8*80404e4eSKrzysztof Kozlowski
9*80404e4eSKrzysztof Kozlowskimaintainers:
10*80404e4eSKrzysztof Kozlowski  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
11*80404e4eSKrzysztof Kozlowski  - patches@opensource.cirrus.com
12*80404e4eSKrzysztof Kozlowski
13*80404e4eSKrzysztof Kozlowskidescription: |
14*80404e4eSKrzysztof Kozlowski  These devices support both I2C and SPI (configured with pin strapping on the
15*80404e4eSKrzysztof Kozlowski  board).
16*80404e4eSKrzysztof Kozlowski
17*80404e4eSKrzysztof Kozlowski  Pins on the device (for linking into audio routes):
18*80404e4eSKrzysztof Kozlowski  IN1LN, IN1LP, IN2LN, IN2LP:VXRN, IN1RN, IN1RP, IN2RN, IN2RP:VXRP, SPKOUTLP,
19*80404e4eSKrzysztof Kozlowski  SPKOUTLN, SPKOUTRP, SPKOUTRN, HPOUT1L, HPOUT1R, HPOUT2P, HPOUT2N, LINEOUT1P,
20*80404e4eSKrzysztof Kozlowski  LINEOUT1N, LINEOUT2P, LINEOUT2N.
21*80404e4eSKrzysztof Kozlowski
22*80404e4eSKrzysztof Kozlowskiproperties:
23*80404e4eSKrzysztof Kozlowski  compatible:
24*80404e4eSKrzysztof Kozlowski    enum:
25*80404e4eSKrzysztof Kozlowski      - wlf,wm1811
26*80404e4eSKrzysztof Kozlowski      - wlf,wm8994
27*80404e4eSKrzysztof Kozlowski      - wlf,wm8958
28*80404e4eSKrzysztof Kozlowski
29*80404e4eSKrzysztof Kozlowski  reg:
30*80404e4eSKrzysztof Kozlowski    maxItems: 1
31*80404e4eSKrzysztof Kozlowski
32*80404e4eSKrzysztof Kozlowski  clocks:
33*80404e4eSKrzysztof Kozlowski    minItems: 1
34*80404e4eSKrzysztof Kozlowski    maxItems: 2
35*80404e4eSKrzysztof Kozlowski
36*80404e4eSKrzysztof Kozlowski  clock-names:
37*80404e4eSKrzysztof Kozlowski    minItems: 1
38*80404e4eSKrzysztof Kozlowski    items:
39*80404e4eSKrzysztof Kozlowski      - const: MCLK1
40*80404e4eSKrzysztof Kozlowski      - const: MCLK2
41*80404e4eSKrzysztof Kozlowski
42*80404e4eSKrzysztof Kozlowski  gpio-controller: true
43*80404e4eSKrzysztof Kozlowski
44*80404e4eSKrzysztof Kozlowski  '#gpio-cells':
45*80404e4eSKrzysztof Kozlowski    const: 2
46*80404e4eSKrzysztof Kozlowski
47*80404e4eSKrzysztof Kozlowski  interrupts:
48*80404e4eSKrzysztof Kozlowski    maxItems: 1
49*80404e4eSKrzysztof Kozlowski
50*80404e4eSKrzysztof Kozlowski  interrupt-controller: true
51*80404e4eSKrzysztof Kozlowski
52*80404e4eSKrzysztof Kozlowski  '#interrupt-cells':
53*80404e4eSKrzysztof Kozlowski    const: 2
54*80404e4eSKrzysztof Kozlowski    description:
55*80404e4eSKrzysztof Kozlowski      The first cell is the IRQ number. The second cell is the flags, encoded
56*80404e4eSKrzysztof Kozlowski      as the trigger masks.
57*80404e4eSKrzysztof Kozlowski
58*80404e4eSKrzysztof Kozlowski  AVDD1-supply: true
59*80404e4eSKrzysztof Kozlowski  AVDD2-supply: true
60*80404e4eSKrzysztof Kozlowski  CPVDD-supply: true
61*80404e4eSKrzysztof Kozlowski  DBVDD-supply: true
62*80404e4eSKrzysztof Kozlowski  DBVDD1-supply: true
63*80404e4eSKrzysztof Kozlowski  DBVDD2-supply: true
64*80404e4eSKrzysztof Kozlowski  DBVDD3-supply: true
65*80404e4eSKrzysztof Kozlowski  DCVDD-supply: true
66*80404e4eSKrzysztof Kozlowski  LDO1VDD-supply: true
67*80404e4eSKrzysztof Kozlowski  LDO2VDD-supply: true
68*80404e4eSKrzysztof Kozlowski  SPKVDD1-supply: true
69*80404e4eSKrzysztof Kozlowski  SPKVDD2-supply: true
70*80404e4eSKrzysztof Kozlowski
71*80404e4eSKrzysztof Kozlowski  '#sound-dai-cells':
72*80404e4eSKrzysztof Kozlowski    const: 0
73*80404e4eSKrzysztof Kozlowski
74*80404e4eSKrzysztof Kozlowski  wlf,gpio-cfg:
75*80404e4eSKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32-array
76*80404e4eSKrzysztof Kozlowski    maxItems: 11
77*80404e4eSKrzysztof Kozlowski    description:
78*80404e4eSKrzysztof Kozlowski      A list of GPIO configuration register values. If absent, no configuration
79*80404e4eSKrzysztof Kozlowski      of these registers is performed. If any value is over 0xffff then the
80*80404e4eSKrzysztof Kozlowski      register will be left as default. If present 11 values must be supplied.
81*80404e4eSKrzysztof Kozlowski
82*80404e4eSKrzysztof Kozlowski  wlf,micbias-cfg:
83*80404e4eSKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32-array
84*80404e4eSKrzysztof Kozlowski    maxItems: 2
85*80404e4eSKrzysztof Kozlowski    description:
86*80404e4eSKrzysztof Kozlowski      Two MICBIAS register values for WM1811 or WM8958.  If absent the register
87*80404e4eSKrzysztof Kozlowski      defaults will be used.
88*80404e4eSKrzysztof Kozlowski
89*80404e4eSKrzysztof Kozlowski  wlf,ldo1ena-gpios:
90*80404e4eSKrzysztof Kozlowski    maxItems: 1
91*80404e4eSKrzysztof Kozlowski    description:
92*80404e4eSKrzysztof Kozlowski      Control of LDO1ENA input to device.
93*80404e4eSKrzysztof Kozlowski
94*80404e4eSKrzysztof Kozlowski  wlf,ldo2ena-gpios:
95*80404e4eSKrzysztof Kozlowski    maxItems: 1
96*80404e4eSKrzysztof Kozlowski    description:
97*80404e4eSKrzysztof Kozlowski      Control of LDO2ENA input to device.
98*80404e4eSKrzysztof Kozlowski
99*80404e4eSKrzysztof Kozlowski  wlf,lineout1-se:
100*80404e4eSKrzysztof Kozlowski    type: boolean
101*80404e4eSKrzysztof Kozlowski    description:
102*80404e4eSKrzysztof Kozlowski      LINEOUT1 is in single ended mode.
103*80404e4eSKrzysztof Kozlowski
104*80404e4eSKrzysztof Kozlowski  wlf,lineout2-se:
105*80404e4eSKrzysztof Kozlowski    type: boolean
106*80404e4eSKrzysztof Kozlowski    description:
107*80404e4eSKrzysztof Kozlowski      INEOUT2 is in single ended mode.
108*80404e4eSKrzysztof Kozlowski
109*80404e4eSKrzysztof Kozlowski  wlf,lineout1-feedback:
110*80404e4eSKrzysztof Kozlowski    type: boolean
111*80404e4eSKrzysztof Kozlowski    description:
112*80404e4eSKrzysztof Kozlowski      LINEOUT1 has common mode feedback connected.
113*80404e4eSKrzysztof Kozlowski
114*80404e4eSKrzysztof Kozlowski  wlf,lineout2-feedback:
115*80404e4eSKrzysztof Kozlowski    type: boolean
116*80404e4eSKrzysztof Kozlowski    description:
117*80404e4eSKrzysztof Kozlowski      LINEOUT2 has common mode feedback connected.
118*80404e4eSKrzysztof Kozlowski
119*80404e4eSKrzysztof Kozlowski  wlf,ldoena-always-driven:
120*80404e4eSKrzysztof Kozlowski    type: boolean
121*80404e4eSKrzysztof Kozlowski    description:
122*80404e4eSKrzysztof Kozlowski      LDOENA is always driven.
123*80404e4eSKrzysztof Kozlowski
124*80404e4eSKrzysztof Kozlowski  wlf,spkmode-pu:
125*80404e4eSKrzysztof Kozlowski    type: boolean
126*80404e4eSKrzysztof Kozlowski    description:
127*80404e4eSKrzysztof Kozlowski      Enable the internal pull-up resistor on the SPKMODE pin.
128*80404e4eSKrzysztof Kozlowski
129*80404e4eSKrzysztof Kozlowski  wlf,csnaddr-pd:
130*80404e4eSKrzysztof Kozlowski    type: boolean
131*80404e4eSKrzysztof Kozlowski    description:
132*80404e4eSKrzysztof Kozlowski      Enable the internal pull-down resistor on the CS/ADDR pin.
133*80404e4eSKrzysztof Kozlowski
134*80404e4eSKrzysztof Kozlowskirequired:
135*80404e4eSKrzysztof Kozlowski  - compatible
136*80404e4eSKrzysztof Kozlowski  - reg
137*80404e4eSKrzysztof Kozlowski  - AVDD2-supply
138*80404e4eSKrzysztof Kozlowski  - CPVDD-supply
139*80404e4eSKrzysztof Kozlowski  - SPKVDD1-supply
140*80404e4eSKrzysztof Kozlowski  - SPKVDD2-supply
141*80404e4eSKrzysztof Kozlowski
142*80404e4eSKrzysztof KozlowskiallOf:
143*80404e4eSKrzysztof Kozlowski  - $ref: dai-common.yaml#
144*80404e4eSKrzysztof Kozlowski  - if:
145*80404e4eSKrzysztof Kozlowski      properties:
146*80404e4eSKrzysztof Kozlowski        compatible:
147*80404e4eSKrzysztof Kozlowski          enum:
148*80404e4eSKrzysztof Kozlowski            - wlf,wm1811
149*80404e4eSKrzysztof Kozlowski            - wlf,wm8958
150*80404e4eSKrzysztof Kozlowski    then:
151*80404e4eSKrzysztof Kozlowski      properties:
152*80404e4eSKrzysztof Kozlowski        DBVDD-supply: false
153*80404e4eSKrzysztof Kozlowski        LDO2VDD-supply: false
154*80404e4eSKrzysztof Kozlowski      required:
155*80404e4eSKrzysztof Kozlowski        - DBVDD1-supply
156*80404e4eSKrzysztof Kozlowski        - DBVDD2-supply
157*80404e4eSKrzysztof Kozlowski        - DBVDD3-supply
158*80404e4eSKrzysztof Kozlowski    else:
159*80404e4eSKrzysztof Kozlowski      properties:
160*80404e4eSKrzysztof Kozlowski        DBVDD1-supply: false
161*80404e4eSKrzysztof Kozlowski        DBVDD2-supply: false
162*80404e4eSKrzysztof Kozlowski        DBVDD3-supply: false
163*80404e4eSKrzysztof Kozlowski      required:
164*80404e4eSKrzysztof Kozlowski        - DBVDD-supply
165*80404e4eSKrzysztof Kozlowski
166*80404e4eSKrzysztof KozlowskiunevaluatedProperties: false
167*80404e4eSKrzysztof Kozlowski
168*80404e4eSKrzysztof Kozlowskiexamples:
169*80404e4eSKrzysztof Kozlowski  - |
170*80404e4eSKrzysztof Kozlowski    #include <dt-bindings/gpio/gpio.h>
171*80404e4eSKrzysztof Kozlowski
172*80404e4eSKrzysztof Kozlowski    i2c {
173*80404e4eSKrzysztof Kozlowski        #address-cells = <1>;
174*80404e4eSKrzysztof Kozlowski        #size-cells = <0>;
175*80404e4eSKrzysztof Kozlowski
176*80404e4eSKrzysztof Kozlowski        audio-codec@1a {
177*80404e4eSKrzysztof Kozlowski            compatible = "wlf,wm1811";
178*80404e4eSKrzysztof Kozlowski            reg = <0x1a>;
179*80404e4eSKrzysztof Kozlowski            clocks = <&i2s0 0>;
180*80404e4eSKrzysztof Kozlowski            clock-names = "MCLK1";
181*80404e4eSKrzysztof Kozlowski
182*80404e4eSKrzysztof Kozlowski            AVDD2-supply = <&main_dc_reg>;
183*80404e4eSKrzysztof Kozlowski            CPVDD-supply = <&main_dc_reg>;
184*80404e4eSKrzysztof Kozlowski            DBVDD1-supply = <&main_dc_reg>;
185*80404e4eSKrzysztof Kozlowski            DBVDD2-supply = <&main_dc_reg>;
186*80404e4eSKrzysztof Kozlowski            DBVDD3-supply = <&main_dc_reg>;
187*80404e4eSKrzysztof Kozlowski            LDO1VDD-supply = <&main_dc_reg>;
188*80404e4eSKrzysztof Kozlowski            SPKVDD1-supply = <&main_dc_reg>;
189*80404e4eSKrzysztof Kozlowski            SPKVDD2-supply = <&main_dc_reg>;
190*80404e4eSKrzysztof Kozlowski
191*80404e4eSKrzysztof Kozlowski            wlf,ldo1ena-gpios = <&gpb0 0 GPIO_ACTIVE_HIGH>;
192*80404e4eSKrzysztof Kozlowski            wlf,ldo2ena-gpios = <&gpb0 1 GPIO_ACTIVE_HIGH>;
193*80404e4eSKrzysztof Kozlowski        };
194*80404e4eSKrzysztof Kozlowski    };
195