Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mfd/cirrus,lochnagar.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Cirrus Logic Lochnagar Audio Development Board
8
9maintainers:
10 - patches@opensource.cirrus.com
11
12description: |
13 Lochnagar is an evaluation and development board for Cirrus Logic
14 Smart CODEC and Amp devices. It allows the connection of most Cirrus
15 Logic devices on mini-cards, as well as allowing connection of
16 various application processor systems to provide a full evaluation
17 platform. Audio system topology, clocking and power can all be
18 controlled through the Lochnagar, allowing the device under test
19 to be used in a variety of possible use cases.
20
21 Also see these documents for generic binding information:
22 [1] GPIO : ../gpio/gpio.txt
23
24 And these for relevant defines:
25 [2] include/dt-bindings/pinctrl/lochnagar.h
26 [3] include/dt-bindings/clock/lochnagar.h
27
28 And these documents for the required sub-node binding details:
29 [4] Clock: ../clock/cirrus,lochnagar.yaml
30 [5] Pinctrl: ../pinctrl/cirrus,lochnagar.yaml
31 [6] Sound: ../sound/cirrus,lochnagar.yaml
32 [7] Hardware Monitor: ../hwmon/cirrus,lochnagar.yaml
33
34allOf:
35 - if:
36 properties:
37 compatible:
38 enum:
39 - cirrus,lochnagar2
40 then:
41 properties:
42 lochnagar-hwmon:
43 type: object
44 $ref: /schemas/hwmon/cirrus,lochnagar.yaml#
45
46 lochnagar-sc:
47 type: object
48 $ref: /schemas/sound/cirrus,lochnagar.yaml#
49
50properties:
51 compatible:
52 enum:
53 - cirrus,lochnagar1
54 - cirrus,lochnagar2
55
56 reg:
57 const: 0x22
58
59 reset-gpios:
60 maxItems: 1
61
62 present-gpios:
63 description: |
64 Host present line, indicating the presence of a
65 host system, see [1]. This can be omitted if the present line is
66 tied in hardware.
67 maxItems: 1
68
69 lochnagar-clk:
70 type: object
71 $ref: /schemas/clock/cirrus,lochnagar.yaml#
72
73 lochnagar-pmic32k:
74 type: object
75 $ref: /schemas/clock/fixed-clock.yaml#
76 properties:
77 clock-frequency:
78 const: 32768
79
80 lochnagar-clk12m:
81 type: object
82 $ref: /schemas/clock/fixed-clock.yaml#
83 properties:
84 clock-frequency:
85 const: 12288000
86
87 lochnagar-clk11m:
88 type: object
89 $ref: /schemas/clock/fixed-clock.yaml#
90 properties:
91 clock-frequency:
92 const: 11298600
93
94 lochnagar-clk24m:
95 type: object
96 $ref: /schemas/clock/fixed-clock.yaml#
97 properties:
98 clock-frequency:
99 const: 24576000
100
101 lochnagar-clk22m:
102 type: object
103 $ref: /schemas/clock/fixed-clock.yaml#
104 properties:
105 clock-frequency:
106 const: 22579200
107
108 lochnagar-clk8m:
109 type: object
110 $ref: /schemas/clock/fixed-clock.yaml#
111 properties:
112 clock-frequency:
113 const: 8192000
114
115 lochnagar-usb24m:
116 type: object
117 $ref: /schemas/clock/fixed-clock.yaml#
118 properties:
119 clock-frequency:
120 const: 24576000
121
122 lochnagar-usb12m:
123 type: object
124 $ref: /schemas/clock/fixed-clock.yaml#
125 properties:
126 clock-frequency:
127 const: 12288000
128
129 lochnagar-pinctrl:
130 type: object
131 $ref: /schemas/pinctrl/cirrus,lochnagar.yaml#
132
133 VDDCORE:
134 description:
135 Initialisation data for the VDDCORE regulator, which supplies the
136 CODECs digital core if not being provided by an internal regulator.
137 type: object
138 $ref: /schemas/regulator/regulator.yaml#
139 properties:
140 compatible:
141 enum:
142 - cirrus,lochnagar2-vddcore
143
144 SYSVDD-supply:
145 description:
146 Primary power supply for the Lochnagar.
147 required:
148 - compatible
149
150 MICVDD:
151 description:
152 Initialisation data for the MICVDD regulator, which supplies the
153 CODECs MICVDD.
154 type: object
155 $ref: /schemas/regulator/regulator.yaml#
156 properties:
157 compatible:
158 enum:
159 - cirrus,lochnagar2-micvdd
160
161 SYSVDD-supply:
162 description:
163 Primary power supply for the Lochnagar.
164 required:
165 - compatible
166
167 MIC1VDD:
168 description:
169 Initialisation data for the MIC1VDD supplies.
170 type: object
171 $ref: /schemas/regulator/regulator.yaml#
172 properties:
173 compatible:
174 enum:
175 - cirrus,lochnagar2-mic1vdd
176
177 cirrus,micbias-input:
178 description:
179 A property selecting which of the CODEC minicard micbias outputs
180 should be used.
181 $ref: /schemas/types.yaml#/definitions/uint32
182 minimum: 1
183 maximum: 4
184
185 MICBIAS1-supply:
186 description:
187 Regulator supplies for the MIC1VDD outputs, supplying the digital
188 microphones, normally supplied from the attached CODEC.
189 required:
190 - compatible
191
192 MIC2VDD:
193 description:
194 Initialisation data for the MIC2VDD supplies.
195 type: object
196 $ref: /schemas/regulator/regulator.yaml#
197 properties:
198 compatible:
199 enum:
200 - cirrus,lochnagar2-mic2vdd
201
202 cirrus,micbias-input:
203 description:
204 A property selecting which of the CODEC minicard micbias outputs
205 should be used.
206 $ref: /schemas/types.yaml#/definitions/uint32
207 minimum: 1
208 maximum: 4
209
210 MICBIAS2-supply:
211 description:
212 Regulator supplies for the MIC2VDD outputs, supplying the digital
213 microphones, normally supplied from the attached CODEC.
214 required:
215 - compatible
216
217 VDD1V8:
218 description:
219 Recommended fixed regulator for the VDD1V8 regulator, which supplies
220 the CODECs analog and 1.8V digital supplies.
221 type: object
222 $ref: /schemas/regulator/regulator.yaml#
223 properties:
224 compatible:
225 enum:
226 - regulator-fixed
227
228 regulator-min-microvolt:
229 const: 1800000
230
231 regulator-max-microvolt:
232 const: 1800000
233
234 vin-supply:
235 description:
236 Should be set to same supply as SYSVDD
237 required:
238 - compatible
239 - regulator-min-microvolt
240 - regulator-max-microvolt
241 - regulator-boot-on
242 - regulator-always-on
243 - vin-supply
244
245required:
246 - compatible
247 - reg
248 - reset-gpios
249 - lochnagar-clk
250 - lochnagar-pinctrl
251
252unevaluatedProperties: false
253
254examples:
255 - |
256 #include <dt-bindings/clk/lochnagar.h>
257 #include <dt-bindings/pinctrl/lochnagar.h>
258 i2c@e0004000 {
259 #address-cells = <1>;
260 #size-cells = <0>;
261 reg = <0xe0004000 0x1000>;
262
263 lochnagar: lochnagar@22 {
264 compatible = "cirrus,lochnagar2";
265 reg = <0x22>;
266
267 reset-gpios = <&gpio0 55 0>;
268 present-gpios = <&gpio0 60 0>;
269
270 lochnagarclk: lochnagar-clk {
271 compatible = "cirrus,lochnagar2-clk";
272
273 #clock-cells = <1>;
274 clocks = <&clkaudio>, <&clkpmic>;
275 clock-names = "ln-gf-mclk2", "ln-pmic-32k";
276
277 assigned-clocks = <&lochnagarclk LOCHNAGAR_CDC_MCLK1>,
278 <&lochnagarclk LOCHNAGAR_CDC_MCLK2>;
279 assigned-clock-parents = <&clkaudio>, <&clkpmic>;
280 };
281
282 clkpmic: lochnagar-pmic32k {
283 compatible = "fixed-clock";
284 #clock-cells = <0>;
285 clock-frequency = <32768>;
286 };
287
288 lochnagar-pinctrl {
289 compatible = "cirrus,lochnagar-pinctrl";
290
291 gpio-controller;
292 #gpio-cells = <2>;
293 gpio-ranges = <&lochnagar 0 0 LOCHNAGAR2_PIN_NUM_GPIOS>;
294
295 pinctrl-names = "default";
296 pinctrl-0 = <&pinsettings>;
297
298 pinsettings: pin-settings {
299 ap2aif-pins {
300 input-enable;
301 groups = "gf-aif1";
302 function = "codec-aif3";
303 };
304 codec2aif-pins {
305 output-enable;
306 groups = "codec-aif3";
307 function = "gf-aif1";
308 };
309 };
310 };
311
312 lochnagar-sc {
313 compatible = "cirrus,lochnagar2-soundcard";
314
315 #sound-dai-cells = <1>;
316
317 clocks = <&lochnagarclk LOCHNAGAR_SOUNDCARD_MCLK>;
318 clock-names = "mclk";
319 };
320
321 lochnagar-hwmon {
322 compatible = "cirrus,lochnagar2-hwmon";
323 };
324
325 MIC1VDD {
326 compatible = "cirrus,lochnagar2-mic1vdd";
327
328 cirrus,micbias-input = <3>;
329 };
330
331 MICVDD {
332 compatible = "cirrus,lochnagar2-micvdd";
333
334 SYSVDD-supply = <&wallvdd>;
335
336 regulator-min-microvolt = <3300000>;
337 regulator-max-microvolt = <3300000>;
338 };
339
340 VDD1V8 {
341 compatible = "regulator-fixed";
342
343 regulator-name = "VDD1V8";
344 regulator-min-microvolt = <1800000>;
345 regulator-max-microvolt = <1800000>;
346 regulator-boot-on;
347 regulator-always-on;
348
349 vin-supply = <&wallvdd>;
350 };
351 };
352 };