mfd: arizona: Move binding over to dtschema

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
[robh: Drop ref from *-supply]
Signed-off-by: Rob Herring <robh@kernel.org>
This commit is contained in:
Charles Keepax 2020-05-13 10:57:17 +01:00 committed by Rob Herring
parent 575a29ed8f
commit fc543f5367
3 changed files with 284 additions and 105 deletions

View File

@ -1,101 +0,0 @@
Cirrus Logic/Wolfson Microelectronics Arizona class audio SoCs
These devices are audio SoCs with extensive digital capabilities and a range
of analogue I/O.
Required properties:
- compatible : One of the following chip-specific strings:
"cirrus,cs47l24"
"wlf,wm5102"
"wlf,wm5110"
"wlf,wm8280"
"wlf,wm8997"
"wlf,wm8998"
"wlf,wm1814"
"wlf,wm1831"
- reg : I2C slave address when connected using I2C, chip select number when
using SPI.
- interrupts : The interrupt line the /IRQ signal for the device is
connected to.
- interrupt-controller : Arizona class devices contain interrupt controllers
and may provide interrupt services to other devices.
- #interrupt-cells: the number of cells to describe an IRQ, this should be 2.
The first cell is the IRQ number.
The second cell is the flags, encoded as the trigger masks from
Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
- gpio-controller : Indicates this device is a GPIO controller.
- #gpio-cells : Must be 2. The first cell is the pin number and the
second cell is used to specify optional parameters, see ../gpio/gpio.txt
for details.
- AVDD-supply, DBVDD1-supply, CPVDD-supply : Power supplies for the device,
as covered in Documentation/devicetree/bindings/regulator/regulator.txt
- DBVDD2-supply, DBVDD3-supply : Additional databus power supplies (wm5102,
wm5110, wm8280, wm8998, wm1814)
- SPKVDDL-supply, SPKVDDR-supply : Speaker driver power supplies (wm5102,
wm5110, wm8280, wm8998, wm1814)
- SPKVDD-supply : Speaker driver power supply (wm8997)
- DCVDD-supply : Main power supply (cs47l24, wm1831)
- MICVDD-supply : Microphone power supply (cs47l24, wm1831)
Optional properties:
- reset-gpios : GPIO specifier for the GPIO controlling /RESET
- clocks: Should reference the clocks supplied on MCLK1 and MCLK2
- clock-names: 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
- wlf,gpio-defaults : A list of GPIO configuration register values. Defines
for the appropriate values can found in <dt-bindings/mfd/arizona.txt>. 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.
- DCVDD-supply, MICVDD-supply : Power supplies, only need to be specified if
they are being externally supplied. As covered in
Documentation/devicetree/bindings/regulator/regulator.txt
(wm5102, wm5110, wm8280, wm8997, wm8998, wm1814)
Deprecated properties:
- wlf,reset : GPIO specifier for the GPIO controlling /RESET
Also see child specific device properties:
Regulator - ../regulator/arizona-regulator.txt
Extcon - ../extcon/extcon-arizona.txt
Sound - ../sound/wlf,arizona.txt
Example:
codec: wm5102@1a {
compatible = "wlf,wm5102";
reg = <0x1a>;
interrupts = <347>;
interrupt-controller;
#interrupt-cells = <2>;
interrupt-parent = <&gic>;
gpio-controller;
#gpio-cells = <2>;
wlf,gpio-defaults = <
ARIZONA_GP_FN_TXLRCLK
ARIZONA_GP_DEFAULT
ARIZONA_GP_DEFAULT
ARIZONA_GP_DEFAULT
ARIZONA_GP_DEFAULT
>;
};

View File

@ -0,0 +1,280 @@
# 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/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>;
};
};

View File

@ -18260,11 +18260,11 @@ L: patches@opensource.cirrus.com
S: Supported
W: https://github.com/CirrusLogic/linux-drivers/wiki
T: git https://github.com/CirrusLogic/linux-drivers.git
F: Documentation/devicetree/bindings/extcon/extcon-arizona.txt
F: Documentation/devicetree/bindings/mfd/arizona.txt
F: Documentation/devicetree/bindings/extcon/wlf,arizona.yaml
F: Documentation/devicetree/bindings/mfd/wlf,arizona.yaml
F: Documentation/devicetree/bindings/mfd/wm831x.txt
F: Documentation/devicetree/bindings/regulator/arizona-regulator.txt
F: Documentation/devicetree/bindings/sound/wlf,arizona.txt
F: Documentation/devicetree/bindings/regulator/wlf,arizona.yaml
F: Documentation/devicetree/bindings/sound/wlf,arizona.yaml
F: Documentation/hwmon/wm83??.rst
F: arch/arm/mach-s3c64xx/mach-crag6410*
F: drivers/clk/clk-wm83*.c