Commit 80404e4e authored by Krzysztof Kozlowski's avatar Krzysztof Kozlowski Committed by Mark Brown

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: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Acked-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20230322193541.827291-1-krzysztof.kozlowski@linaro.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 056db840
# 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>;
};
};
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 = <&regulator>;
AVDD2-supply = <&regulator>;
CPVDD-supply = <&regulator>;
DBVDD-supply = <&regulator>;
DCVDD-supply = <&regulator>;
SPKVDD1-supply = <&regulator>;
SPKVDD2-supply = <&regulator>;
};
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment