1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2*4882a593Smuzhiyun%YAML 1.2 3*4882a593Smuzhiyun--- 4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/mfd/wlf,arizona.yaml# 5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml# 6*4882a593Smuzhiyun 7*4882a593Smuzhiyuntitle: Cirrus Logic/Wolfson Microelectronics Arizona class audio SoCs 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunmaintainers: 10*4882a593Smuzhiyun - patches@opensource.cirrus.com 11*4882a593Smuzhiyun 12*4882a593Smuzhiyundescription: | 13*4882a593Smuzhiyun These devices are audio SoCs with extensive digital capabilities and a 14*4882a593Smuzhiyun range of analogue I/O. 15*4882a593Smuzhiyun 16*4882a593SmuzhiyunallOf: 17*4882a593Smuzhiyun - $ref: /schemas/sound/wlf,arizona.yaml# 18*4882a593Smuzhiyun - $ref: /schemas/regulator/wlf,arizona.yaml# 19*4882a593Smuzhiyun - $ref: /schemas/extcon/wlf,arizona.yaml# 20*4882a593Smuzhiyun - if: 21*4882a593Smuzhiyun properties: 22*4882a593Smuzhiyun compatible: 23*4882a593Smuzhiyun contains: 24*4882a593Smuzhiyun enum: 25*4882a593Smuzhiyun - cirrus,cs47l24 26*4882a593Smuzhiyun - wlf,wm1831 27*4882a593Smuzhiyun then: 28*4882a593Smuzhiyun required: 29*4882a593Smuzhiyun - DCVDD-supply 30*4882a593Smuzhiyun - MICVDD-supply 31*4882a593Smuzhiyun else: 32*4882a593Smuzhiyun properties: 33*4882a593Smuzhiyun LDOVDD-supply: 34*4882a593Smuzhiyun description: 35*4882a593Smuzhiyun Digital power supply, used internally to generate DCVDD when 36*4882a593Smuzhiyun internally supplied. 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun - if: 39*4882a593Smuzhiyun properties: 40*4882a593Smuzhiyun compatible: 41*4882a593Smuzhiyun contains: 42*4882a593Smuzhiyun enum: 43*4882a593Smuzhiyun - wlf,wm1814 44*4882a593Smuzhiyun - wlf,wm5102 45*4882a593Smuzhiyun - wlf,wm5110 46*4882a593Smuzhiyun - wlf,wm8280 47*4882a593Smuzhiyun - wlf,wm8997 48*4882a593Smuzhiyun - wlf,wm8998 49*4882a593Smuzhiyun then: 50*4882a593Smuzhiyun properties: 51*4882a593Smuzhiyun DBVDD2-supply: 52*4882a593Smuzhiyun description: 53*4882a593Smuzhiyun Databus power supply. 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun required: 56*4882a593Smuzhiyun - DBVDD2-supply 57*4882a593Smuzhiyun - if: 58*4882a593Smuzhiyun properties: 59*4882a593Smuzhiyun compatible: 60*4882a593Smuzhiyun contains: 61*4882a593Smuzhiyun enum: 62*4882a593Smuzhiyun - wlf,wm1814 63*4882a593Smuzhiyun - wlf,wm5102 64*4882a593Smuzhiyun - wlf,wm5110 65*4882a593Smuzhiyun - wlf,wm8280 66*4882a593Smuzhiyun - wlf,wm8998 67*4882a593Smuzhiyun then: 68*4882a593Smuzhiyun properties: 69*4882a593Smuzhiyun DBVDD3-supply: 70*4882a593Smuzhiyun description: 71*4882a593Smuzhiyun Databus power supply. 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun required: 74*4882a593Smuzhiyun - DBVDD3-supply 75*4882a593Smuzhiyun - if: 76*4882a593Smuzhiyun properties: 77*4882a593Smuzhiyun compatible: 78*4882a593Smuzhiyun contains: 79*4882a593Smuzhiyun enum: 80*4882a593Smuzhiyun - cirrus,cs47l24 81*4882a593Smuzhiyun - wlf,wm1831 82*4882a593Smuzhiyun - wlf,wm8997 83*4882a593Smuzhiyun then: 84*4882a593Smuzhiyun properties: 85*4882a593Smuzhiyun SPKVDD-supply: 86*4882a593Smuzhiyun description: 87*4882a593Smuzhiyun Mono speaker driver power supply. 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun required: 90*4882a593Smuzhiyun - SPKVDD-supply 91*4882a593Smuzhiyun else: 92*4882a593Smuzhiyun properties: 93*4882a593Smuzhiyun SPKVDDL-supply: 94*4882a593Smuzhiyun description: 95*4882a593Smuzhiyun Left speaker driver power supply. 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun SPKVDDR-supply: 98*4882a593Smuzhiyun description: 99*4882a593Smuzhiyun Right speaker driver power supply. 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun required: 102*4882a593Smuzhiyun - SPKVDDL-supply 103*4882a593Smuzhiyun - SPKVDDR-supply 104*4882a593Smuzhiyun 105*4882a593Smuzhiyunproperties: 106*4882a593Smuzhiyun compatible: 107*4882a593Smuzhiyun enum: 108*4882a593Smuzhiyun - cirrus,cs47l24 109*4882a593Smuzhiyun - wlf,wm1814 110*4882a593Smuzhiyun - wlf,wm1831 111*4882a593Smuzhiyun - wlf,wm5102 112*4882a593Smuzhiyun - wlf,wm5110 113*4882a593Smuzhiyun - wlf,wm8280 114*4882a593Smuzhiyun - wlf,wm8997 115*4882a593Smuzhiyun - wlf,wm8998 116*4882a593Smuzhiyun 117*4882a593Smuzhiyun reg: 118*4882a593Smuzhiyun maxItems: 1 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun AVDD-supply: 121*4882a593Smuzhiyun description: 122*4882a593Smuzhiyun Analogue power supply. 123*4882a593Smuzhiyun 124*4882a593Smuzhiyun CPVDD-supply: 125*4882a593Smuzhiyun description: 126*4882a593Smuzhiyun Charge pump power supply. 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun DBVDD1-supply: 129*4882a593Smuzhiyun description: 130*4882a593Smuzhiyun Databus power supply. 131*4882a593Smuzhiyun 132*4882a593Smuzhiyun DCVDD-supply: 133*4882a593Smuzhiyun description: 134*4882a593Smuzhiyun Digital power supply, normally supplied internally except on cs47l24, 135*4882a593Smuzhiyun wm1831 where it is mandatory. 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun MICVDD-supply: 138*4882a593Smuzhiyun description: 139*4882a593Smuzhiyun Microphone power supply, normally supplied internally except on 140*4882a593Smuzhiyun cs47l24, wm1831 where it is mandatory. 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun gpio-controller: true 143*4882a593Smuzhiyun 144*4882a593Smuzhiyun '#gpio-cells': 145*4882a593Smuzhiyun description: 146*4882a593Smuzhiyun The first cell is the pin number and the second cell is used to 147*4882a593Smuzhiyun specify optional parameters. 148*4882a593Smuzhiyun const: 2 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun wlf,gpio-defaults: 151*4882a593Smuzhiyun description: 152*4882a593Smuzhiyun A list of GPIO configuration register values. Defines for the 153*4882a593Smuzhiyun appropriate values can found in dt-bindings/mfd/arizona.h. If 154*4882a593Smuzhiyun absent, no configuration of these registers is performed. If any 155*4882a593Smuzhiyun entry has a value that is out of range for a 16 bit register then the 156*4882a593Smuzhiyun chip default will be used. If present exactly five values must be 157*4882a593Smuzhiyun specified. 158*4882a593Smuzhiyun $ref: "/schemas/types.yaml#/definitions/uint32-array" 159*4882a593Smuzhiyun minItems: 1 160*4882a593Smuzhiyun maxItems: 5 161*4882a593Smuzhiyun 162*4882a593Smuzhiyun interrupt-controller: true 163*4882a593Smuzhiyun 164*4882a593Smuzhiyun '#interrupt-cells': 165*4882a593Smuzhiyun description: 166*4882a593Smuzhiyun The first cell is the IRQ number. The second cell is the flags, 167*4882a593Smuzhiyun encoded as trigger masks. 168*4882a593Smuzhiyun const: 2 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun interrupts: 171*4882a593Smuzhiyun maxItems: 1 172*4882a593Smuzhiyun 173*4882a593Smuzhiyun clocks: 174*4882a593Smuzhiyun description: 175*4882a593Smuzhiyun Should reference the clocks supplied on MCLK1 and MCLK2. 176*4882a593Smuzhiyun minItems: 1 177*4882a593Smuzhiyun maxItems: 2 178*4882a593Smuzhiyun 179*4882a593Smuzhiyun clock-names: 180*4882a593Smuzhiyun description: 181*4882a593Smuzhiyun Should contains two strings mclk1 for the clock supplied on MCLK1, 182*4882a593Smuzhiyun recommended to be a high quality audio reference clock mclk2 for the 183*4882a593Smuzhiyun clock supplied on MCLK2, recommended to be an always on 32k clock. 184*4882a593Smuzhiyun oneOf: 185*4882a593Smuzhiyun - items: 186*4882a593Smuzhiyun - const: mclk1 187*4882a593Smuzhiyun - items: 188*4882a593Smuzhiyun - const: mclk2 189*4882a593Smuzhiyun - items: 190*4882a593Smuzhiyun - const: mclk1 191*4882a593Smuzhiyun - const: mclk2 192*4882a593Smuzhiyun 193*4882a593Smuzhiyun reset-gpios: 194*4882a593Smuzhiyun maxItems: 1 195*4882a593Smuzhiyun 196*4882a593Smuzhiyun wlf,reset: 197*4882a593Smuzhiyun description: 198*4882a593Smuzhiyun GPIO specifier for the GPIO controlling RESET 199*4882a593Smuzhiyun deprecated: true 200*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/phandle-array 201*4882a593Smuzhiyun maxItems: 1 202*4882a593Smuzhiyun 203*4882a593Smuzhiyunrequired: 204*4882a593Smuzhiyun - compatible 205*4882a593Smuzhiyun - AVDD-supply 206*4882a593Smuzhiyun - CPVDD-supply 207*4882a593Smuzhiyun - DBVDD1-supply 208*4882a593Smuzhiyun - gpio-controller 209*4882a593Smuzhiyun - '#gpio-cells' 210*4882a593Smuzhiyun - interrupt-controller 211*4882a593Smuzhiyun - '#interrupt-cells' 212*4882a593Smuzhiyun - interrupts 213*4882a593Smuzhiyun 214*4882a593SmuzhiyununevaluatedProperties: false 215*4882a593Smuzhiyun 216*4882a593Smuzhiyunexamples: 217*4882a593Smuzhiyun - | 218*4882a593Smuzhiyun #include <dt-bindings/mfd/arizona.h> 219*4882a593Smuzhiyun i2c@e0004000 { 220*4882a593Smuzhiyun #address-cells = <1>; 221*4882a593Smuzhiyun #size-cells = <0>; 222*4882a593Smuzhiyun reg = <0xe0004000 0x1000>; 223*4882a593Smuzhiyun 224*4882a593Smuzhiyun wm5102: codec@1a { 225*4882a593Smuzhiyun compatible = "wlf,wm5102"; 226*4882a593Smuzhiyun reg = <0x1a>; 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun reset-gpios = <&gpio 0>; 229*4882a593Smuzhiyun wlf,ldoena = <&gpio 1>; 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun AVDD-supply = <&vdd1v8>; 232*4882a593Smuzhiyun DBVDD1-supply = <&vdd1v8>; 233*4882a593Smuzhiyun DBVDD2-supply = <&vdd1v8>; 234*4882a593Smuzhiyun DBVDD3-supply = <&vdd1v8>; 235*4882a593Smuzhiyun CPVDD-supply = <&vdd1v8>; 236*4882a593Smuzhiyun LDOVDD-supply = <&vdd1v8>; 237*4882a593Smuzhiyun SPKVDDL-supply = <&vdd5v>; 238*4882a593Smuzhiyun SPKVDDR-supply = <&vdd5v>; 239*4882a593Smuzhiyun 240*4882a593Smuzhiyun interrupts = <347>; 241*4882a593Smuzhiyun interrupt-controller; 242*4882a593Smuzhiyun #interrupt-cells = <2>; 243*4882a593Smuzhiyun interrupt-parent = <&gic>; 244*4882a593Smuzhiyun 245*4882a593Smuzhiyun gpio-controller; 246*4882a593Smuzhiyun #gpio-cells = <2>; 247*4882a593Smuzhiyun 248*4882a593Smuzhiyun #sound-dai-cells = <1>; 249*4882a593Smuzhiyun 250*4882a593Smuzhiyun wlf,gpio-defaults = < 251*4882a593Smuzhiyun ARIZONA_GP_FN_TXLRCLK 252*4882a593Smuzhiyun ARIZONA_GP_DEFAULT 253*4882a593Smuzhiyun ARIZONA_GP_DEFAULT 254*4882a593Smuzhiyun ARIZONA_GP_DEFAULT 255*4882a593Smuzhiyun ARIZONA_GP_DEFAULT 256*4882a593Smuzhiyun >; 257*4882a593Smuzhiyun 258*4882a593Smuzhiyun clocks = <&clks 0>, <&clks 1>; 259*4882a593Smuzhiyun clock-names = "mclk1", "mclk2"; 260*4882a593Smuzhiyun 261*4882a593Smuzhiyun wlf,inmode = <ARIZONA_INMODE_DIFF ARIZONA_INMODE_DMIC>; 262*4882a593Smuzhiyun wlf,dmic-ref = <ARIZONA_DMIC_MICBIAS1 ARIZONA_DMIC_MICBIAS3>; 263*4882a593Smuzhiyun 264*4882a593Smuzhiyun wlf,use-jd2; 265*4882a593Smuzhiyun wlf,use-jd2-nopull; 266*4882a593Smuzhiyun wlf,jd-invert; 267*4882a593Smuzhiyun 268*4882a593Smuzhiyun wlf,micd-software-compare; 269*4882a593Smuzhiyun wlf,micd-detect-debounce = <0>; 270*4882a593Smuzhiyun wlf,micd-pol-gpio = <&codec 2 0>; 271*4882a593Smuzhiyun wlf,micd-rate = <ARIZONA_MICD_TIME_8MS>; 272*4882a593Smuzhiyun wlf,micd-dbtime = <4>; 273*4882a593Smuzhiyun wlf,micd-timeout-ms = <100>; 274*4882a593Smuzhiyun wlf,micd-force-micbias; 275*4882a593Smuzhiyun wlf,micd-configs = <0 ARIZONA_DMIC_MICBIAS1 0>, 276*4882a593Smuzhiyun <0x2000 ARIZONA_DMIC_MICBIAS2 1>; 277*4882a593Smuzhiyun 278*4882a593Smuzhiyun wlf,gpsw = <ARIZONA_GPSW_OPEN>; 279*4882a593Smuzhiyun }; 280*4882a593Smuzhiyun }; 281