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