ASoC: dt-bindings: wlf,wm8994: Convert to dtschema
Convert the Wolfson WM1811/WM8994/WM8958 audio codecs bindings to DT schema. Changes against original binding: 1. Add missing LDO1VDD-supply and LDO2VDD-supply. 2. Use "gpios" suffix for wlf,ldo1ena and wlf,ldo2ena (Linux kernel's gpiolib already looks for both variants). 3. Do not require AVDD1-supply and DCVDD-supply, because at least on Arndale board with Exynos5250 these are being supplied by internal LDOs. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Reviewed-by: Rob Herring <robh@kernel.org> Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20230322193541.827291-1-krzysztof.kozlowski@linaro.org Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
056db84011
commit
80404e4e13
194
Documentation/devicetree/bindings/sound/wlf,wm8994.yaml
Normal file
194
Documentation/devicetree/bindings/sound/wlf,wm8994.yaml
Normal file
@ -0,0 +1,194 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/wlf,wm8994.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Wolfson WM1811/WM8994/WM8958 audio codecs
|
||||
|
||||
maintainers:
|
||||
- Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
|
||||
- patches@opensource.cirrus.com
|
||||
|
||||
description: |
|
||||
These devices support both I2C and SPI (configured with pin strapping on the
|
||||
board).
|
||||
|
||||
Pins on the device (for linking into audio routes):
|
||||
IN1LN, IN1LP, IN2LN, IN2LP:VXRN, IN1RN, IN1RP, IN2RN, IN2RP:VXRP, SPKOUTLP,
|
||||
SPKOUTLN, SPKOUTRP, SPKOUTRN, HPOUT1L, HPOUT1R, HPOUT2P, HPOUT2N, LINEOUT1P,
|
||||
LINEOUT1N, LINEOUT2P, LINEOUT2N.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- wlf,wm1811
|
||||
- wlf,wm8994
|
||||
- wlf,wm8958
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
clock-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: MCLK1
|
||||
- const: MCLK2
|
||||
|
||||
gpio-controller: true
|
||||
|
||||
'#gpio-cells':
|
||||
const: 2
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
'#interrupt-cells':
|
||||
const: 2
|
||||
description:
|
||||
The first cell is the IRQ number. The second cell is the flags, encoded
|
||||
as the trigger masks.
|
||||
|
||||
AVDD1-supply: true
|
||||
AVDD2-supply: true
|
||||
CPVDD-supply: true
|
||||
DBVDD-supply: true
|
||||
DBVDD1-supply: true
|
||||
DBVDD2-supply: true
|
||||
DBVDD3-supply: true
|
||||
DCVDD-supply: true
|
||||
LDO1VDD-supply: true
|
||||
LDO2VDD-supply: true
|
||||
SPKVDD1-supply: true
|
||||
SPKVDD2-supply: true
|
||||
|
||||
'#sound-dai-cells':
|
||||
const: 0
|
||||
|
||||
wlf,gpio-cfg:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
maxItems: 11
|
||||
description:
|
||||
A list of GPIO configuration register values. If absent, no configuration
|
||||
of these registers is performed. If any value is over 0xffff then the
|
||||
register will be left as default. If present 11 values must be supplied.
|
||||
|
||||
wlf,micbias-cfg:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
maxItems: 2
|
||||
description:
|
||||
Two MICBIAS register values for WM1811 or WM8958. If absent the register
|
||||
defaults will be used.
|
||||
|
||||
wlf,ldo1ena-gpios:
|
||||
maxItems: 1
|
||||
description:
|
||||
Control of LDO1ENA input to device.
|
||||
|
||||
wlf,ldo2ena-gpios:
|
||||
maxItems: 1
|
||||
description:
|
||||
Control of LDO2ENA input to device.
|
||||
|
||||
wlf,lineout1-se:
|
||||
type: boolean
|
||||
description:
|
||||
LINEOUT1 is in single ended mode.
|
||||
|
||||
wlf,lineout2-se:
|
||||
type: boolean
|
||||
description:
|
||||
INEOUT2 is in single ended mode.
|
||||
|
||||
wlf,lineout1-feedback:
|
||||
type: boolean
|
||||
description:
|
||||
LINEOUT1 has common mode feedback connected.
|
||||
|
||||
wlf,lineout2-feedback:
|
||||
type: boolean
|
||||
description:
|
||||
LINEOUT2 has common mode feedback connected.
|
||||
|
||||
wlf,ldoena-always-driven:
|
||||
type: boolean
|
||||
description:
|
||||
LDOENA is always driven.
|
||||
|
||||
wlf,spkmode-pu:
|
||||
type: boolean
|
||||
description:
|
||||
Enable the internal pull-up resistor on the SPKMODE pin.
|
||||
|
||||
wlf,csnaddr-pd:
|
||||
type: boolean
|
||||
description:
|
||||
Enable the internal pull-down resistor on the CS/ADDR pin.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- AVDD2-supply
|
||||
- CPVDD-supply
|
||||
- SPKVDD1-supply
|
||||
- SPKVDD2-supply
|
||||
|
||||
allOf:
|
||||
- $ref: dai-common.yaml#
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- wlf,wm1811
|
||||
- wlf,wm8958
|
||||
then:
|
||||
properties:
|
||||
DBVDD-supply: false
|
||||
LDO2VDD-supply: false
|
||||
required:
|
||||
- DBVDD1-supply
|
||||
- DBVDD2-supply
|
||||
- DBVDD3-supply
|
||||
else:
|
||||
properties:
|
||||
DBVDD1-supply: false
|
||||
DBVDD2-supply: false
|
||||
DBVDD3-supply: false
|
||||
required:
|
||||
- DBVDD-supply
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
audio-codec@1a {
|
||||
compatible = "wlf,wm1811";
|
||||
reg = <0x1a>;
|
||||
clocks = <&i2s0 0>;
|
||||
clock-names = "MCLK1";
|
||||
|
||||
AVDD2-supply = <&main_dc_reg>;
|
||||
CPVDD-supply = <&main_dc_reg>;
|
||||
DBVDD1-supply = <&main_dc_reg>;
|
||||
DBVDD2-supply = <&main_dc_reg>;
|
||||
DBVDD3-supply = <&main_dc_reg>;
|
||||
LDO1VDD-supply = <&main_dc_reg>;
|
||||
SPKVDD1-supply = <&main_dc_reg>;
|
||||
SPKVDD2-supply = <&main_dc_reg>;
|
||||
|
||||
wlf,ldo1ena-gpios = <&gpb0 0 GPIO_ACTIVE_HIGH>;
|
||||
wlf,ldo2ena-gpios = <&gpb0 1 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
@ -1,112 +0,0 @@
|
||||
WM1811/WM8994/WM8958 audio CODEC
|
||||
|
||||
These devices support both I2C and SPI (configured with pin strapping
|
||||
on the board).
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : One of "wlf,wm1811", "wlf,wm8994" or "wlf,wm8958".
|
||||
|
||||
- reg : the I2C address of the device for I2C, the chip select
|
||||
number for SPI.
|
||||
|
||||
- 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 (currently unused).
|
||||
|
||||
- power supplies for the device, as covered in
|
||||
Documentation/devicetree/bindings/regulator/regulator.txt, depending
|
||||
on compatible:
|
||||
- for wlf,wm1811 and wlf,wm8958:
|
||||
AVDD1-supply, AVDD2-supply, DBVDD1-supply, DBVDD2-supply, DBVDD3-supply,
|
||||
DCVDD-supply, CPVDD-supply, SPKVDD1-supply, SPKVDD2-supply
|
||||
- for wlf,wm8994:
|
||||
AVDD1-supply, AVDD2-supply, DBVDD-supply, DCVDD-supply, CPVDD-supply,
|
||||
SPKVDD1-supply, SPKVDD2-supply
|
||||
|
||||
Optional properties:
|
||||
|
||||
- interrupts : The interrupt line the IRQ signal for the device is
|
||||
connected to. This is optional, if it is not connected then none
|
||||
of the interrupt related properties should be specified.
|
||||
- interrupt-controller : These devices contain interrupt controllers
|
||||
and may provide interrupt services to other devices if they have an
|
||||
interrupt line connected.
|
||||
- #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
|
||||
|
||||
- clocks : A list of up to two phandle and clock specifier pairs
|
||||
- clock-names : A list of clock names sorted in the same order as clocks.
|
||||
Valid clock names are "MCLK1" and "MCLK2".
|
||||
|
||||
- wlf,gpio-cfg : A list of GPIO configuration register values. If absent,
|
||||
no configuration of these registers is performed. If any value is
|
||||
over 0xffff then the register will be left as default. If present 11
|
||||
values must be supplied.
|
||||
|
||||
- wlf,micbias-cfg : Two MICBIAS register values for WM1811 or
|
||||
WM8958. If absent the register defaults will be used.
|
||||
|
||||
- wlf,ldo1ena : GPIO specifier for control of LDO1ENA input to device.
|
||||
- wlf,ldo2ena : GPIO specifier for control of LDO2ENA input to device.
|
||||
|
||||
- wlf,lineout1-se : If present LINEOUT1 is in single ended mode.
|
||||
- wlf,lineout2-se : If present LINEOUT2 is in single ended mode.
|
||||
|
||||
- wlf,lineout1-feedback : If present LINEOUT1 has common mode feedback
|
||||
connected.
|
||||
- wlf,lineout2-feedback : If present LINEOUT2 has common mode feedback
|
||||
connected.
|
||||
|
||||
- wlf,ldoena-always-driven : If present LDOENA is always driven.
|
||||
|
||||
- wlf,spkmode-pu : If present enable the internal pull-up resistor on
|
||||
the SPKMODE pin.
|
||||
|
||||
- wlf,csnaddr-pd : If present enable the internal pull-down resistor on
|
||||
the CS/ADDR pin.
|
||||
|
||||
Pins on the device (for linking into audio routes):
|
||||
|
||||
* IN1LN
|
||||
* IN1LP
|
||||
* IN2LN
|
||||
* IN2LP:VXRN
|
||||
* IN1RN
|
||||
* IN1RP
|
||||
* IN2RN
|
||||
* IN2RP:VXRP
|
||||
* SPKOUTLP
|
||||
* SPKOUTLN
|
||||
* SPKOUTRP
|
||||
* SPKOUTRN
|
||||
* HPOUT1L
|
||||
* HPOUT1R
|
||||
* HPOUT2P
|
||||
* HPOUT2N
|
||||
* LINEOUT1P
|
||||
* LINEOUT1N
|
||||
* LINEOUT2P
|
||||
* LINEOUT2N
|
||||
|
||||
Example:
|
||||
|
||||
wm8994: codec@1a {
|
||||
compatible = "wlf,wm8994";
|
||||
reg = <0x1a>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
lineout1-se;
|
||||
|
||||
AVDD1-supply = <®ulator>;
|
||||
AVDD2-supply = <®ulator>;
|
||||
CPVDD-supply = <®ulator>;
|
||||
DBVDD-supply = <®ulator>;
|
||||
DCVDD-supply = <®ulator>;
|
||||
SPKVDD1-supply = <®ulator>;
|
||||
SPKVDD2-supply = <®ulator>;
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user