1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
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>;
};
};
|