xref: /linux/Documentation/devicetree/bindings/sound/qcom,wcd9335.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1*631b8a8bSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*631b8a8bSKrzysztof Kozlowski%YAML 1.2
3*631b8a8bSKrzysztof Kozlowski---
4*631b8a8bSKrzysztof Kozlowski$id: http://devicetree.org/schemas/sound/qcom,wcd9335.yaml#
5*631b8a8bSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6*631b8a8bSKrzysztof Kozlowski
7*631b8a8bSKrzysztof Kozlowskititle: Qualcomm WCD9335 Audio Codec
8*631b8a8bSKrzysztof Kozlowski
9*631b8a8bSKrzysztof Kozlowskimaintainers:
10*631b8a8bSKrzysztof Kozlowski  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11*631b8a8bSKrzysztof Kozlowski
12*631b8a8bSKrzysztof Kozlowskidescription:
13*631b8a8bSKrzysztof Kozlowski  Qualcomm WCD9335 Codec is a standalone Hi-Fi audio codec IC with in-built
14*631b8a8bSKrzysztof Kozlowski  Soundwire controller and interrupt mux. It supports both I2S/I2C and SLIMbus
15*631b8a8bSKrzysztof Kozlowski  audio interfaces.
16*631b8a8bSKrzysztof Kozlowski
17*631b8a8bSKrzysztof Kozlowskiproperties:
18*631b8a8bSKrzysztof Kozlowski  compatible:
19*631b8a8bSKrzysztof Kozlowski    const: slim217,1a0
20*631b8a8bSKrzysztof Kozlowski
21*631b8a8bSKrzysztof Kozlowski  reg:
22*631b8a8bSKrzysztof Kozlowski    maxItems: 1
23*631b8a8bSKrzysztof Kozlowski
24*631b8a8bSKrzysztof Kozlowski  clocks:
25*631b8a8bSKrzysztof Kozlowski    maxItems: 2
26*631b8a8bSKrzysztof Kozlowski
27*631b8a8bSKrzysztof Kozlowski  clock-names:
28*631b8a8bSKrzysztof Kozlowski    items:
29*631b8a8bSKrzysztof Kozlowski      - const: mclk
30*631b8a8bSKrzysztof Kozlowski      - const: slimbus
31*631b8a8bSKrzysztof Kozlowski
32*631b8a8bSKrzysztof Kozlowski  interrupts:
33*631b8a8bSKrzysztof Kozlowski    maxItems: 2
34*631b8a8bSKrzysztof Kozlowski
35*631b8a8bSKrzysztof Kozlowski  interrupt-names:
36*631b8a8bSKrzysztof Kozlowski    items:
37*631b8a8bSKrzysztof Kozlowski      - const: intr1
38*631b8a8bSKrzysztof Kozlowski      - const: intr2
39*631b8a8bSKrzysztof Kozlowski
40*631b8a8bSKrzysztof Kozlowski  interrupt-controller: true
41*631b8a8bSKrzysztof Kozlowski
42*631b8a8bSKrzysztof Kozlowski  '#interrupt-cells':
43*631b8a8bSKrzysztof Kozlowski    const: 1
44*631b8a8bSKrzysztof Kozlowski
45*631b8a8bSKrzysztof Kozlowski  reset-gpios:
46*631b8a8bSKrzysztof Kozlowski    maxItems: 1
47*631b8a8bSKrzysztof Kozlowski
48*631b8a8bSKrzysztof Kozlowski  slim-ifc-dev:
49*631b8a8bSKrzysztof Kozlowski    description: SLIM IFC device interface
50*631b8a8bSKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/phandle
51*631b8a8bSKrzysztof Kozlowski
52*631b8a8bSKrzysztof Kozlowski  '#sound-dai-cells':
53*631b8a8bSKrzysztof Kozlowski    const: 1
54*631b8a8bSKrzysztof Kozlowski
55*631b8a8bSKrzysztof Kozlowski  vdd-buck-supply:
56*631b8a8bSKrzysztof Kozlowski    description: 1.8V buck supply
57*631b8a8bSKrzysztof Kozlowski
58*631b8a8bSKrzysztof Kozlowski  vdd-buck-sido-supply:
59*631b8a8bSKrzysztof Kozlowski    description: 1.8V SIDO buck supply
60*631b8a8bSKrzysztof Kozlowski
61*631b8a8bSKrzysztof Kozlowski  vdd-io-supply:
62*631b8a8bSKrzysztof Kozlowski    description: 1.8V I/O supply
63*631b8a8bSKrzysztof Kozlowski
64*631b8a8bSKrzysztof Kozlowski  vdd-micbias-supply:
65*631b8a8bSKrzysztof Kozlowski    description: micbias supply
66*631b8a8bSKrzysztof Kozlowski
67*631b8a8bSKrzysztof Kozlowski  vdd-rx-supply:
68*631b8a8bSKrzysztof Kozlowski    description: 1.8V rx supply
69*631b8a8bSKrzysztof Kozlowski
70*631b8a8bSKrzysztof Kozlowski  vdd-tx-supply:
71*631b8a8bSKrzysztof Kozlowski    description: 1.8V tx supply
72*631b8a8bSKrzysztof Kozlowski
73*631b8a8bSKrzysztof Kozlowski  vdd-vbat-supply:
74*631b8a8bSKrzysztof Kozlowski    description: vbat supply
75*631b8a8bSKrzysztof Kozlowski
76*631b8a8bSKrzysztof Kozlowskirequired:
77*631b8a8bSKrzysztof Kozlowski  - compatible
78*631b8a8bSKrzysztof Kozlowski  - reg
79*631b8a8bSKrzysztof Kozlowski
80*631b8a8bSKrzysztof KozlowskiallOf:
81*631b8a8bSKrzysztof Kozlowski  - $ref: dai-common.yaml#
82*631b8a8bSKrzysztof Kozlowski  - if:
83*631b8a8bSKrzysztof Kozlowski      required:
84*631b8a8bSKrzysztof Kozlowski        - slim-ifc-dev
85*631b8a8bSKrzysztof Kozlowski    then:
86*631b8a8bSKrzysztof Kozlowski      required:
87*631b8a8bSKrzysztof Kozlowski        - clocks
88*631b8a8bSKrzysztof Kozlowski        - clock-names
89*631b8a8bSKrzysztof Kozlowski        - interrupts
90*631b8a8bSKrzysztof Kozlowski        - interrupt-names
91*631b8a8bSKrzysztof Kozlowski        - interrupt-controller
92*631b8a8bSKrzysztof Kozlowski        - '#interrupt-cells'
93*631b8a8bSKrzysztof Kozlowski        - reset-gpios
94*631b8a8bSKrzysztof Kozlowski        - slim-ifc-dev
95*631b8a8bSKrzysztof Kozlowski        - '#sound-dai-cells'
96*631b8a8bSKrzysztof Kozlowski        - vdd-buck-supply
97*631b8a8bSKrzysztof Kozlowski        - vdd-buck-sido-supply
98*631b8a8bSKrzysztof Kozlowski        - vdd-io-supply
99*631b8a8bSKrzysztof Kozlowski        - vdd-rx-supply
100*631b8a8bSKrzysztof Kozlowski        - vdd-tx-supply
101*631b8a8bSKrzysztof Kozlowski    else:
102*631b8a8bSKrzysztof Kozlowski      properties:
103*631b8a8bSKrzysztof Kozlowski        clocks: false
104*631b8a8bSKrzysztof Kozlowski        clock-names: false
105*631b8a8bSKrzysztof Kozlowski        interrupts: false
106*631b8a8bSKrzysztof Kozlowski        interrupt-names: false
107*631b8a8bSKrzysztof Kozlowski        interrupt-controller: false
108*631b8a8bSKrzysztof Kozlowski        '#interrupt-cells': false
109*631b8a8bSKrzysztof Kozlowski        reset-gpios: false
110*631b8a8bSKrzysztof Kozlowski        slim-ifc-dev: false
111*631b8a8bSKrzysztof Kozlowski        '#sound-dai-cells': false
112*631b8a8bSKrzysztof Kozlowski        vdd-buck-supply: false
113*631b8a8bSKrzysztof Kozlowski        vdd-buck-sido-supply: false
114*631b8a8bSKrzysztof Kozlowski        vdd-io-supply: false
115*631b8a8bSKrzysztof Kozlowski        vdd-micbias-supply: false
116*631b8a8bSKrzysztof Kozlowski        vdd-rx-supply: false
117*631b8a8bSKrzysztof Kozlowski        vdd-tx-supply: false
118*631b8a8bSKrzysztof Kozlowski        vdd-vbat-supply: false
119*631b8a8bSKrzysztof Kozlowski
120*631b8a8bSKrzysztof KozlowskiadditionalProperties: false
121*631b8a8bSKrzysztof Kozlowski
122*631b8a8bSKrzysztof Kozlowskiexamples:
123*631b8a8bSKrzysztof Kozlowski  - |
124*631b8a8bSKrzysztof Kozlowski    #include <dt-bindings/clock/qcom,rpmcc.h>
125*631b8a8bSKrzysztof Kozlowski    #include <dt-bindings/gpio/gpio.h>
126*631b8a8bSKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/irq.h>
127*631b8a8bSKrzysztof Kozlowski
128*631b8a8bSKrzysztof Kozlowski    tasha_ifd: codec@0,0 {
129*631b8a8bSKrzysztof Kozlowski        compatible = "slim217,1a0";
130*631b8a8bSKrzysztof Kozlowski        reg = <0 0>;
131*631b8a8bSKrzysztof Kozlowski    };
132*631b8a8bSKrzysztof Kozlowski
133*631b8a8bSKrzysztof Kozlowski    codec@1,0 {
134*631b8a8bSKrzysztof Kozlowski        compatible = "slim217,1a0";
135*631b8a8bSKrzysztof Kozlowski        reg = <1 0>;
136*631b8a8bSKrzysztof Kozlowski
137*631b8a8bSKrzysztof Kozlowski        clock-names = "mclk", "slimbus";
138*631b8a8bSKrzysztof Kozlowski        clocks = <&div1_mclk>, <&rpmcc RPM_SMD_BB_CLK1>;
139*631b8a8bSKrzysztof Kozlowski
140*631b8a8bSKrzysztof Kozlowski        interrupt-parent = <&tlmm>;
141*631b8a8bSKrzysztof Kozlowski        interrupts = <54 IRQ_TYPE_LEVEL_HIGH>,
142*631b8a8bSKrzysztof Kozlowski                     <53 IRQ_TYPE_LEVEL_HIGH>;
143*631b8a8bSKrzysztof Kozlowski        interrupt-names = "intr1", "intr2";
144*631b8a8bSKrzysztof Kozlowski        interrupt-controller;
145*631b8a8bSKrzysztof Kozlowski        #interrupt-cells = <1>;
146*631b8a8bSKrzysztof Kozlowski
147*631b8a8bSKrzysztof Kozlowski        reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
148*631b8a8bSKrzysztof Kozlowski        slim-ifc-dev = <&tasha_ifd>;
149*631b8a8bSKrzysztof Kozlowski        #sound-dai-cells = <1>;
150*631b8a8bSKrzysztof Kozlowski
151*631b8a8bSKrzysztof Kozlowski        vdd-buck-supply = <&vreg_s4a_1p8>;
152*631b8a8bSKrzysztof Kozlowski        vdd-buck-sido-supply = <&vreg_s4a_1p8>;
153*631b8a8bSKrzysztof Kozlowski        vdd-tx-supply = <&vreg_s4a_1p8>;
154*631b8a8bSKrzysztof Kozlowski        vdd-rx-supply = <&vreg_s4a_1p8>;
155*631b8a8bSKrzysztof Kozlowski        vdd-io-supply = <&vreg_s4a_1p8>;
156*631b8a8bSKrzysztof Kozlowski    };
157