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