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