blob: 7902f3c5d2892c9e184af0746ac0e3535bb3316b [file] [log] [blame]
# 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>;
};
};