1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3 * Copyright (c) 2019 BayLibre, SAS
4 * Author: Neil Armstrong <narmstrong@baylibre.com>
5 */
6
7 #include "meson-g12-common.dtsi"
8 #include <dt-bindings/clock/axg-audio-clkc.h>
9 #include <dt-bindings/power/meson-sm1-power.h>
10 #include <dt-bindings/reset/amlogic,meson-axg-audio-arb.h>
11 #include <dt-bindings/reset/amlogic,meson-g12a-audio-reset.h>
12
13 / {
14 compatible = "amlogic,sm1";
15
16 tdmif_a: audio-controller-0 {
17 compatible = "amlogic,axg-tdm-iface";
18 #sound-dai-cells = <0>;
19 sound-name-prefix = "TDM_A";
20 clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>,
21 <&clkc_audio AUD_CLKID_MST_A_SCLK>,
22 <&clkc_audio AUD_CLKID_MST_A_LRCLK>;
23 clock-names = "mclk", "sclk", "lrclk";
24 status = "disabled";
25 };
26
27 tdmif_b: audio-controller-1 {
28 compatible = "amlogic,axg-tdm-iface";
29 #sound-dai-cells = <0>;
30 sound-name-prefix = "TDM_B";
31 clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>,
32 <&clkc_audio AUD_CLKID_MST_B_SCLK>,
33 <&clkc_audio AUD_CLKID_MST_B_LRCLK>;
34 clock-names = "mclk", "sclk", "lrclk";
35 status = "disabled";
36 };
37
38 tdmif_c: audio-controller-2 {
39 compatible = "amlogic,axg-tdm-iface";
40 #sound-dai-cells = <0>;
41 sound-name-prefix = "TDM_C";
42 clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>,
43 <&clkc_audio AUD_CLKID_MST_C_SCLK>,
44 <&clkc_audio AUD_CLKID_MST_C_LRCLK>;
45 clock-names = "mclk", "sclk", "lrclk";
46 status = "disabled";
47 };
48
49 cpus {
50 #address-cells = <0x2>;
51 #size-cells = <0x0>;
52
53 cpu0: cpu@0 {
54 device_type = "cpu";
55 compatible = "arm,cortex-a55";
56 reg = <0x0 0x0>;
57 enable-method = "psci";
58 next-level-cache = <&l2>;
59 #cooling-cells = <2>;
60 };
61
62 cpu1: cpu@1 {
63 device_type = "cpu";
64 compatible = "arm,cortex-a55";
65 reg = <0x0 0x1>;
66 enable-method = "psci";
67 next-level-cache = <&l2>;
68 #cooling-cells = <2>;
69 };
70
71 cpu2: cpu@2 {
72 device_type = "cpu";
73 compatible = "arm,cortex-a55";
74 reg = <0x0 0x2>;
75 enable-method = "psci";
76 next-level-cache = <&l2>;
77 #cooling-cells = <2>;
78 };
79
80 cpu3: cpu@3 {
81 device_type = "cpu";
82 compatible = "arm,cortex-a55";
83 reg = <0x0 0x3>;
84 enable-method = "psci";
85 next-level-cache = <&l2>;
86 #cooling-cells = <2>;
87 };
88
89 l2: l2-cache0 {
90 compatible = "cache";
91 };
92 };
93
94 cpu_opp_table: opp-table {
95 compatible = "operating-points-v2";
96 opp-shared;
97
98 opp-1000000000 {
99 opp-hz = /bits/ 64 <1000000000>;
100 opp-microvolt = <770000>;
101 };
102
103 opp-1200000000 {
104 opp-hz = /bits/ 64 <1200000000>;
105 opp-microvolt = <780000>;
106 };
107
108 opp-1404000000 {
109 opp-hz = /bits/ 64 <1404000000>;
110 opp-microvolt = <790000>;
111 };
112
113 opp-1500000000 {
114 opp-hz = /bits/ 64 <1500000000>;
115 opp-microvolt = <800000>;
116 };
117
118 opp-1608000000 {
119 opp-hz = /bits/ 64 <1608000000>;
120 opp-microvolt = <810000>;
121 };
122
123 opp-1704000000 {
124 opp-hz = /bits/ 64 <1704000000>;
125 opp-microvolt = <850000>;
126 };
127
128 opp-1800000000 {
129 opp-hz = /bits/ 64 <1800000000>;
130 opp-microvolt = <900000>;
131 };
132
133 opp-1908000000 {
134 opp-hz = /bits/ 64 <1908000000>;
135 opp-microvolt = <950000>;
136 };
137 };
138 };
139
140 &apb {
141 audio: bus@60000 {
142 compatible = "simple-bus";
143 reg = <0x0 0x60000 0x0 0x1000>;
144 #address-cells = <2>;
145 #size-cells = <2>;
146 ranges = <0x0 0x0 0x0 0x60000 0x0 0x1000>;
147
148 clkc_audio: clock-controller@0 {
149 status = "disabled";
150 compatible = "amlogic,sm1-audio-clkc";
151 reg = <0x0 0x0 0x0 0xb4>;
152 #clock-cells = <1>;
153 #reset-cells = <1>;
154
155 clocks = <&clkc CLKID_AUDIO>,
156 <&clkc CLKID_MPLL0>,
157 <&clkc CLKID_MPLL1>,
158 <&clkc CLKID_MPLL2>,
159 <&clkc CLKID_MPLL3>,
160 <&clkc CLKID_HIFI_PLL>,
161 <&clkc CLKID_FCLK_DIV3>,
162 <&clkc CLKID_FCLK_DIV4>,
163 <&clkc CLKID_FCLK_DIV5>;
164 clock-names = "pclk",
165 "mst_in0",
166 "mst_in1",
167 "mst_in2",
168 "mst_in3",
169 "mst_in4",
170 "mst_in5",
171 "mst_in6",
172 "mst_in7";
173
174 resets = <&reset RESET_AUDIO>;
175 };
176
177 toddr_a: audio-controller@100 {
178 compatible = "amlogic,sm1-toddr",
179 "amlogic,axg-toddr";
180 reg = <0x0 0x100 0x0 0x2c>;
181 #sound-dai-cells = <0>;
182 sound-name-prefix = "TODDR_A";
183 interrupts = <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>;
184 clocks = <&clkc_audio AUD_CLKID_TODDR_A>;
185 resets = <&arb AXG_ARB_TODDR_A>,
186 <&clkc_audio AUD_RESET_TODDR_A>;
187 reset-names = "arb", "rst";
188 amlogic,fifo-depth = <8192>;
189 status = "disabled";
190 };
191
192 toddr_b: audio-controller@140 {
193 compatible = "amlogic,sm1-toddr",
194 "amlogic,axg-toddr";
195 reg = <0x0 0x140 0x0 0x2c>;
196 #sound-dai-cells = <0>;
197 sound-name-prefix = "TODDR_B";
198 interrupts = <GIC_SPI 149 IRQ_TYPE_EDGE_RISING>;
199 clocks = <&clkc_audio AUD_CLKID_TODDR_B>;
200 resets = <&arb AXG_ARB_TODDR_B>,
201 <&clkc_audio AUD_RESET_TODDR_B>;
202 reset-names = "arb", "rst";
203 amlogic,fifo-depth = <256>;
204 status = "disabled";
205 };
206
207 toddr_c: audio-controller@180 {
208 compatible = "amlogic,sm1-toddr",
209 "amlogic,axg-toddr";
210 reg = <0x0 0x180 0x0 0x2c>;
211 #sound-dai-cells = <0>;
212 sound-name-prefix = "TODDR_C";
213 interrupts = <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>;
214 clocks = <&clkc_audio AUD_CLKID_TODDR_C>;
215 resets = <&arb AXG_ARB_TODDR_C>,
216 <&clkc_audio AUD_RESET_TODDR_C>;
217 reset-names = "arb", "rst";
218 amlogic,fifo-depth = <256>;
219 status = "disabled";
220 };
221
222 frddr_a: audio-controller@1c0 {
223 compatible = "amlogic,sm1-frddr",
224 "amlogic,axg-frddr";
225 reg = <0x0 0x1c0 0x0 0x2c>;
226 #sound-dai-cells = <0>;
227 sound-name-prefix = "FRDDR_A";
228 interrupts = <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>;
229 clocks = <&clkc_audio AUD_CLKID_FRDDR_A>;
230 resets = <&arb AXG_ARB_FRDDR_A>,
231 <&clkc_audio AUD_RESET_FRDDR_A>;
232 reset-names = "arb", "rst";
233 amlogic,fifo-depth = <512>;
234 status = "disabled";
235 };
236
237 frddr_b: audio-controller@200 {
238 compatible = "amlogic,sm1-frddr",
239 "amlogic,axg-frddr";
240 reg = <0x0 0x200 0x0 0x2c>;
241 #sound-dai-cells = <0>;
242 sound-name-prefix = "FRDDR_B";
243 interrupts = <GIC_SPI 153 IRQ_TYPE_EDGE_RISING>;
244 clocks = <&clkc_audio AUD_CLKID_FRDDR_B>;
245 resets = <&arb AXG_ARB_FRDDR_B>,
246 <&clkc_audio AUD_RESET_FRDDR_B>;
247 reset-names = "arb", "rst";
248 amlogic,fifo-depth = <256>;
249 status = "disabled";
250 };
251
252 frddr_c: audio-controller@240 {
253 compatible = "amlogic,sm1-frddr",
254 "amlogic,axg-frddr";
255 reg = <0x0 0x240 0x0 0x2c>;
256 #sound-dai-cells = <0>;
257 sound-name-prefix = "FRDDR_C";
258 interrupts = <GIC_SPI 154 IRQ_TYPE_EDGE_RISING>;
259 clocks = <&clkc_audio AUD_CLKID_FRDDR_C>;
260 resets = <&arb AXG_ARB_FRDDR_C>,
261 <&clkc_audio AUD_RESET_FRDDR_C>;
262 reset-names = "arb", "rst";
263 amlogic,fifo-depth = <256>;
264 status = "disabled";
265 };
266
267 arb: reset-controller@280 {
268 status = "disabled";
269 compatible = "amlogic,meson-sm1-audio-arb";
270 reg = <0x0 0x280 0x0 0x4>;
271 #reset-cells = <1>;
272 clocks = <&clkc_audio AUD_CLKID_DDR_ARB>;
273 };
274
275 tdmin_a: audio-controller@300 {
276 compatible = "amlogic,sm1-tdmin",
277 "amlogic,axg-tdmin";
278 reg = <0x0 0x300 0x0 0x40>;
279 sound-name-prefix = "TDMIN_A";
280 resets = <&clkc_audio AUD_RESET_TDMIN_A>;
281 clocks = <&clkc_audio AUD_CLKID_TDMIN_A>,
282 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK>,
283 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK_SEL>,
284 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>,
285 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>;
286 clock-names = "pclk", "sclk", "sclk_sel",
287 "lrclk", "lrclk_sel";
288 status = "disabled";
289 };
290
291 tdmin_b: audio-controller@340 {
292 compatible = "amlogic,sm1-tdmin",
293 "amlogic,axg-tdmin";
294 reg = <0x0 0x340 0x0 0x40>;
295 sound-name-prefix = "TDMIN_B";
296 resets = <&clkc_audio AUD_RESET_TDMIN_B>;
297 clocks = <&clkc_audio AUD_CLKID_TDMIN_B>,
298 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK>,
299 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK_SEL>,
300 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>,
301 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>;
302 clock-names = "pclk", "sclk", "sclk_sel",
303 "lrclk", "lrclk_sel";
304 status = "disabled";
305 };
306
307 tdmin_c: audio-controller@380 {
308 compatible = "amlogic,sm1-tdmin",
309 "amlogic,axg-tdmin";
310 reg = <0x0 0x380 0x0 0x40>;
311 sound-name-prefix = "TDMIN_C";
312 resets = <&clkc_audio AUD_RESET_TDMIN_C>;
313 clocks = <&clkc_audio AUD_CLKID_TDMIN_C>,
314 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK>,
315 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK_SEL>,
316 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>,
317 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>;
318 clock-names = "pclk", "sclk", "sclk_sel",
319 "lrclk", "lrclk_sel";
320 status = "disabled";
321 };
322
323 tdmin_lb: audio-controller@3c0 {
324 compatible = "amlogic,sm1-tdmin",
325 "amlogic,axg-tdmin";
326 reg = <0x0 0x3c0 0x0 0x40>;
327 sound-name-prefix = "TDMIN_LB";
328 resets = <&clkc_audio AUD_RESET_TDMIN_LB>;
329 clocks = <&clkc_audio AUD_CLKID_TDMIN_LB>,
330 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK>,
331 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK_SEL>,
332 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>,
333 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>;
334 clock-names = "pclk", "sclk", "sclk_sel",
335 "lrclk", "lrclk_sel";
336 status = "disabled";
337 };
338
339 spdifin: audio-controller@400 {
340 compatible = "amlogic,g12a-spdifin",
341 "amlogic,axg-spdifin";
342 reg = <0x0 0x400 0x0 0x30>;
343 #sound-dai-cells = <0>;
344 sound-name-prefix = "SPDIFIN";
345 interrupts = <GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
346 clocks = <&clkc_audio AUD_CLKID_SPDIFIN>,
347 <&clkc_audio AUD_CLKID_SPDIFIN_CLK>;
348 clock-names = "pclk", "refclk";
349 resets = <&clkc_audio AUD_RESET_SPDIFIN>;
350 status = "disabled";
351 };
352
353 spdifout_a: audio-controller@480 {
354 compatible = "amlogic,g12a-spdifout",
355 "amlogic,axg-spdifout";
356 reg = <0x0 0x480 0x0 0x50>;
357 #sound-dai-cells = <0>;
358 sound-name-prefix = "SPDIFOUT_A";
359 clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>,
360 <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>;
361 clock-names = "pclk", "mclk";
362 resets = <&clkc_audio AUD_RESET_SPDIFOUT>;
363 status = "disabled";
364 };
365
366 tdmout_a: audio-controller@500 {
367 compatible = "amlogic,sm1-tdmout";
368 reg = <0x0 0x500 0x0 0x40>;
369 sound-name-prefix = "TDMOUT_A";
370 resets = <&clkc_audio AUD_RESET_TDMOUT_A>;
371 clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>,
372 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>,
373 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>,
374 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>,
375 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>;
376 clock-names = "pclk", "sclk", "sclk_sel",
377 "lrclk", "lrclk_sel";
378 status = "disabled";
379 };
380
381 tdmout_b: audio-controller@540 {
382 compatible = "amlogic,sm1-tdmout";
383 reg = <0x0 0x540 0x0 0x40>;
384 sound-name-prefix = "TDMOUT_B";
385 resets = <&clkc_audio AUD_RESET_TDMOUT_B>;
386 clocks = <&clkc_audio AUD_CLKID_TDMOUT_B>,
387 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK>,
388 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK_SEL>,
389 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>,
390 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>;
391 clock-names = "pclk", "sclk", "sclk_sel",
392 "lrclk", "lrclk_sel";
393 status = "disabled";
394 };
395
396 tdmout_c: audio-controller@580 {
397 compatible = "amlogic,sm1-tdmout";
398 reg = <0x0 0x580 0x0 0x40>;
399 sound-name-prefix = "TDMOUT_C";
400 resets = <&clkc_audio AUD_RESET_TDMOUT_C>;
401 clocks = <&clkc_audio AUD_CLKID_TDMOUT_C>,
402 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK>,
403 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK_SEL>,
404 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>,
405 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>;
406 clock-names = "pclk", "sclk", "sclk_sel",
407 "lrclk", "lrclk_sel";
408 status = "disabled";
409 };
410
411 toacodec: audio-controller@740 {
412 compatible = "amlogic,sm1-toacodec",
413 "amlogic,g12a-toacodec";
414 reg = <0x0 0x740 0x0 0x4>;
415 #sound-dai-cells = <1>;
416 sound-name-prefix = "TOACODEC";
417 resets = <&clkc_audio AUD_RESET_TOACODEC>;
418 status = "disabled";
419 };
420
421 tohdmitx: audio-controller@744 {
422 compatible = "amlogic,sm1-tohdmitx",
423 "amlogic,g12a-tohdmitx";
424 reg = <0x0 0x744 0x0 0x4>;
425 #sound-dai-cells = <1>;
426 sound-name-prefix = "TOHDMITX";
427 resets = <&clkc_audio AUD_RESET_TOHDMITX>;
428 status = "disabled";
429 };
430
431 toddr_d: audio-controller@840 {
432 compatible = "amlogic,sm1-toddr",
433 "amlogic,axg-toddr";
434 reg = <0x0 0x840 0x0 0x2c>;
435 #sound-dai-cells = <0>;
436 sound-name-prefix = "TODDR_D";
437 interrupts = <GIC_SPI 49 IRQ_TYPE_EDGE_RISING>;
438 clocks = <&clkc_audio AUD_CLKID_TODDR_D>;
439 resets = <&arb AXG_ARB_TODDR_D>,
440 <&clkc_audio AUD_RESET_TODDR_D>;
441 reset-names = "arb", "rst";
442 amlogic,fifo-depth = <256>;
443 status = "disabled";
444 };
445
446 frddr_d: audio-controller@880 {
447 compatible = "amlogic,sm1-frddr",
448 "amlogic,axg-frddr";
449 reg = <0x0 0x880 0x0 0x2c>;
450 #sound-dai-cells = <0>;
451 sound-name-prefix = "FRDDR_D";
452 interrupts = <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
453 clocks = <&clkc_audio AUD_CLKID_FRDDR_D>;
454 resets = <&arb AXG_ARB_FRDDR_D>,
455 <&clkc_audio AUD_RESET_FRDDR_D>;
456 reset-names = "arb", "rst";
457 amlogic,fifo-depth = <256>;
458 status = "disabled";
459 };
460 };
461
462 pdm: audio-controller@61000 {
463 compatible = "amlogic,sm1-pdm",
464 "amlogic,axg-pdm";
465 reg = <0x0 0x61000 0x0 0x34>;
466 #sound-dai-cells = <0>;
467 sound-name-prefix = "PDM";
468 clocks = <&clkc_audio AUD_CLKID_PDM>,
469 <&clkc_audio AUD_CLKID_PDM_DCLK>,
470 <&clkc_audio AUD_CLKID_PDM_SYSCLK>;
471 clock-names = "pclk", "dclk", "sysclk";
472 resets = <&clkc_audio AUD_RESET_PDM>;
473 status = "disabled";
474 };
475 };
476
477 &cecb_AO {
478 compatible = "amlogic,meson-sm1-ao-cec";
479 };
480
481 &clk_msr {
482 compatible = "amlogic,meson-sm1-clk-measure";
483 };
484
485
486 &clkc {
487 compatible = "amlogic,sm1-clkc";
488 };
489
490 &cpu_thermal {
491 cooling-maps {
492 map0 {
493 trip = <&cpu_passive>;
494 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
495 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
496 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
497 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
498 };
499
500 map1 {
501 trip = <&cpu_hot>;
502 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
503 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
504 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
505 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
506 };
507 };
508 };
509
510 ðmac {
511 power-domains = <&pwrc PWRC_SM1_ETH_ID>;
512 };
513
514 &gpio_intc {
515 compatible = "amlogic,meson-sm1-gpio-intc",
516 "amlogic,meson-gpio-intc";
517 };
518
519 &pcie {
520 power-domains = <&pwrc PWRC_SM1_PCIE_ID>;
521 };
522
523 &pwrc {
524 compatible = "amlogic,meson-sm1-pwrc";
525 };
526
527 &simplefb_cvbs {
528 power-domains = <&pwrc PWRC_SM1_VPU_ID>;
529 };
530
531 &simplefb_hdmi {
532 power-domains = <&pwrc PWRC_SM1_VPU_ID>;
533 };
534
535 &vdec {
536 compatible = "amlogic,sm1-vdec";
537 };
538
539 &vpu {
540 power-domains = <&pwrc PWRC_SM1_VPU_ID>;
541 };
542
543 &usb {
544 power-domains = <&pwrc PWRC_SM1_USB_ID>;
545 };
Cache object: d6c5069d527b3c9466061a25a0413c72
|