# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2 --- $id: http://devicetree.org/schemas/mfd/wlf,arizona.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Cirrus Logic/Wolfson Microelectronics Arizona class audio SoCs maintainers: - patches@opensource.cirrus.com description: | These devices are audio SoCs with extensive digital capabilities and a range of analogue I/O. allOf: - $ref: /schemas/spi/spi-peripheral-props.yaml - $ref: /schemas/sound/wlf,arizona.yaml# - $ref: /schemas/regulator/wlf,arizona.yaml# - $ref: /schemas/extcon/wlf,arizona.yaml# - if: properties: compatible: contains: enum: - cirrus,cs47l24 - wlf,wm1831 then: required: - DCVDD-supply - MICVDD-supply else: properties: LDOVDD-supply: description: Digital power supply, used internally to generate DCVDD when internally supplied. - if: properties: compatible: contains: enum: - wlf,wm1814 - wlf,wm5102 - wlf,wm5110 - wlf,wm8280 - wlf,wm8997 - wlf,wm8998 then: properties: DBVDD2-supply: description: Databus power supply. required: - DBVDD2-supply - if: properties: compatible: contains: enum: - wlf,wm1814 - wlf,wm5102 - wlf,wm5110 - wlf,wm8280 - wlf,wm8998 then: properties: DBVDD3-supply: description: Databus power supply. required: - DBVDD3-supply - if: properties: compatible: contains: enum: - cirrus,cs47l24 - wlf,wm1831 - wlf,wm8997 then: properties: SPKVDD-supply: description: Mono speaker driver power supply. required: - SPKVDD-supply else: properties: SPKVDDL-supply: description: Left speaker driver power supply. SPKVDDR-supply: description: Right speaker driver power supply. required: - SPKVDDL-supply - SPKVDDR-supply properties: compatible: enum: - cirrus,cs47l24 - wlf,wm1814 - wlf,wm1831 - wlf,wm5102 - wlf,wm5110 - wlf,wm8280 - wlf,wm8997 - wlf,wm8998 reg: maxItems: 1 AVDD-supply: description: Analogue power supply. CPVDD-supply: description: Charge pump power supply. DBVDD1-supply: description: Databus power supply. DCVDD-supply: description: Digital power supply, normally supplied internally except on cs47l24, wm1831 where it is mandatory. MICVDD-supply: description: Microphone power supply, normally supplied internally except on cs47l24, wm1831 where it is mandatory. gpio-controller: true '#gpio-cells': description: The first cell is the pin number and the second cell is used to specify optional parameters. const: 2 wlf,gpio-defaults: description: A list of GPIO configuration register values. Defines for the appropriate values can found in dt-bindings/mfd/arizona.h. If absent, no configuration of these registers is performed. If any entry has a value that is out of range for a 16 bit register then the chip default will be used. If present exactly five values must be specified. $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 1 maxItems: 5 interrupt-controller: true '#interrupt-cells': description: The first cell is the IRQ number. The second cell is the flags, encoded as trigger masks. const: 2 interrupts: maxItems: 1 clocks: description: Should reference the clocks supplied on MCLK1 and MCLK2. minItems: 1 maxItems: 2 clock-names: description: Should contains two strings mclk1 for the clock supplied on MCLK1, recommended to be a high quality audio reference clock mclk2 for the clock supplied on MCLK2, recommended to be an always on 32k clock. oneOf: - items: - const: mclk1 - items: - const: mclk2 - items: - const: mclk1 - const: mclk2 reset-gpios: maxItems: 1 wlf,reset: description: GPIO specifier for the GPIO controlling RESET deprecated: true $ref: /schemas/types.yaml#/definitions/phandle-array maxItems: 1 required: - compatible - AVDD-supply - CPVDD-supply - DBVDD1-supply - gpio-controller - '#gpio-cells' - interrupt-controller - '#interrupt-cells' - interrupts unevaluatedProperties: false examples: - | #include <dt-bindings/mfd/arizona.h> i2c@e0004000 { #address-cells = <1>; #size-cells = <0>; reg = <0xe0004000 0x1000>; wm5102: codec@1a { compatible = "wlf,wm5102"; reg = <0x1a>; reset-gpios = <&gpio 0>; wlf,ldoena = <&gpio 1>; AVDD-supply = <&vdd1v8>; DBVDD1-supply = <&vdd1v8>; DBVDD2-supply = <&vdd1v8>; DBVDD3-supply = <&vdd1v8>; CPVDD-supply = <&vdd1v8>; LDOVDD-supply = <&vdd1v8>; SPKVDDL-supply = <&vdd5v>; SPKVDDR-supply = <&vdd5v>; interrupts = <347>; interrupt-controller; #interrupt-cells = <2>; interrupt-parent = <&gic>; gpio-controller; #gpio-cells = <2>; #sound-dai-cells = <1>; wlf,gpio-defaults = < ARIZONA_GP_FN_TXLRCLK ARIZONA_GP_DEFAULT ARIZONA_GP_DEFAULT ARIZONA_GP_DEFAULT ARIZONA_GP_DEFAULT >; clocks = <&clks 0>, <&clks 1>; clock-names = "mclk1", "mclk2"; wlf,inmode = <ARIZONA_INMODE_DIFF ARIZONA_INMODE_DMIC>; wlf,dmic-ref = <ARIZONA_DMIC_MICBIAS1 ARIZONA_DMIC_MICBIAS3>; wlf,use-jd2; wlf,use-jd2-nopull; wlf,jd-invert; wlf,micd-software-compare; wlf,micd-detect-debounce = <0>; wlf,micd-pol-gpio = <&codec 2 0>; wlf,micd-rate = <ARIZONA_MICD_TIME_8MS>; wlf,micd-dbtime = <4>; wlf,micd-timeout-ms = <100>; wlf,micd-force-micbias; wlf,micd-configs = <0 ARIZONA_DMIC_MICBIAS1 0>, <0x2000 ARIZONA_DMIC_MICBIAS2 1>; wlf,gpsw = <ARIZONA_GPSW_OPEN>; }; };