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