2020-05-13 10:57:20 +01:00
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id : http://devicetree.org/schemas/mfd/cirrus,madera.yaml#
$schema : http://devicetree.org/meta-schemas/core.yaml#
title : Cirrus Logic Madera class audio CODECs Multi-Functional Device
maintainers :
- patches@opensource.cirrus.com
description : |
These devices are audio SoCs with extensive digital capabilities and a range
of analogue I/O.
See also the child driver bindings in :
bindings/pinctrl/cirrus,madera.yaml
bindings/regulator/wlf,arizona.yaml
bindings/sound/cirrus,madera.yaml
allOf :
- $ref : /schemas/pinctrl/cirrus,madera.yaml#
- $ref : /schemas/regulator/wlf,arizona.yaml#
- $ref : /schemas/sound/cirrus,madera.yaml#
- if :
properties :
compatible :
contains :
enum :
- cirrus,cs47l85
- wlf,wm1840
then :
properties :
SPKVDDL-supply :
description :
Left speaker driver power supply.
SPKVDDR-supply :
description :
Right speaker driver power supply.
required :
- SPKVDDL-supply
- SPKVDDR-supply
else :
required :
- DCVDD-supply
- if :
properties :
compatible :
contains :
enum :
- cirrus,cs47l15
- cirrus,cs47l35
then :
properties :
SPKVDD-supply :
description :
Mono speaker driver power supply.
required :
- SPKVDD-supply
- if :
properties :
compatible :
contains :
enum :
- cirrus,cs47l35
- cirrus,cs47l85
- cirrus,cs47l90
- cirrus,cs47l91
- wlf,wm1840
then :
properties :
DBVDD2-supply :
description :
Databus power supply.
required :
- DBVDD2-supply
- if :
properties :
compatible :
contains :
enum :
- cirrus,cs47l85
- cirrus,cs47l90
- cirrus,cs47l91
- wlf,wm1840
then :
properties :
DBVDD3-supply :
description :
Databus power supply.
DBVDD4-supply :
description :
Databus power supply.
- if :
2020-04-20 21:24:47 -05:00
properties :
compatible :
contains :
enum :
- cirrus,cs47l15
2020-05-13 10:57:20 +01:00
then :
required :
- MICVDD-supply
else :
properties :
CPVDD2-supply :
description :
Secondary charge pump power supply.
required :
- CPVDD2-supply
properties :
compatible :
enum :
- cirrus,cs47l15
- cirrus,cs47l35
- cirrus,cs47l85
- cirrus,cs47l90
- cirrus,cs47l91
- cirrus,cs42l92
- cirrus,cs47l92
- cirrus,cs47l93
- cirrus,wm1840
reg :
maxItems : 1
gpio-controller : true
'#gpio-cells' :
description :
The first cell is the pin number. The second cell is reserved for
future use and must be zero
const : 2
interrupt-controller : true
'#interrupt-cells' :
description :
The first cell is the IRQ number.
The second cell is the flags, encoded as the trigger masks from
bindings/interrupt-controller/interrupts.txt
const : 2
interrupts :
maxItems : 1
reset-gpios :
description :
One entry specifying the GPIO controlling /RESET. As defined in
bindings/gpio.txt. Although optional, it is strongly recommended
to use a hardware reset.
maxItems : 1
clocks :
description :
Should reference the clocks supplied on MCLK1, MCLK2 and MCLK3.
minItems : 1
maxItems : 3
clock-names :
description : |
May contain up to three strings :
"mclk1" For the clock supplied on MCLK1, recommended to be a
high quality audio reference clock.
"mclk2" For the clock supplied on MCLK2, required to be an
always on 32k clock.
"mclk3" For the clock supplied on MCLK3.
oneOf :
- items :
2020-04-20 21:24:47 -05:00
- const : mclk1
2020-05-13 10:57:20 +01:00
- items :
2020-04-20 21:24:47 -05:00
- const : mclk2
2020-05-13 10:57:20 +01:00
- items :
2020-04-20 21:24:47 -05:00
- const : mclk3
2020-05-13 10:57:20 +01:00
- items :
2020-04-20 21:24:47 -05:00
- const : mclk1
- const : mclk2
2020-05-13 10:57:20 +01:00
- items :
2020-04-20 21:24:47 -05:00
- const : mclk1
- const : mclk3
2020-05-13 10:57:20 +01:00
- items :
2020-04-20 21:24:47 -05:00
- const : mclk2
- const : mclk3
2020-05-13 10:57:20 +01:00
- items :
2020-04-20 21:24:47 -05:00
- const : mclk1
- const : mclk2
- const : mclk3
2020-05-13 10:57:20 +01:00
AVDD-supply :
description :
Analogue power supply.
DBVDD1-supply :
description :
Databus power supply.
CPVDD1-supply :
description :
Charge pump power supply.
DCVDD-supply :
description :
Digital power supply, optional on CS47L85, WM1840 where it can
be supplied internally.
MICVDD-supply :
description :
Microphone power supply, normally supplied internally except on
cs47l24, wm1831 where it is mandatory.
required :
- compatible
- gpio-controller
- '#gpio-cells'
- interrupt-controller
- '#interrupt-cells'
- interrupts
- AVDD-supply
- DBVDD1-supply
- CPVDD1-supply
unevaluatedProperties : false
examples :
- |
#include <dt-bindings/sound/madera.h>
i2c@e0004000 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0xe0004000 0x1000>;
cs47l85 : codec@1a {
compatible = "cirrus,cs47l85";
reg = <0x1a>;
reset-gpios = <&gpio 0>;
wlf,ldoena = <&gpio 1>;
interrupt-controller;
#interrupt-cells = <2>;
2022-01-18 19:56:11 -06:00
interrupts = <4 1 0>;
2020-05-13 10:57:20 +01:00
gpio-controller;
#gpio-cells = <2>;
AVDD-supply = <&vdd1v8>;
DBVDD1-supply = <&vdd1v8>;
DBVDD2-supply = <&vdd1v8>;
DBVDD3-supply = <&vdd1v8>;
DBVDD4-supply = <&vdd1v8>;
CPVDD1-supply = <&vdd1v8>;
CPVDD2-supply = <&vdd1v2>;
SPKVDDL-supply = <&vdd5v>;
SPKVDDR-supply = <&vdd5v>;
clocks = <&clks 0>, <&clks 1>, <&clks 2>;
clock-names = "mclk1", "mclk2", "mclk3";
cirrus,dmic-ref = <0 0 MADERA_DMIC_REF_MICBIAS1>;
cirrus,inmode = <
MADERA_INMODE_SE MADERA_INMODE_SE
MADERA_INMODE_SE MADERA_INMODE_SE
MADERA_INMODE_DIFF MADERA_INMODE_DIFF
>;
cirrus,max-channels-clocked = <2 0 0>;
pinctrl-names = "default";
pinctrl-0 = <&pinsettings>;
pinsettings : pin-settings {
aif1-pins {
groups = "aif1";
function = "aif1";
bias-bus-hold;
};
aif2-pins {
groups = "aif2";
function = "aif2";
bias-bus-hold;
};
aif3-pins {
groups = "aif3";
function = "aif3";
bias-bus-hold;
};
};
};
};