blob: 517519e6e87f147a2b613d793e6ad9e851870452 [file] [log] [blame]
Neil Armstrong14992182019-07-29 15:26:17 +02001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2018 Amlogic, Inc. All rights reserved.
4 */
5
6#include <dt-bindings/phy/phy.h>
7#include <dt-bindings/gpio/gpio.h>
Neil Armstrong14992182019-07-29 15:26:17 +02008#include <dt-bindings/clock/g12a-clkc.h>
9#include <dt-bindings/clock/g12a-aoclkc.h>
10#include <dt-bindings/interrupt-controller/irq.h>
11#include <dt-bindings/interrupt-controller/arm-gic.h>
Neil Armstrong14992182019-07-29 15:26:17 +020012#include <dt-bindings/reset/amlogic,meson-g12a-reset.h>
Guillaume La Roquee7251ed2019-10-04 11:01:11 +020013#include <dt-bindings/thermal/thermal.h>
Neil Armstrong14992182019-07-29 15:26:17 +020014
15/ {
16 interrupt-parent = <&gic>;
17 #address-cells = <2>;
18 #size-cells = <2>;
19
Alexander Steinab547c42021-02-03 20:28:24 +010020 aliases {
21 mmc0 = &sd_emmc_b; /* SD card */
22 mmc1 = &sd_emmc_c; /* eMMC */
23 mmc2 = &sd_emmc_a; /* SDIO */
24 };
25
Neil Armstrong15767cf2019-10-03 15:08:41 +020026 chosen {
27 #address-cells = <2>;
28 #size-cells = <2>;
29 ranges;
30
31 simplefb_cvbs: framebuffer-cvbs {
32 compatible = "amlogic,simple-framebuffer",
33 "simple-framebuffer";
34 amlogic,pipeline = "vpu-cvbs";
35 clocks = <&clkc CLKID_HDMI>,
36 <&clkc CLKID_HTX_PCLK>,
37 <&clkc CLKID_VPU_INTR>;
38 status = "disabled";
39 };
40
41 simplefb_hdmi: framebuffer-hdmi {
42 compatible = "amlogic,simple-framebuffer",
43 "simple-framebuffer";
44 amlogic,pipeline = "vpu-hdmi";
45 clocks = <&clkc CLKID_HDMI>,
46 <&clkc CLKID_HTX_PCLK>,
47 <&clkc CLKID_VPU_INTR>;
48 status = "disabled";
49 };
50 };
51
Neil Armstrong14992182019-07-29 15:26:17 +020052 efuse: efuse {
53 compatible = "amlogic,meson-gxbb-efuse";
54 clocks = <&clkc CLKID_EFUSE>;
55 #address-cells = <1>;
56 #size-cells = <1>;
57 read-only;
Carlo Caionede82e742019-07-31 09:23:38 +010058 secure-monitor = <&sm>;
Neil Armstrong14992182019-07-29 15:26:17 +020059 };
60
Alexander Steinbb98a6f2021-10-26 20:28:12 +020061 gpu_opp_table: opp-table-gpu {
Martin Blumenstingl916a0ed2020-07-19 19:32:13 +020062 compatible = "operating-points-v2";
63
64 opp-124999998 {
65 opp-hz = /bits/ 64 <124999998>;
66 opp-microvolt = <800000>;
67 };
68 opp-249999996 {
69 opp-hz = /bits/ 64 <249999996>;
70 opp-microvolt = <800000>;
71 };
72 opp-285714281 {
73 opp-hz = /bits/ 64 <285714281>;
74 opp-microvolt = <800000>;
75 };
76 opp-399999994 {
77 opp-hz = /bits/ 64 <399999994>;
78 opp-microvolt = <800000>;
79 };
80 opp-499999992 {
81 opp-hz = /bits/ 64 <499999992>;
82 opp-microvolt = <800000>;
83 };
84 opp-666666656 {
85 opp-hz = /bits/ 64 <666666656>;
86 opp-microvolt = <800000>;
87 };
88 opp-799999987 {
89 opp-hz = /bits/ 64 <799999987>;
90 opp-microvolt = <800000>;
91 };
92 };
93
Neil Armstrong14992182019-07-29 15:26:17 +020094 psci {
95 compatible = "arm,psci-1.0";
96 method = "smc";
97 };
98
99 reserved-memory {
100 #address-cells = <2>;
101 #size-cells = <2>;
102 ranges;
103
104 /* 3 MiB reserved for ARM Trusted Firmware (BL31) */
105 secmon_reserved: secmon@5000000 {
106 reg = <0x0 0x05000000 0x0 0x300000>;
107 no-map;
108 };
109
110 linux,cma {
111 compatible = "shared-dma-pool";
112 reusable;
113 size = <0x0 0x10000000>;
114 alignment = <0x0 0x400000>;
115 linux,cma-default;
116 };
117 };
118
119 sm: secure-monitor {
120 compatible = "amlogic,meson-gxbb-sm";
121 };
122
123 soc {
124 compatible = "simple-bus";
125 #address-cells = <2>;
126 #size-cells = <2>;
127 ranges;
128
Neil Armstrong1f8607d2019-09-16 14:50:21 +0200129 pcie: pcie@fc000000 {
130 compatible = "amlogic,g12a-pcie", "snps,dw-pcie";
Kevin Hilmand9421d62021-04-21 13:48:32 -0700131 reg = <0x0 0xfc000000 0x0 0x400000>,
132 <0x0 0xff648000 0x0 0x2000>,
133 <0x0 0xfc400000 0x0 0x200000>;
Neil Armstrong1f8607d2019-09-16 14:50:21 +0200134 reg-names = "elbi", "cfg", "config";
135 interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
136 #interrupt-cells = <1>;
137 interrupt-map-mask = <0 0 0 0>;
138 interrupt-map = <0 0 0 0 &gic GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
139 bus-range = <0x0 0xff>;
140 #address-cells = <3>;
141 #size-cells = <2>;
142 device_type = "pci";
Kevin Hilmand9421d62021-04-21 13:48:32 -0700143 ranges = <0x81000000 0 0 0x0 0xfc600000 0 0x00100000>,
144 <0x82000000 0 0xfc700000 0x0 0xfc700000 0 0x1900000>;
Neil Armstrong1f8607d2019-09-16 14:50:21 +0200145
146 clocks = <&clkc CLKID_PCIE_PHY
147 &clkc CLKID_PCIE_COMB
148 &clkc CLKID_PCIE_PLL>;
149 clock-names = "general",
150 "pclk",
151 "port";
152 resets = <&reset RESET_PCIE_CTRL_A>,
153 <&reset RESET_PCIE_APB>;
154 reset-names = "port",
155 "apb";
156 num-lanes = <1>;
157 phys = <&usb3_pcie_phy PHY_TYPE_PCIE>;
158 phy-names = "pcie";
159 status = "disabled";
160 };
161
Neil Armstrong14992182019-07-29 15:26:17 +0200162 ethmac: ethernet@ff3f0000 {
Martin Blumenstingl1fdc97a2020-09-25 23:17:43 +0200163 compatible = "amlogic,meson-g12a-dwmac",
Neil Armstrong14992182019-07-29 15:26:17 +0200164 "snps,dwmac-3.70a",
165 "snps,dwmac";
Neil Armstrong3ad6c9e2019-08-23 09:02:35 +0200166 reg = <0x0 0xff3f0000 0x0 0x10000>,
167 <0x0 0xff634540 0x0 0x8>;
Neil Armstrong14992182019-07-29 15:26:17 +0200168 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
169 interrupt-names = "macirq";
170 clocks = <&clkc CLKID_ETH>,
171 <&clkc CLKID_FCLK_DIV2>,
Martin Blumenstingl32b5f4b2020-06-20 18:23:47 +0200172 <&clkc CLKID_MPLL2>,
173 <&clkc CLKID_FCLK_DIV2>;
174 clock-names = "stmmaceth", "clkin0", "clkin1",
175 "timing-adjustment";
Jerome Brunetef689842019-07-18 11:03:01 +0200176 rx-fifo-depth = <4096>;
177 tx-fifo-depth = <2048>;
Neil Armstrong14992182019-07-29 15:26:17 +0200178 status = "disabled";
179
180 mdio0: mdio {
181 #address-cells = <1>;
182 #size-cells = <0>;
183 compatible = "snps,dwmac-mdio";
184 };
185 };
186
187 apb: bus@ff600000 {
188 compatible = "simple-bus";
189 reg = <0x0 0xff600000 0x0 0x200000>;
190 #address-cells = <2>;
191 #size-cells = <2>;
192 ranges = <0x0 0x0 0x0 0xff600000 0x0 0x200000>;
193
194 hdmi_tx: hdmi-tx@0 {
195 compatible = "amlogic,meson-g12a-dw-hdmi";
196 reg = <0x0 0x0 0x0 0x10000>;
197 interrupts = <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
198 resets = <&reset RESET_HDMITX_CAPB3>,
199 <&reset RESET_HDMITX_PHY>,
200 <&reset RESET_HDMITX>;
201 reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
202 clocks = <&clkc CLKID_HDMI>,
203 <&clkc CLKID_HTX_PCLK>,
204 <&clkc CLKID_VPU_INTR>;
205 clock-names = "isfr", "iahb", "venci";
206 #address-cells = <1>;
207 #size-cells = <0>;
208 #sound-dai-cells = <0>;
209 status = "disabled";
210
211 /* VPU VENC Input */
212 hdmi_tx_venc_port: port@0 {
213 reg = <0>;
214
215 hdmi_tx_in: endpoint {
216 remote-endpoint = <&hdmi_tx_out>;
217 };
218 };
219
220 /* TMDS Output */
221 hdmi_tx_tmds_port: port@1 {
222 reg = <1>;
223 };
224 };
225
226 apb_efuse: bus@30000 {
227 compatible = "simple-bus";
228 reg = <0x0 0x30000 0x0 0x2000>;
229 #address-cells = <2>;
230 #size-cells = <2>;
231 ranges = <0x0 0x0 0x0 0x30000 0x0 0x2000>;
232
233 hwrng: rng@218 {
234 compatible = "amlogic,meson-rng";
235 reg = <0x0 0x218 0x0 0x4>;
Scott K Logana1afbbb2020-09-25 01:43:53 -0700236 clocks = <&clkc CLKID_RNG0>;
237 clock-names = "core";
Neil Armstrong14992182019-07-29 15:26:17 +0200238 };
239 };
240
Jerome Brunet457fa782020-05-07 00:16:55 +0200241 acodec: audio-controller@32000 {
242 compatible = "amlogic,t9015";
243 reg = <0x0 0x32000 0x0 0x14>;
244 #sound-dai-cells = <0>;
245 sound-name-prefix = "ACODEC";
246 clocks = <&clkc CLKID_AUDIO_CODEC>;
247 clock-names = "pclk";
248 resets = <&reset RESET_AUDIO_CODEC>;
249 status = "disabled";
250 };
251
Neil Armstrong14992182019-07-29 15:26:17 +0200252 periphs: bus@34400 {
253 compatible = "simple-bus";
254 reg = <0x0 0x34400 0x0 0x400>;
255 #address-cells = <2>;
256 #size-cells = <2>;
257 ranges = <0x0 0x0 0x0 0x34400 0x0 0x400>;
258
259 periphs_pinctrl: pinctrl@40 {
260 compatible = "amlogic,meson-g12a-periphs-pinctrl";
261 #address-cells = <2>;
262 #size-cells = <2>;
263 ranges;
264
265 gpio: bank@40 {
266 reg = <0x0 0x40 0x0 0x4c>,
267 <0x0 0xe8 0x0 0x18>,
268 <0x0 0x120 0x0 0x18>,
269 <0x0 0x2c0 0x0 0x40>,
270 <0x0 0x340 0x0 0x1c>;
271 reg-names = "gpio",
272 "pull",
273 "pull-enable",
274 "mux",
275 "ds";
276 gpio-controller;
277 #gpio-cells = <2>;
278 gpio-ranges = <&periphs_pinctrl 0 0 86>;
279 };
280
281 cec_ao_a_h_pins: cec_ao_a_h {
282 mux {
283 groups = "cec_ao_a_h";
284 function = "cec_ao_a_h";
285 bias-disable;
286 };
287 };
288
289 cec_ao_b_h_pins: cec_ao_b_h {
290 mux {
291 groups = "cec_ao_b_h";
292 function = "cec_ao_b_h";
293 bias-disable;
294 };
295 };
296
Neil Armstrong4d2cb372020-03-13 10:07:10 +0100297 emmc_ctrl_pins: emmc-ctrl {
Neil Armstrong14992182019-07-29 15:26:17 +0200298 mux-0 {
Neil Armstrong4d2cb372020-03-13 10:07:10 +0100299 groups = "emmc_cmd";
Neil Armstrong14992182019-07-29 15:26:17 +0200300 function = "emmc";
301 bias-pull-up;
302 drive-strength-microamp = <4000>;
303 };
304
305 mux-1 {
306 groups = "emmc_clk";
307 function = "emmc";
308 bias-disable;
309 drive-strength-microamp = <4000>;
310 };
311 };
312
Neil Armstrong4d2cb372020-03-13 10:07:10 +0100313 emmc_data_4b_pins: emmc-data-4b {
314 mux-0 {
315 groups = "emmc_nand_d0",
316 "emmc_nand_d1",
317 "emmc_nand_d2",
318 "emmc_nand_d3";
319 function = "emmc";
320 bias-pull-up;
321 drive-strength-microamp = <4000>;
322 };
323 };
324
325 emmc_data_8b_pins: emmc-data-8b {
326 mux-0 {
327 groups = "emmc_nand_d0",
328 "emmc_nand_d1",
329 "emmc_nand_d2",
330 "emmc_nand_d3",
331 "emmc_nand_d4",
332 "emmc_nand_d5",
333 "emmc_nand_d6",
334 "emmc_nand_d7";
335 function = "emmc";
336 bias-pull-up;
337 drive-strength-microamp = <4000>;
338 };
339 };
340
Neil Armstrong14992182019-07-29 15:26:17 +0200341 emmc_ds_pins: emmc-ds {
342 mux {
343 groups = "emmc_nand_ds";
344 function = "emmc";
345 bias-pull-down;
346 drive-strength-microamp = <4000>;
347 };
348 };
349
350 emmc_clk_gate_pins: emmc_clk_gate {
351 mux {
352 groups = "BOOT_8";
353 function = "gpio_periphs";
354 bias-pull-down;
355 drive-strength-microamp = <4000>;
356 };
357 };
358
359 hdmitx_ddc_pins: hdmitx_ddc {
360 mux {
361 groups = "hdmitx_sda",
362 "hdmitx_sck";
363 function = "hdmitx";
364 bias-disable;
365 drive-strength-microamp = <4000>;
366 };
367 };
368
369 hdmitx_hpd_pins: hdmitx_hpd {
370 mux {
371 groups = "hdmitx_hpd_in";
372 function = "hdmitx";
373 bias-disable;
374 };
375 };
376
377
378 i2c0_sda_c_pins: i2c0-sda-c {
379 mux {
380 groups = "i2c0_sda_c";
381 function = "i2c0";
382 bias-disable;
383 drive-strength-microamp = <3000>;
384
385 };
386 };
387
388 i2c0_sck_c_pins: i2c0-sck-c {
389 mux {
390 groups = "i2c0_sck_c";
391 function = "i2c0";
392 bias-disable;
393 drive-strength-microamp = <3000>;
394 };
395 };
396
397 i2c0_sda_z0_pins: i2c0-sda-z0 {
398 mux {
399 groups = "i2c0_sda_z0";
400 function = "i2c0";
401 bias-disable;
402 drive-strength-microamp = <3000>;
403 };
404 };
405
406 i2c0_sck_z1_pins: i2c0-sck-z1 {
407 mux {
408 groups = "i2c0_sck_z1";
409 function = "i2c0";
410 bias-disable;
411 drive-strength-microamp = <3000>;
412 };
413 };
414
415 i2c0_sda_z7_pins: i2c0-sda-z7 {
416 mux {
417 groups = "i2c0_sda_z7";
418 function = "i2c0";
419 bias-disable;
420 drive-strength-microamp = <3000>;
421 };
422 };
423
424 i2c0_sda_z8_pins: i2c0-sda-z8 {
425 mux {
426 groups = "i2c0_sda_z8";
427 function = "i2c0";
428 bias-disable;
429 drive-strength-microamp = <3000>;
430 };
431 };
432
433 i2c1_sda_x_pins: i2c1-sda-x {
434 mux {
435 groups = "i2c1_sda_x";
436 function = "i2c1";
437 bias-disable;
438 drive-strength-microamp = <3000>;
439 };
440 };
441
442 i2c1_sck_x_pins: i2c1-sck-x {
443 mux {
444 groups = "i2c1_sck_x";
445 function = "i2c1";
446 bias-disable;
447 drive-strength-microamp = <3000>;
448 };
449 };
450
451 i2c1_sda_h2_pins: i2c1-sda-h2 {
452 mux {
453 groups = "i2c1_sda_h2";
454 function = "i2c1";
455 bias-disable;
456 drive-strength-microamp = <3000>;
457 };
458 };
459
460 i2c1_sck_h3_pins: i2c1-sck-h3 {
461 mux {
462 groups = "i2c1_sck_h3";
463 function = "i2c1";
464 bias-disable;
465 drive-strength-microamp = <3000>;
466 };
467 };
468
469 i2c1_sda_h6_pins: i2c1-sda-h6 {
470 mux {
471 groups = "i2c1_sda_h6";
472 function = "i2c1";
473 bias-disable;
474 drive-strength-microamp = <3000>;
475 };
476 };
477
478 i2c1_sck_h7_pins: i2c1-sck-h7 {
479 mux {
480 groups = "i2c1_sck_h7";
481 function = "i2c1";
482 bias-disable;
483 drive-strength-microamp = <3000>;
484 };
485 };
486
487 i2c2_sda_x_pins: i2c2-sda-x {
488 mux {
489 groups = "i2c2_sda_x";
490 function = "i2c2";
491 bias-disable;
492 drive-strength-microamp = <3000>;
493 };
494 };
495
496 i2c2_sck_x_pins: i2c2-sck-x {
497 mux {
498 groups = "i2c2_sck_x";
499 function = "i2c2";
500 bias-disable;
501 drive-strength-microamp = <3000>;
502 };
503 };
504
505 i2c2_sda_z_pins: i2c2-sda-z {
506 mux {
507 groups = "i2c2_sda_z";
508 function = "i2c2";
509 bias-disable;
510 drive-strength-microamp = <3000>;
511 };
512 };
513
514 i2c2_sck_z_pins: i2c2-sck-z {
515 mux {
516 groups = "i2c2_sck_z";
517 function = "i2c2";
518 bias-disable;
519 drive-strength-microamp = <3000>;
520 };
521 };
522
523 i2c3_sda_h_pins: i2c3-sda-h {
524 mux {
525 groups = "i2c3_sda_h";
526 function = "i2c3";
527 bias-disable;
528 drive-strength-microamp = <3000>;
529 };
530 };
531
532 i2c3_sck_h_pins: i2c3-sck-h {
533 mux {
534 groups = "i2c3_sck_h";
535 function = "i2c3";
536 bias-disable;
537 drive-strength-microamp = <3000>;
538 };
539 };
540
541 i2c3_sda_a_pins: i2c3-sda-a {
542 mux {
543 groups = "i2c3_sda_a";
544 function = "i2c3";
545 bias-disable;
546 drive-strength-microamp = <3000>;
547 };
548 };
549
550 i2c3_sck_a_pins: i2c3-sck-a {
551 mux {
552 groups = "i2c3_sck_a";
553 function = "i2c3";
554 bias-disable;
555 drive-strength-microamp = <3000>;
556 };
557 };
558
559 mclk0_a_pins: mclk0-a {
560 mux {
561 groups = "mclk0_a";
562 function = "mclk0";
563 bias-disable;
564 drive-strength-microamp = <3000>;
565 };
566 };
567
568 mclk1_a_pins: mclk1-a {
569 mux {
570 groups = "mclk1_a";
571 function = "mclk1";
572 bias-disable;
573 drive-strength-microamp = <3000>;
574 };
575 };
576
577 mclk1_x_pins: mclk1-x {
578 mux {
579 groups = "mclk1_x";
580 function = "mclk1";
581 bias-disable;
582 drive-strength-microamp = <3000>;
583 };
584 };
585
586 mclk1_z_pins: mclk1-z {
587 mux {
588 groups = "mclk1_z";
589 function = "mclk1";
590 bias-disable;
591 drive-strength-microamp = <3000>;
592 };
593 };
594
Neil Armstrongf12a463d2020-03-13 10:07:11 +0100595 nor_pins: nor {
596 mux {
597 groups = "nor_d",
598 "nor_q",
599 "nor_c",
600 "nor_cs";
601 function = "nor";
602 bias-disable;
603 };
604 };
605
Neil Armstrong14992182019-07-29 15:26:17 +0200606 pdm_din0_a_pins: pdm-din0-a {
607 mux {
608 groups = "pdm_din0_a";
609 function = "pdm";
610 bias-disable;
611 };
612 };
613
614 pdm_din0_c_pins: pdm-din0-c {
615 mux {
616 groups = "pdm_din0_c";
617 function = "pdm";
618 bias-disable;
619 };
620 };
621
622 pdm_din0_x_pins: pdm-din0-x {
623 mux {
624 groups = "pdm_din0_x";
625 function = "pdm";
626 bias-disable;
627 };
628 };
629
630 pdm_din0_z_pins: pdm-din0-z {
631 mux {
632 groups = "pdm_din0_z";
633 function = "pdm";
634 bias-disable;
635 };
636 };
637
638 pdm_din1_a_pins: pdm-din1-a {
639 mux {
640 groups = "pdm_din1_a";
641 function = "pdm";
642 bias-disable;
643 };
644 };
645
646 pdm_din1_c_pins: pdm-din1-c {
647 mux {
648 groups = "pdm_din1_c";
649 function = "pdm";
650 bias-disable;
651 };
652 };
653
654 pdm_din1_x_pins: pdm-din1-x {
655 mux {
656 groups = "pdm_din1_x";
657 function = "pdm";
658 bias-disable;
659 };
660 };
661
662 pdm_din1_z_pins: pdm-din1-z {
663 mux {
664 groups = "pdm_din1_z";
665 function = "pdm";
666 bias-disable;
667 };
668 };
669
670 pdm_din2_a_pins: pdm-din2-a {
671 mux {
672 groups = "pdm_din2_a";
673 function = "pdm";
674 bias-disable;
675 };
676 };
677
678 pdm_din2_c_pins: pdm-din2-c {
679 mux {
680 groups = "pdm_din2_c";
681 function = "pdm";
682 bias-disable;
683 };
684 };
685
686 pdm_din2_x_pins: pdm-din2-x {
687 mux {
688 groups = "pdm_din2_x";
689 function = "pdm";
690 bias-disable;
691 };
692 };
693
694 pdm_din2_z_pins: pdm-din2-z {
695 mux {
696 groups = "pdm_din2_z";
697 function = "pdm";
698 bias-disable;
699 };
700 };
701
702 pdm_din3_a_pins: pdm-din3-a {
703 mux {
704 groups = "pdm_din3_a";
705 function = "pdm";
706 bias-disable;
707 };
708 };
709
710 pdm_din3_c_pins: pdm-din3-c {
711 mux {
712 groups = "pdm_din3_c";
713 function = "pdm";
714 bias-disable;
715 };
716 };
717
718 pdm_din3_x_pins: pdm-din3-x {
719 mux {
720 groups = "pdm_din3_x";
721 function = "pdm";
722 bias-disable;
723 };
724 };
725
726 pdm_din3_z_pins: pdm-din3-z {
727 mux {
728 groups = "pdm_din3_z";
729 function = "pdm";
730 bias-disable;
731 };
732 };
733
734 pdm_dclk_a_pins: pdm-dclk-a {
735 mux {
736 groups = "pdm_dclk_a";
737 function = "pdm";
738 bias-disable;
739 drive-strength-microamp = <500>;
740 };
741 };
742
743 pdm_dclk_c_pins: pdm-dclk-c {
744 mux {
745 groups = "pdm_dclk_c";
746 function = "pdm";
747 bias-disable;
748 drive-strength-microamp = <500>;
749 };
750 };
751
752 pdm_dclk_x_pins: pdm-dclk-x {
753 mux {
754 groups = "pdm_dclk_x";
755 function = "pdm";
756 bias-disable;
757 drive-strength-microamp = <500>;
758 };
759 };
760
761 pdm_dclk_z_pins: pdm-dclk-z {
762 mux {
763 groups = "pdm_dclk_z";
764 function = "pdm";
765 bias-disable;
766 drive-strength-microamp = <500>;
767 };
768 };
769
770 pwm_a_pins: pwm-a {
771 mux {
772 groups = "pwm_a";
773 function = "pwm_a";
774 bias-disable;
775 };
776 };
777
778 pwm_b_x7_pins: pwm-b-x7 {
779 mux {
780 groups = "pwm_b_x7";
781 function = "pwm_b";
782 bias-disable;
783 };
784 };
785
786 pwm_b_x19_pins: pwm-b-x19 {
787 mux {
788 groups = "pwm_b_x19";
789 function = "pwm_b";
790 bias-disable;
791 };
792 };
793
794 pwm_c_c_pins: pwm-c-c {
795 mux {
796 groups = "pwm_c_c";
797 function = "pwm_c";
798 bias-disable;
799 };
800 };
801
802 pwm_c_x5_pins: pwm-c-x5 {
803 mux {
804 groups = "pwm_c_x5";
805 function = "pwm_c";
806 bias-disable;
807 };
808 };
809
810 pwm_c_x8_pins: pwm-c-x8 {
811 mux {
812 groups = "pwm_c_x8";
813 function = "pwm_c";
814 bias-disable;
815 };
816 };
817
818 pwm_d_x3_pins: pwm-d-x3 {
819 mux {
820 groups = "pwm_d_x3";
821 function = "pwm_d";
822 bias-disable;
823 };
824 };
825
826 pwm_d_x6_pins: pwm-d-x6 {
827 mux {
828 groups = "pwm_d_x6";
829 function = "pwm_d";
830 bias-disable;
831 };
832 };
833
834 pwm_e_pins: pwm-e {
835 mux {
836 groups = "pwm_e";
837 function = "pwm_e";
838 bias-disable;
839 };
840 };
841
842 pwm_f_x_pins: pwm-f-x {
843 mux {
844 groups = "pwm_f_x";
845 function = "pwm_f";
846 bias-disable;
847 };
848 };
849
850 pwm_f_h_pins: pwm-f-h {
851 mux {
852 groups = "pwm_f_h";
853 function = "pwm_f";
854 bias-disable;
855 };
856 };
857
858 sdcard_c_pins: sdcard_c {
859 mux-0 {
860 groups = "sdcard_d0_c",
861 "sdcard_d1_c",
862 "sdcard_d2_c",
863 "sdcard_d3_c",
864 "sdcard_cmd_c";
865 function = "sdcard";
866 bias-pull-up;
867 drive-strength-microamp = <4000>;
868 };
869
870 mux-1 {
871 groups = "sdcard_clk_c";
872 function = "sdcard";
873 bias-disable;
874 drive-strength-microamp = <4000>;
875 };
876 };
877
878 sdcard_clk_gate_c_pins: sdcard_clk_gate_c {
879 mux {
880 groups = "GPIOC_4";
881 function = "gpio_periphs";
882 bias-pull-down;
883 drive-strength-microamp = <4000>;
884 };
885 };
886
887 sdcard_z_pins: sdcard_z {
888 mux-0 {
889 groups = "sdcard_d0_z",
890 "sdcard_d1_z",
891 "sdcard_d2_z",
892 "sdcard_d3_z",
893 "sdcard_cmd_z";
894 function = "sdcard";
895 bias-pull-up;
896 drive-strength-microamp = <4000>;
897 };
898
899 mux-1 {
900 groups = "sdcard_clk_z";
901 function = "sdcard";
902 bias-disable;
903 drive-strength-microamp = <4000>;
904 };
905 };
906
907 sdcard_clk_gate_z_pins: sdcard_clk_gate_z {
908 mux {
909 groups = "GPIOZ_6";
910 function = "gpio_periphs";
911 bias-pull-down;
912 drive-strength-microamp = <4000>;
913 };
914 };
915
916 sdio_pins: sdio {
917 mux {
918 groups = "sdio_d0",
919 "sdio_d1",
920 "sdio_d2",
921 "sdio_d3",
922 "sdio_clk",
923 "sdio_cmd";
924 function = "sdio";
925 bias-disable;
926 drive-strength-microamp = <4000>;
927 };
928 };
929
930 sdio_clk_gate_pins: sdio_clk_gate {
931 mux {
932 groups = "GPIOX_4";
933 function = "gpio_periphs";
934 bias-pull-down;
935 drive-strength-microamp = <4000>;
936 };
937 };
938
939 spdif_in_a10_pins: spdif-in-a10 {
940 mux {
941 groups = "spdif_in_a10";
942 function = "spdif_in";
943 bias-disable;
944 };
945 };
946
947 spdif_in_a12_pins: spdif-in-a12 {
948 mux {
949 groups = "spdif_in_a12";
950 function = "spdif_in";
951 bias-disable;
952 };
953 };
954
955 spdif_in_h_pins: spdif-in-h {
956 mux {
957 groups = "spdif_in_h";
958 function = "spdif_in";
959 bias-disable;
960 };
961 };
962
963 spdif_out_h_pins: spdif-out-h {
964 mux {
965 groups = "spdif_out_h";
966 function = "spdif_out";
967 drive-strength-microamp = <500>;
968 bias-disable;
969 };
970 };
971
972 spdif_out_a11_pins: spdif-out-a11 {
973 mux {
974 groups = "spdif_out_a11";
975 function = "spdif_out";
976 drive-strength-microamp = <500>;
977 bias-disable;
978 };
979 };
980
981 spdif_out_a13_pins: spdif-out-a13 {
982 mux {
983 groups = "spdif_out_a13";
984 function = "spdif_out";
985 drive-strength-microamp = <500>;
986 bias-disable;
987 };
988 };
989
Neil Armstrong5fa86f42020-03-13 10:14:01 +0100990 spicc0_x_pins: spicc0-x {
991 mux {
992 groups = "spi0_mosi_x",
993 "spi0_miso_x",
994 "spi0_clk_x";
995 function = "spi0";
996 drive-strength-microamp = <4000>;
997 bias-disable;
998 };
999 };
1000
1001 spicc0_ss0_x_pins: spicc0-ss0-x {
1002 mux {
1003 groups = "spi0_ss0_x";
1004 function = "spi0";
1005 drive-strength-microamp = <4000>;
1006 bias-disable;
1007 };
1008 };
1009
1010 spicc0_c_pins: spicc0-c {
1011 mux {
1012 groups = "spi0_mosi_c",
1013 "spi0_miso_c",
1014 "spi0_ss0_c",
1015 "spi0_clk_c";
1016 function = "spi0";
1017 drive-strength-microamp = <4000>;
1018 bias-disable;
1019 };
1020 };
1021
1022 spicc1_pins: spicc1 {
1023 mux {
1024 groups = "spi1_mosi",
1025 "spi1_miso",
1026 "spi1_clk";
1027 function = "spi1";
1028 drive-strength-microamp = <4000>;
1029 };
1030 };
1031
1032 spicc1_ss0_pins: spicc1-ss0 {
1033 mux {
1034 groups = "spi1_ss0";
1035 function = "spi1";
1036 drive-strength-microamp = <4000>;
1037 bias-disable;
1038 };
1039 };
1040
Neil Armstrong14992182019-07-29 15:26:17 +02001041 tdm_a_din0_pins: tdm-a-din0 {
1042 mux {
1043 groups = "tdm_a_din0";
1044 function = "tdm_a";
1045 bias-disable;
1046 };
1047 };
1048
1049
1050 tdm_a_din1_pins: tdm-a-din1 {
1051 mux {
1052 groups = "tdm_a_din1";
1053 function = "tdm_a";
1054 bias-disable;
1055 };
1056 };
1057
1058 tdm_a_dout0_pins: tdm-a-dout0 {
1059 mux {
1060 groups = "tdm_a_dout0";
1061 function = "tdm_a";
1062 bias-disable;
1063 drive-strength-microamp = <3000>;
1064 };
1065 };
1066
1067 tdm_a_dout1_pins: tdm-a-dout1 {
1068 mux {
1069 groups = "tdm_a_dout1";
1070 function = "tdm_a";
1071 bias-disable;
1072 drive-strength-microamp = <3000>;
1073 };
1074 };
1075
1076 tdm_a_fs_pins: tdm-a-fs {
1077 mux {
1078 groups = "tdm_a_fs";
1079 function = "tdm_a";
1080 bias-disable;
1081 drive-strength-microamp = <3000>;
1082 };
1083 };
1084
1085 tdm_a_sclk_pins: tdm-a-sclk {
1086 mux {
1087 groups = "tdm_a_sclk";
1088 function = "tdm_a";
1089 bias-disable;
1090 drive-strength-microamp = <3000>;
1091 };
1092 };
1093
1094 tdm_a_slv_fs_pins: tdm-a-slv-fs {
1095 mux {
1096 groups = "tdm_a_slv_fs";
1097 function = "tdm_a";
1098 bias-disable;
1099 };
1100 };
1101
1102
1103 tdm_a_slv_sclk_pins: tdm-a-slv-sclk {
1104 mux {
1105 groups = "tdm_a_slv_sclk";
1106 function = "tdm_a";
1107 bias-disable;
1108 };
1109 };
1110
1111 tdm_b_din0_pins: tdm-b-din0 {
1112 mux {
1113 groups = "tdm_b_din0";
1114 function = "tdm_b";
1115 bias-disable;
1116 };
1117 };
1118
1119 tdm_b_din1_pins: tdm-b-din1 {
1120 mux {
1121 groups = "tdm_b_din1";
1122 function = "tdm_b";
1123 bias-disable;
1124 };
1125 };
1126
1127 tdm_b_din2_pins: tdm-b-din2 {
1128 mux {
1129 groups = "tdm_b_din2";
1130 function = "tdm_b";
1131 bias-disable;
1132 };
1133 };
1134
1135 tdm_b_din3_a_pins: tdm-b-din3-a {
1136 mux {
1137 groups = "tdm_b_din3_a";
1138 function = "tdm_b";
1139 bias-disable;
1140 };
1141 };
1142
1143 tdm_b_din3_h_pins: tdm-b-din3-h {
1144 mux {
1145 groups = "tdm_b_din3_h";
1146 function = "tdm_b";
1147 bias-disable;
1148 };
1149 };
1150
1151 tdm_b_dout0_pins: tdm-b-dout0 {
1152 mux {
1153 groups = "tdm_b_dout0";
1154 function = "tdm_b";
1155 bias-disable;
1156 drive-strength-microamp = <3000>;
1157 };
1158 };
1159
1160 tdm_b_dout1_pins: tdm-b-dout1 {
1161 mux {
1162 groups = "tdm_b_dout1";
1163 function = "tdm_b";
1164 bias-disable;
1165 drive-strength-microamp = <3000>;
1166 };
1167 };
1168
1169 tdm_b_dout2_pins: tdm-b-dout2 {
1170 mux {
1171 groups = "tdm_b_dout2";
1172 function = "tdm_b";
1173 bias-disable;
1174 drive-strength-microamp = <3000>;
1175 };
1176 };
1177
1178 tdm_b_dout3_a_pins: tdm-b-dout3-a {
1179 mux {
1180 groups = "tdm_b_dout3_a";
1181 function = "tdm_b";
1182 bias-disable;
1183 drive-strength-microamp = <3000>;
1184 };
1185 };
1186
1187 tdm_b_dout3_h_pins: tdm-b-dout3-h {
1188 mux {
1189 groups = "tdm_b_dout3_h";
1190 function = "tdm_b";
1191 bias-disable;
1192 drive-strength-microamp = <3000>;
1193 };
1194 };
1195
1196 tdm_b_fs_pins: tdm-b-fs {
1197 mux {
1198 groups = "tdm_b_fs";
1199 function = "tdm_b";
1200 bias-disable;
1201 drive-strength-microamp = <3000>;
1202 };
1203 };
1204
1205 tdm_b_sclk_pins: tdm-b-sclk {
1206 mux {
1207 groups = "tdm_b_sclk";
1208 function = "tdm_b";
1209 bias-disable;
1210 drive-strength-microamp = <3000>;
1211 };
1212 };
1213
1214 tdm_b_slv_fs_pins: tdm-b-slv-fs {
1215 mux {
1216 groups = "tdm_b_slv_fs";
1217 function = "tdm_b";
1218 bias-disable;
1219 };
1220 };
1221
1222 tdm_b_slv_sclk_pins: tdm-b-slv-sclk {
1223 mux {
1224 groups = "tdm_b_slv_sclk";
1225 function = "tdm_b";
1226 bias-disable;
1227 };
1228 };
1229
1230 tdm_c_din0_a_pins: tdm-c-din0-a {
1231 mux {
1232 groups = "tdm_c_din0_a";
1233 function = "tdm_c";
1234 bias-disable;
1235 };
1236 };
1237
1238 tdm_c_din0_z_pins: tdm-c-din0-z {
1239 mux {
1240 groups = "tdm_c_din0_z";
1241 function = "tdm_c";
1242 bias-disable;
1243 };
1244 };
1245
1246 tdm_c_din1_a_pins: tdm-c-din1-a {
1247 mux {
1248 groups = "tdm_c_din1_a";
1249 function = "tdm_c";
1250 bias-disable;
1251 };
1252 };
1253
1254 tdm_c_din1_z_pins: tdm-c-din1-z {
1255 mux {
1256 groups = "tdm_c_din1_z";
1257 function = "tdm_c";
1258 bias-disable;
1259 };
1260 };
1261
1262 tdm_c_din2_a_pins: tdm-c-din2-a {
1263 mux {
1264 groups = "tdm_c_din2_a";
1265 function = "tdm_c";
1266 bias-disable;
1267 };
1268 };
1269
1270 eth_leds_pins: eth-leds {
1271 mux {
1272 groups = "eth_link_led",
1273 "eth_act_led";
1274 function = "eth";
1275 bias-disable;
1276 };
1277 };
1278
1279 eth_pins: eth {
1280 mux {
1281 groups = "eth_mdio",
1282 "eth_mdc",
1283 "eth_rgmii_rx_clk",
1284 "eth_rx_dv",
1285 "eth_rxd0",
1286 "eth_rxd1",
1287 "eth_txen",
1288 "eth_txd0",
1289 "eth_txd1";
1290 function = "eth";
1291 drive-strength-microamp = <4000>;
1292 bias-disable;
1293 };
1294 };
1295
1296 eth_rgmii_pins: eth-rgmii {
1297 mux {
1298 groups = "eth_rxd2_rgmii",
1299 "eth_rxd3_rgmii",
1300 "eth_rgmii_tx_clk",
1301 "eth_txd2_rgmii",
1302 "eth_txd3_rgmii";
1303 function = "eth";
1304 drive-strength-microamp = <4000>;
1305 bias-disable;
1306 };
1307 };
1308
1309 tdm_c_din2_z_pins: tdm-c-din2-z {
1310 mux {
1311 groups = "tdm_c_din2_z";
1312 function = "tdm_c";
1313 bias-disable;
1314 };
1315 };
1316
1317 tdm_c_din3_a_pins: tdm-c-din3-a {
1318 mux {
1319 groups = "tdm_c_din3_a";
1320 function = "tdm_c";
1321 bias-disable;
1322 };
1323 };
1324
1325 tdm_c_din3_z_pins: tdm-c-din3-z {
1326 mux {
1327 groups = "tdm_c_din3_z";
1328 function = "tdm_c";
1329 bias-disable;
1330 };
1331 };
1332
1333 tdm_c_dout0_a_pins: tdm-c-dout0-a {
1334 mux {
1335 groups = "tdm_c_dout0_a";
1336 function = "tdm_c";
1337 bias-disable;
1338 drive-strength-microamp = <3000>;
1339 };
1340 };
1341
1342 tdm_c_dout0_z_pins: tdm-c-dout0-z {
1343 mux {
1344 groups = "tdm_c_dout0_z";
1345 function = "tdm_c";
1346 bias-disable;
1347 drive-strength-microamp = <3000>;
1348 };
1349 };
1350
1351 tdm_c_dout1_a_pins: tdm-c-dout1-a {
1352 mux {
1353 groups = "tdm_c_dout1_a";
1354 function = "tdm_c";
1355 bias-disable;
1356 drive-strength-microamp = <3000>;
1357 };
1358 };
1359
1360 tdm_c_dout1_z_pins: tdm-c-dout1-z {
1361 mux {
1362 groups = "tdm_c_dout1_z";
1363 function = "tdm_c";
1364 bias-disable;
1365 drive-strength-microamp = <3000>;
1366 };
1367 };
1368
1369 tdm_c_dout2_a_pins: tdm-c-dout2-a {
1370 mux {
1371 groups = "tdm_c_dout2_a";
1372 function = "tdm_c";
1373 bias-disable;
1374 drive-strength-microamp = <3000>;
1375 };
1376 };
1377
1378 tdm_c_dout2_z_pins: tdm-c-dout2-z {
1379 mux {
1380 groups = "tdm_c_dout2_z";
1381 function = "tdm_c";
1382 bias-disable;
1383 drive-strength-microamp = <3000>;
1384 };
1385 };
1386
1387 tdm_c_dout3_a_pins: tdm-c-dout3-a {
1388 mux {
1389 groups = "tdm_c_dout3_a";
1390 function = "tdm_c";
1391 bias-disable;
1392 drive-strength-microamp = <3000>;
1393 };
1394 };
1395
1396 tdm_c_dout3_z_pins: tdm-c-dout3-z {
1397 mux {
1398 groups = "tdm_c_dout3_z";
1399 function = "tdm_c";
1400 bias-disable;
1401 drive-strength-microamp = <3000>;
1402 };
1403 };
1404
1405 tdm_c_fs_a_pins: tdm-c-fs-a {
1406 mux {
1407 groups = "tdm_c_fs_a";
1408 function = "tdm_c";
1409 bias-disable;
1410 drive-strength-microamp = <3000>;
1411 };
1412 };
1413
1414 tdm_c_fs_z_pins: tdm-c-fs-z {
1415 mux {
1416 groups = "tdm_c_fs_z";
1417 function = "tdm_c";
1418 bias-disable;
1419 drive-strength-microamp = <3000>;
1420 };
1421 };
1422
1423 tdm_c_sclk_a_pins: tdm-c-sclk-a {
1424 mux {
1425 groups = "tdm_c_sclk_a";
1426 function = "tdm_c";
1427 bias-disable;
1428 drive-strength-microamp = <3000>;
1429 };
1430 };
1431
1432 tdm_c_sclk_z_pins: tdm-c-sclk-z {
1433 mux {
1434 groups = "tdm_c_sclk_z";
1435 function = "tdm_c";
1436 bias-disable;
1437 drive-strength-microamp = <3000>;
1438 };
1439 };
1440
1441 tdm_c_slv_fs_a_pins: tdm-c-slv-fs-a {
1442 mux {
1443 groups = "tdm_c_slv_fs_a";
1444 function = "tdm_c";
1445 bias-disable;
1446 };
1447 };
1448
1449 tdm_c_slv_fs_z_pins: tdm-c-slv-fs-z {
1450 mux {
1451 groups = "tdm_c_slv_fs_z";
1452 function = "tdm_c";
1453 bias-disable;
1454 };
1455 };
1456
1457 tdm_c_slv_sclk_a_pins: tdm-c-slv-sclk-a {
1458 mux {
1459 groups = "tdm_c_slv_sclk_a";
1460 function = "tdm_c";
1461 bias-disable;
1462 };
1463 };
1464
1465 tdm_c_slv_sclk_z_pins: tdm-c-slv-sclk-z {
1466 mux {
1467 groups = "tdm_c_slv_sclk_z";
1468 function = "tdm_c";
1469 bias-disable;
1470 };
1471 };
1472
1473 uart_a_pins: uart-a {
1474 mux {
1475 groups = "uart_a_tx",
1476 "uart_a_rx";
1477 function = "uart_a";
1478 bias-disable;
1479 };
1480 };
1481
1482 uart_a_cts_rts_pins: uart-a-cts-rts {
1483 mux {
1484 groups = "uart_a_cts",
1485 "uart_a_rts";
1486 function = "uart_a";
1487 bias-disable;
1488 };
1489 };
1490
1491 uart_b_pins: uart-b {
1492 mux {
1493 groups = "uart_b_tx",
1494 "uart_b_rx";
1495 function = "uart_b";
1496 bias-disable;
1497 };
1498 };
1499
1500 uart_c_pins: uart-c {
1501 mux {
1502 groups = "uart_c_tx",
1503 "uart_c_rx";
1504 function = "uart_c";
1505 bias-disable;
1506 };
1507 };
1508
1509 uart_c_cts_rts_pins: uart-c-cts-rts {
1510 mux {
1511 groups = "uart_c_cts",
1512 "uart_c_rts";
1513 function = "uart_c";
1514 bias-disable;
1515 };
1516 };
1517 };
1518 };
1519
Guillaume La Roque86567832019-10-04 11:01:10 +02001520 cpu_temp: temperature-sensor@34800 {
1521 compatible = "amlogic,g12a-cpu-thermal",
1522 "amlogic,g12a-thermal";
1523 reg = <0x0 0x34800 0x0 0x50>;
1524 interrupts = <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>;
1525 clocks = <&clkc CLKID_TS>;
1526 #thermal-sensor-cells = <0>;
1527 amlogic,ao-secure = <&sec_AO>;
1528 };
1529
1530 ddr_temp: temperature-sensor@34c00 {
1531 compatible = "amlogic,g12a-ddr-thermal",
1532 "amlogic,g12a-thermal";
1533 reg = <0x0 0x34c00 0x0 0x50>;
1534 interrupts = <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>;
1535 clocks = <&clkc CLKID_TS>;
1536 #thermal-sensor-cells = <0>;
1537 amlogic,ao-secure = <&sec_AO>;
1538 };
1539
Neil Armstrong14992182019-07-29 15:26:17 +02001540 usb2_phy0: phy@36000 {
1541 compatible = "amlogic,g12a-usb2-phy";
1542 reg = <0x0 0x36000 0x0 0x2000>;
1543 clocks = <&xtal>;
1544 clock-names = "xtal";
1545 resets = <&reset RESET_USB_PHY20>;
1546 reset-names = "phy";
1547 #phy-cells = <0>;
1548 };
1549
1550 dmc: bus@38000 {
1551 compatible = "simple-bus";
1552 reg = <0x0 0x38000 0x0 0x400>;
1553 #address-cells = <2>;
1554 #size-cells = <2>;
1555 ranges = <0x0 0x0 0x0 0x38000 0x0 0x400>;
1556
1557 canvas: video-lut@48 {
1558 compatible = "amlogic,canvas";
1559 reg = <0x0 0x48 0x0 0x14>;
1560 };
1561 };
1562
1563 usb2_phy1: phy@3a000 {
1564 compatible = "amlogic,g12a-usb2-phy";
1565 reg = <0x0 0x3a000 0x0 0x2000>;
1566 clocks = <&xtal>;
1567 clock-names = "xtal";
1568 resets = <&reset RESET_USB_PHY21>;
1569 reset-names = "phy";
1570 #phy-cells = <0>;
1571 };
1572
1573 hiu: bus@3c000 {
1574 compatible = "simple-bus";
1575 reg = <0x0 0x3c000 0x0 0x1400>;
1576 #address-cells = <2>;
1577 #size-cells = <2>;
1578 ranges = <0x0 0x0 0x0 0x3c000 0x0 0x1400>;
1579
1580 hhi: system-controller@0 {
1581 compatible = "amlogic,meson-gx-hhi-sysctrl",
1582 "simple-mfd", "syscon";
1583 reg = <0 0 0 0x400>;
1584
1585 clkc: clock-controller {
1586 compatible = "amlogic,g12a-clkc";
1587 #clock-cells = <1>;
1588 clocks = <&xtal>;
1589 clock-names = "xtal";
1590 };
Neil Armstrongf4f1c8d2019-08-23 11:04:16 +02001591
1592 pwrc: power-controller {
1593 compatible = "amlogic,meson-g12a-pwrc";
1594 #power-domain-cells = <1>;
1595 amlogic,ao-sysctrl = <&rti>;
1596 resets = <&reset RESET_VIU>,
1597 <&reset RESET_VENC>,
1598 <&reset RESET_VCBUS>,
1599 <&reset RESET_BT656>,
1600 <&reset RESET_RDMA>,
1601 <&reset RESET_VENCI>,
1602 <&reset RESET_VENCP>,
1603 <&reset RESET_VDAC>,
1604 <&reset RESET_VDI6>,
1605 <&reset RESET_VENCL>,
1606 <&reset RESET_VID_LOCK>;
1607 reset-names = "viu", "venc", "vcbus", "bt656",
1608 "rdma", "venci", "vencp", "vdac",
1609 "vdi6", "vencl", "vid_lock";
1610 clocks = <&clkc CLKID_VPU>,
1611 <&clkc CLKID_VAPB>;
1612 clock-names = "vpu", "vapb";
1613 /*
1614 * VPU clocking is provided by two identical clock paths
1615 * VPU_0 and VPU_1 muxed to a single clock by a glitch
1616 * free mux to safely change frequency while running.
1617 * Same for VAPB but with a final gate after the glitch free mux.
1618 */
1619 assigned-clocks = <&clkc CLKID_VPU_0_SEL>,
1620 <&clkc CLKID_VPU_0>,
1621 <&clkc CLKID_VPU>, /* Glitch free mux */
1622 <&clkc CLKID_VAPB_0_SEL>,
1623 <&clkc CLKID_VAPB_0>,
1624 <&clkc CLKID_VAPB_SEL>; /* Glitch free mux */
1625 assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
1626 <0>, /* Do Nothing */
1627 <&clkc CLKID_VPU_0>,
1628 <&clkc CLKID_FCLK_DIV4>,
1629 <0>, /* Do Nothing */
1630 <&clkc CLKID_VAPB_0>;
1631 assigned-clock-rates = <0>, /* Do Nothing */
1632 <666666666>,
1633 <0>, /* Do Nothing */
1634 <0>, /* Do Nothing */
1635 <250000000>,
1636 <0>; /* Do Nothing */
1637 };
Neil Armstrong14992182019-07-29 15:26:17 +02001638 };
1639 };
1640
Neil Armstrong14992182019-07-29 15:26:17 +02001641 usb3_pcie_phy: phy@46000 {
1642 compatible = "amlogic,g12a-usb3-pcie-phy";
1643 reg = <0x0 0x46000 0x0 0x2000>;
1644 clocks = <&clkc CLKID_PCIE_PLL>;
1645 clock-names = "ref_clk";
1646 resets = <&reset RESET_PCIE_PHY>;
1647 reset-names = "phy";
1648 assigned-clocks = <&clkc CLKID_PCIE_PLL>;
1649 assigned-clock-rates = <100000000>;
1650 #phy-cells = <1>;
1651 };
1652
1653 eth_phy: mdio-multiplexer@4c000 {
1654 compatible = "amlogic,g12a-mdio-mux";
1655 reg = <0x0 0x4c000 0x0 0xa4>;
1656 clocks = <&clkc CLKID_ETH_PHY>,
1657 <&xtal>,
1658 <&clkc CLKID_MPLL_50M>;
1659 clock-names = "pclk", "clkin0", "clkin1";
1660 mdio-parent-bus = <&mdio0>;
1661 #address-cells = <1>;
1662 #size-cells = <0>;
1663
1664 ext_mdio: mdio@0 {
1665 reg = <0>;
1666 #address-cells = <1>;
1667 #size-cells = <0>;
1668 };
1669
1670 int_mdio: mdio@1 {
1671 reg = <1>;
1672 #address-cells = <1>;
1673 #size-cells = <0>;
1674
1675 internal_ephy: ethernet_phy@8 {
1676 compatible = "ethernet-phy-id0180.3301",
1677 "ethernet-phy-ieee802.3-c22";
1678 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1679 reg = <8>;
1680 max-speed = <100>;
1681 };
1682 };
1683 };
1684 };
1685
1686 aobus: bus@ff800000 {
1687 compatible = "simple-bus";
1688 reg = <0x0 0xff800000 0x0 0x100000>;
1689 #address-cells = <2>;
1690 #size-cells = <2>;
1691 ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>;
1692
1693 rti: sys-ctrl@0 {
1694 compatible = "amlogic,meson-gx-ao-sysctrl",
1695 "simple-mfd", "syscon";
1696 reg = <0x0 0x0 0x0 0x100>;
1697 #address-cells = <2>;
1698 #size-cells = <2>;
1699 ranges = <0x0 0x0 0x0 0x0 0x0 0x100>;
1700
1701 clkc_AO: clock-controller {
1702 compatible = "amlogic,meson-g12a-aoclkc";
1703 #clock-cells = <1>;
1704 #reset-cells = <1>;
1705 clocks = <&xtal>, <&clkc CLKID_CLK81>;
1706 clock-names = "xtal", "mpeg-clk";
1707 };
1708
Neil Armstrong14992182019-07-29 15:26:17 +02001709 ao_pinctrl: pinctrl@14 {
1710 compatible = "amlogic,meson-g12a-aobus-pinctrl";
1711 #address-cells = <2>;
1712 #size-cells = <2>;
1713 ranges;
1714
1715 gpio_ao: bank@14 {
1716 reg = <0x0 0x14 0x0 0x8>,
1717 <0x0 0x1c 0x0 0x8>,
1718 <0x0 0x24 0x0 0x14>;
1719 reg-names = "mux",
1720 "ds",
1721 "gpio";
1722 gpio-controller;
1723 #gpio-cells = <2>;
1724 gpio-ranges = <&ao_pinctrl 0 0 15>;
1725 };
1726
1727 i2c_ao_sck_pins: i2c_ao_sck_pins {
1728 mux {
1729 groups = "i2c_ao_sck";
1730 function = "i2c_ao";
1731 bias-disable;
1732 drive-strength-microamp = <3000>;
1733 };
1734 };
1735
1736 i2c_ao_sda_pins: i2c_ao_sda {
1737 mux {
1738 groups = "i2c_ao_sda";
1739 function = "i2c_ao";
1740 bias-disable;
1741 drive-strength-microamp = <3000>;
1742 };
1743 };
1744
1745 i2c_ao_sck_e_pins: i2c_ao_sck_e {
1746 mux {
1747 groups = "i2c_ao_sck_e";
1748 function = "i2c_ao";
1749 bias-disable;
1750 drive-strength-microamp = <3000>;
1751 };
1752 };
1753
1754 i2c_ao_sda_e_pins: i2c_ao_sda_e {
1755 mux {
1756 groups = "i2c_ao_sda_e";
1757 function = "i2c_ao";
1758 bias-disable;
1759 drive-strength-microamp = <3000>;
1760 };
1761 };
1762
1763 mclk0_ao_pins: mclk0-ao {
1764 mux {
1765 groups = "mclk0_ao";
1766 function = "mclk0_ao";
1767 bias-disable;
1768 drive-strength-microamp = <3000>;
1769 };
1770 };
1771
1772 tdm_ao_b_din0_pins: tdm-ao-b-din0 {
1773 mux {
1774 groups = "tdm_ao_b_din0";
1775 function = "tdm_ao_b";
1776 bias-disable;
1777 };
1778 };
1779
1780 spdif_ao_out_pins: spdif-ao-out {
1781 mux {
1782 groups = "spdif_ao_out";
1783 function = "spdif_ao_out";
1784 drive-strength-microamp = <500>;
1785 bias-disable;
1786 };
1787 };
1788
1789 tdm_ao_b_din1_pins: tdm-ao-b-din1 {
1790 mux {
1791 groups = "tdm_ao_b_din1";
1792 function = "tdm_ao_b";
1793 bias-disable;
1794 };
1795 };
1796
1797 tdm_ao_b_din2_pins: tdm-ao-b-din2 {
1798 mux {
1799 groups = "tdm_ao_b_din2";
1800 function = "tdm_ao_b";
1801 bias-disable;
1802 };
1803 };
1804
1805 tdm_ao_b_dout0_pins: tdm-ao-b-dout0 {
1806 mux {
1807 groups = "tdm_ao_b_dout0";
1808 function = "tdm_ao_b";
1809 bias-disable;
1810 drive-strength-microamp = <3000>;
1811 };
1812 };
1813
1814 tdm_ao_b_dout1_pins: tdm-ao-b-dout1 {
1815 mux {
1816 groups = "tdm_ao_b_dout1";
1817 function = "tdm_ao_b";
1818 bias-disable;
1819 drive-strength-microamp = <3000>;
1820 };
1821 };
1822
1823 tdm_ao_b_dout2_pins: tdm-ao-b-dout2 {
1824 mux {
1825 groups = "tdm_ao_b_dout2";
1826 function = "tdm_ao_b";
1827 bias-disable;
1828 drive-strength-microamp = <3000>;
1829 };
1830 };
1831
1832 tdm_ao_b_fs_pins: tdm-ao-b-fs {
1833 mux {
1834 groups = "tdm_ao_b_fs";
1835 function = "tdm_ao_b";
1836 bias-disable;
1837 drive-strength-microamp = <3000>;
1838 };
1839 };
1840
1841 tdm_ao_b_sclk_pins: tdm-ao-b-sclk {
1842 mux {
1843 groups = "tdm_ao_b_sclk";
1844 function = "tdm_ao_b";
1845 bias-disable;
1846 drive-strength-microamp = <3000>;
1847 };
1848 };
1849
1850 tdm_ao_b_slv_fs_pins: tdm-ao-b-slv-fs {
1851 mux {
1852 groups = "tdm_ao_b_slv_fs";
1853 function = "tdm_ao_b";
1854 bias-disable;
1855 };
1856 };
1857
1858 tdm_ao_b_slv_sclk_pins: tdm-ao-b-slv-sclk {
1859 mux {
1860 groups = "tdm_ao_b_slv_sclk";
1861 function = "tdm_ao_b";
1862 bias-disable;
1863 };
1864 };
1865
1866 uart_ao_a_pins: uart-a-ao {
1867 mux {
1868 groups = "uart_ao_a_tx",
1869 "uart_ao_a_rx";
1870 function = "uart_ao_a";
1871 bias-disable;
1872 };
1873 };
1874
1875 uart_ao_a_cts_rts_pins: uart-ao-a-cts-rts {
1876 mux {
1877 groups = "uart_ao_a_cts",
1878 "uart_ao_a_rts";
1879 function = "uart_ao_a";
1880 bias-disable;
1881 };
1882 };
1883
Neil Armstrongcca30c82019-07-29 15:26:18 +02001884 pwm_a_e_pins: pwm-a-e {
1885 mux {
1886 groups = "pwm_a_e";
1887 function = "pwm_a_e";
1888 bias-disable;
1889 };
1890 };
1891
Neil Armstrong14992182019-07-29 15:26:17 +02001892 pwm_ao_a_pins: pwm-ao-a {
1893 mux {
1894 groups = "pwm_ao_a";
1895 function = "pwm_ao_a";
1896 bias-disable;
1897 };
1898 };
1899
1900 pwm_ao_b_pins: pwm-ao-b {
1901 mux {
1902 groups = "pwm_ao_b";
1903 function = "pwm_ao_b";
1904 bias-disable;
1905 };
1906 };
1907
1908 pwm_ao_c_4_pins: pwm-ao-c-4 {
1909 mux {
1910 groups = "pwm_ao_c_4";
1911 function = "pwm_ao_c";
1912 bias-disable;
1913 };
1914 };
1915
1916 pwm_ao_c_6_pins: pwm-ao-c-6 {
1917 mux {
1918 groups = "pwm_ao_c_6";
1919 function = "pwm_ao_c";
1920 bias-disable;
1921 };
1922 };
1923
1924 pwm_ao_d_5_pins: pwm-ao-d-5 {
1925 mux {
1926 groups = "pwm_ao_d_5";
1927 function = "pwm_ao_d";
1928 bias-disable;
1929 };
1930 };
1931
1932 pwm_ao_d_10_pins: pwm-ao-d-10 {
1933 mux {
1934 groups = "pwm_ao_d_10";
1935 function = "pwm_ao_d";
1936 bias-disable;
1937 };
1938 };
1939
1940 pwm_ao_d_e_pins: pwm-ao-d-e {
1941 mux {
1942 groups = "pwm_ao_d_e";
1943 function = "pwm_ao_d";
1944 };
1945 };
1946
1947 remote_input_ao_pins: remote-input-ao {
1948 mux {
1949 groups = "remote_ao_input";
1950 function = "remote_ao_input";
1951 bias-disable;
1952 };
1953 };
1954 };
1955 };
1956
Kevin Hilmand9421d62021-04-21 13:48:32 -07001957 vrtc: rtc@a8 {
Kevin Hilmana833a152019-08-07 20:54:02 -07001958 compatible = "amlogic,meson-vrtc";
1959 reg = <0x0 0x000a8 0x0 0x4>;
1960 };
1961
Neil Armstrong14992182019-07-29 15:26:17 +02001962 cec_AO: cec@100 {
1963 compatible = "amlogic,meson-gx-ao-cec";
1964 reg = <0x0 0x00100 0x0 0x14>;
1965 interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>;
1966 clocks = <&clkc_AO CLKID_AO_CEC>;
1967 clock-names = "core";
1968 status = "disabled";
1969 };
1970
1971 sec_AO: ao-secure@140 {
1972 compatible = "amlogic,meson-gx-ao-secure", "syscon";
1973 reg = <0x0 0x140 0x0 0x140>;
1974 amlogic,has-chip-id;
1975 };
1976
1977 cecb_AO: cec@280 {
1978 compatible = "amlogic,meson-g12a-ao-cec";
1979 reg = <0x0 0x00280 0x0 0x1c>;
1980 interrupts = <GIC_SPI 203 IRQ_TYPE_EDGE_RISING>;
1981 clocks = <&clkc_AO CLKID_AO_CTS_OSCIN>;
1982 clock-names = "oscin";
1983 status = "disabled";
1984 };
1985
1986 pwm_AO_cd: pwm@2000 {
1987 compatible = "amlogic,meson-g12a-ao-pwm-cd";
1988 reg = <0x0 0x2000 0x0 0x20>;
1989 #pwm-cells = <3>;
1990 status = "disabled";
1991 };
1992
1993 uart_AO: serial@3000 {
1994 compatible = "amlogic,meson-gx-uart",
1995 "amlogic,meson-ao-uart";
1996 reg = <0x0 0x3000 0x0 0x18>;
1997 interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
1998 clocks = <&xtal>, <&clkc_AO CLKID_AO_UART>, <&xtal>;
1999 clock-names = "xtal", "pclk", "baud";
2000 status = "disabled";
2001 };
2002
2003 uart_AO_B: serial@4000 {
2004 compatible = "amlogic,meson-gx-uart",
2005 "amlogic,meson-ao-uart";
2006 reg = <0x0 0x4000 0x0 0x18>;
2007 interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
2008 clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>;
2009 clock-names = "xtal", "pclk", "baud";
2010 status = "disabled";
2011 };
2012
2013 i2c_AO: i2c@5000 {
2014 compatible = "amlogic,meson-axg-i2c";
2015 status = "disabled";
2016 reg = <0x0 0x05000 0x0 0x20>;
2017 interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
2018 #address-cells = <1>;
2019 #size-cells = <0>;
2020 clocks = <&clkc CLKID_I2C>;
2021 };
2022
2023 pwm_AO_ab: pwm@7000 {
2024 compatible = "amlogic,meson-g12a-ao-pwm-ab";
2025 reg = <0x0 0x7000 0x0 0x20>;
2026 #pwm-cells = <3>;
2027 status = "disabled";
2028 };
2029
2030 ir: ir@8000 {
2031 compatible = "amlogic,meson-gxbb-ir";
2032 reg = <0x0 0x8000 0x0 0x20>;
2033 interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>;
2034 status = "disabled";
2035 };
2036
2037 saradc: adc@9000 {
2038 compatible = "amlogic,meson-g12a-saradc",
2039 "amlogic,meson-saradc";
2040 reg = <0x0 0x9000 0x0 0x48>;
2041 #io-channel-cells = <1>;
2042 interrupts = <GIC_SPI 200 IRQ_TYPE_EDGE_RISING>;
2043 clocks = <&xtal>,
2044 <&clkc_AO CLKID_AO_SAR_ADC>,
2045 <&clkc_AO CLKID_AO_SAR_ADC_CLK>,
2046 <&clkc_AO CLKID_AO_SAR_ADC_SEL>;
2047 clock-names = "clkin", "core", "adc_clk", "adc_sel";
2048 status = "disabled";
2049 };
2050 };
2051
Maxime Jourdanfbceee82019-11-20 12:14:30 +01002052 vdec: video-decoder@ff620000 {
2053 compatible = "amlogic,g12a-vdec";
2054 reg = <0x0 0xff620000 0x0 0x10000>,
2055 <0x0 0xffd0e180 0x0 0xe4>;
2056 reg-names = "dos", "esparser";
2057 interrupts = <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>,
2058 <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>;
2059 interrupt-names = "vdec", "esparser";
2060
2061 amlogic,ao-sysctrl = <&rti>;
2062 amlogic,canvas = <&canvas>;
2063
2064 clocks = <&clkc CLKID_PARSER>,
2065 <&clkc CLKID_DOS>,
2066 <&clkc CLKID_VDEC_1>,
2067 <&clkc CLKID_VDEC_HEVC>,
2068 <&clkc CLKID_VDEC_HEVCF>;
2069 clock-names = "dos_parser", "dos", "vdec_1",
2070 "vdec_hevc", "vdec_hevcf";
2071 resets = <&reset RESET_PARSER>;
2072 reset-names = "esparser";
2073 };
2074
Neil Armstrong14992182019-07-29 15:26:17 +02002075 vpu: vpu@ff900000 {
2076 compatible = "amlogic,meson-g12a-vpu";
2077 reg = <0x0 0xff900000 0x0 0x100000>,
2078 <0x0 0xff63c000 0x0 0x1000>;
2079 reg-names = "vpu", "hhi";
2080 interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
2081 #address-cells = <1>;
2082 #size-cells = <0>;
2083 amlogic,canvas = <&canvas>;
Neil Armstrong14992182019-07-29 15:26:17 +02002084
2085 /* CVBS VDAC output port */
2086 cvbs_vdac_port: port@0 {
2087 reg = <0>;
2088 };
2089
2090 /* HDMI-TX output port */
2091 hdmi_tx_port: port@1 {
2092 reg = <1>;
2093
2094 hdmi_tx_out: endpoint {
2095 remote-endpoint = <&hdmi_tx_in>;
2096 };
2097 };
2098 };
2099
2100 gic: interrupt-controller@ffc01000 {
2101 compatible = "arm,gic-400";
2102 reg = <0x0 0xffc01000 0 0x1000>,
2103 <0x0 0xffc02000 0 0x2000>,
2104 <0x0 0xffc04000 0 0x2000>,
2105 <0x0 0xffc06000 0 0x2000>;
2106 interrupt-controller;
2107 interrupts = <GIC_PPI 9
2108 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
2109 #interrupt-cells = <3>;
2110 #address-cells = <0>;
2111 };
2112
2113 cbus: bus@ffd00000 {
2114 compatible = "simple-bus";
2115 reg = <0x0 0xffd00000 0x0 0x100000>;
2116 #address-cells = <2>;
2117 #size-cells = <2>;
2118 ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x100000>;
2119
2120 reset: reset-controller@1004 {
Neil Armstrong795e7de2019-08-23 09:02:44 +02002121 compatible = "amlogic,meson-axg-reset";
Neil Armstrong14992182019-07-29 15:26:17 +02002122 reg = <0x0 0x1004 0x0 0x9c>;
2123 #reset-cells = <1>;
2124 };
2125
2126 gpio_intc: interrupt-controller@f080 {
2127 compatible = "amlogic,meson-g12a-gpio-intc",
2128 "amlogic,meson-gpio-intc";
2129 reg = <0x0 0xf080 0x0 0x10>;
2130 interrupt-controller;
2131 #interrupt-cells = <2>;
2132 amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
2133 };
2134
Kevin Hilmand9421d62021-04-21 13:48:32 -07002135 watchdog: watchdog@f0d0 {
Christian Hewitt7bd51752020-11-01 02:10:12 +00002136 compatible = "amlogic,meson-gxbb-wdt";
2137 reg = <0x0 0xf0d0 0x0 0x10>;
2138 clocks = <&xtal>;
2139 };
2140
Neil Armstrong5fa86f42020-03-13 10:14:01 +01002141 spicc0: spi@13000 {
2142 compatible = "amlogic,meson-g12a-spicc";
2143 reg = <0x0 0x13000 0x0 0x44>;
2144 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
2145 clocks = <&clkc CLKID_SPICC0>,
2146 <&clkc CLKID_SPICC0_SCLK>;
2147 clock-names = "core", "pclk";
2148 #address-cells = <1>;
2149 #size-cells = <0>;
2150 status = "disabled";
2151 };
2152
2153 spicc1: spi@15000 {
2154 compatible = "amlogic,meson-g12a-spicc";
2155 reg = <0x0 0x15000 0x0 0x44>;
2156 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
2157 clocks = <&clkc CLKID_SPICC1>,
2158 <&clkc CLKID_SPICC1_SCLK>;
2159 clock-names = "core", "pclk";
2160 #address-cells = <1>;
2161 #size-cells = <0>;
2162 status = "disabled";
2163 };
2164
Neil Armstrongf12a463d2020-03-13 10:07:11 +01002165 spifc: spi@14000 {
2166 compatible = "amlogic,meson-gxbb-spifc";
2167 status = "disabled";
2168 reg = <0x0 0x14000 0x0 0x80>;
2169 #address-cells = <1>;
2170 #size-cells = <0>;
2171 clocks = <&clkc CLKID_CLK81>;
2172 };
2173
Neil Armstrong14992182019-07-29 15:26:17 +02002174 pwm_ef: pwm@19000 {
2175 compatible = "amlogic,meson-g12a-ee-pwm";
2176 reg = <0x0 0x19000 0x0 0x20>;
2177 #pwm-cells = <3>;
2178 status = "disabled";
2179 };
2180
2181 pwm_cd: pwm@1a000 {
2182 compatible = "amlogic,meson-g12a-ee-pwm";
2183 reg = <0x0 0x1a000 0x0 0x20>;
2184 #pwm-cells = <3>;
2185 status = "disabled";
2186 };
2187
2188 pwm_ab: pwm@1b000 {
2189 compatible = "amlogic,meson-g12a-ee-pwm";
2190 reg = <0x0 0x1b000 0x0 0x20>;
2191 #pwm-cells = <3>;
2192 status = "disabled";
2193 };
2194
2195 i2c3: i2c@1c000 {
2196 compatible = "amlogic,meson-axg-i2c";
2197 status = "disabled";
2198 reg = <0x0 0x1c000 0x0 0x20>;
2199 interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>;
2200 #address-cells = <1>;
2201 #size-cells = <0>;
2202 clocks = <&clkc CLKID_I2C>;
2203 };
2204
2205 i2c2: i2c@1d000 {
2206 compatible = "amlogic,meson-axg-i2c";
2207 status = "disabled";
2208 reg = <0x0 0x1d000 0x0 0x20>;
2209 interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
2210 #address-cells = <1>;
2211 #size-cells = <0>;
2212 clocks = <&clkc CLKID_I2C>;
2213 };
2214
2215 i2c1: i2c@1e000 {
2216 compatible = "amlogic,meson-axg-i2c";
2217 status = "disabled";
2218 reg = <0x0 0x1e000 0x0 0x20>;
2219 interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
2220 #address-cells = <1>;
2221 #size-cells = <0>;
2222 clocks = <&clkc CLKID_I2C>;
2223 };
2224
2225 i2c0: i2c@1f000 {
2226 compatible = "amlogic,meson-axg-i2c";
2227 status = "disabled";
2228 reg = <0x0 0x1f000 0x0 0x20>;
2229 interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
2230 #address-cells = <1>;
2231 #size-cells = <0>;
2232 clocks = <&clkc CLKID_I2C>;
2233 };
2234
2235 clk_msr: clock-measure@18000 {
2236 compatible = "amlogic,meson-g12a-clk-measure";
2237 reg = <0x0 0x18000 0x0 0x10>;
2238 };
2239
2240 uart_C: serial@22000 {
2241 compatible = "amlogic,meson-gx-uart";
2242 reg = <0x0 0x22000 0x0 0x18>;
2243 interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>;
2244 clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
2245 clock-names = "xtal", "pclk", "baud";
2246 status = "disabled";
2247 };
2248
2249 uart_B: serial@23000 {
2250 compatible = "amlogic,meson-gx-uart";
2251 reg = <0x0 0x23000 0x0 0x18>;
2252 interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
2253 clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
2254 clock-names = "xtal", "pclk", "baud";
2255 status = "disabled";
2256 };
2257
2258 uart_A: serial@24000 {
2259 compatible = "amlogic,meson-gx-uart";
2260 reg = <0x0 0x24000 0x0 0x18>;
2261 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
2262 clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
2263 clock-names = "xtal", "pclk", "baud";
2264 status = "disabled";
Neil Armstronga270a2b2021-05-18 09:58:33 +02002265 fifo-size = <128>;
Neil Armstrong14992182019-07-29 15:26:17 +02002266 };
2267 };
2268
2269 sd_emmc_a: sd@ffe03000 {
2270 compatible = "amlogic,meson-axg-mmc";
2271 reg = <0x0 0xffe03000 0x0 0x800>;
2272 interrupts = <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>;
2273 status = "disabled";
2274 clocks = <&clkc CLKID_SD_EMMC_A>,
2275 <&clkc CLKID_SD_EMMC_A_CLK0>,
2276 <&clkc CLKID_FCLK_DIV2>;
2277 clock-names = "core", "clkin0", "clkin1";
2278 resets = <&reset RESET_SD_EMMC_A>;
2279 };
2280
2281 sd_emmc_b: sd@ffe05000 {
2282 compatible = "amlogic,meson-axg-mmc";
2283 reg = <0x0 0xffe05000 0x0 0x800>;
2284 interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>;
2285 status = "disabled";
2286 clocks = <&clkc CLKID_SD_EMMC_B>,
2287 <&clkc CLKID_SD_EMMC_B_CLK0>,
2288 <&clkc CLKID_FCLK_DIV2>;
2289 clock-names = "core", "clkin0", "clkin1";
2290 resets = <&reset RESET_SD_EMMC_B>;
2291 };
2292
2293 sd_emmc_c: mmc@ffe07000 {
2294 compatible = "amlogic,meson-axg-mmc";
2295 reg = <0x0 0xffe07000 0x0 0x800>;
2296 interrupts = <GIC_SPI 191 IRQ_TYPE_EDGE_RISING>;
2297 status = "disabled";
2298 clocks = <&clkc CLKID_SD_EMMC_C>,
2299 <&clkc CLKID_SD_EMMC_C_CLK0>,
2300 <&clkc CLKID_FCLK_DIV2>;
2301 clock-names = "core", "clkin0", "clkin1";
2302 resets = <&reset RESET_SD_EMMC_C>;
2303 };
2304
2305 usb: usb@ffe09000 {
2306 status = "disabled";
2307 compatible = "amlogic,meson-g12a-usb-ctrl";
2308 reg = <0x0 0xffe09000 0x0 0xa0>;
2309 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
2310 #address-cells = <2>;
2311 #size-cells = <2>;
2312 ranges;
2313
2314 clocks = <&clkc CLKID_USB>;
2315 resets = <&reset RESET_USB>;
2316
2317 dr_mode = "otg";
2318
2319 phys = <&usb2_phy0>, <&usb2_phy1>,
2320 <&usb3_pcie_phy PHY_TYPE_USB3>;
2321 phy-names = "usb2-phy0", "usb2-phy1", "usb3-phy0";
2322
2323 dwc2: usb@ff400000 {
2324 compatible = "amlogic,meson-g12a-usb", "snps,dwc2";
2325 reg = <0x0 0xff400000 0x0 0x40000>;
2326 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
2327 clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
Neil Armstronge4f634d2020-03-26 17:08:57 +01002328 clock-names = "otg";
Neil Armstrong14992182019-07-29 15:26:17 +02002329 phys = <&usb2_phy1>;
2330 phy-names = "usb2-phy";
2331 dr_mode = "peripheral";
2332 g-rx-fifo-size = <192>;
2333 g-np-tx-fifo-size = <128>;
2334 g-tx-fifo-size = <128 128 16 16 16>;
2335 };
2336
2337 dwc3: usb@ff500000 {
2338 compatible = "snps,dwc3";
2339 reg = <0x0 0xff500000 0x0 0x100000>;
2340 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
2341 dr_mode = "host";
2342 snps,dis_u2_susphy_quirk;
Serge Semin7386a552020-12-10 12:17:47 +03002343 snps,quirk-frame-length-adjustment = <0x20>;
Neil Armstronga81bcfb2020-02-21 10:15:32 +01002344 snps,parkmode-disable-ss-quirk;
Neil Armstrong14992182019-07-29 15:26:17 +02002345 };
2346 };
2347
2348 mali: gpu@ffe40000 {
2349 compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
2350 reg = <0x0 0xffe40000 0x0 0x40000>;
2351 interrupt-parent = <&gic>;
Neil Armstrong711f9cb2019-10-21 16:29:00 +02002352 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
Neil Armstrong14992182019-07-29 15:26:17 +02002353 <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
Neil Armstrong711f9cb2019-10-21 16:29:00 +02002354 <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
2355 interrupt-names = "job", "mmu", "gpu";
Neil Armstrong14992182019-07-29 15:26:17 +02002356 clocks = <&clkc CLKID_MALI>;
2357 resets = <&reset RESET_DVALIN_CAPB3>, <&reset RESET_DVALIN>;
Martin Blumenstingl916a0ed2020-07-19 19:32:13 +02002358 operating-points-v2 = <&gpu_opp_table>;
Guillaume La Roquee7251ed2019-10-04 11:01:11 +02002359 #cooling-cells = <2>;
Neil Armstrong14992182019-07-29 15:26:17 +02002360 };
2361 };
2362
Alexander Steincdc50912021-10-26 20:28:11 +02002363 thermal-zones {
2364 cpu_thermal: cpu-thermal {
2365 polling-delay = <1000>;
2366 polling-delay-passive = <100>;
2367 thermal-sensors = <&cpu_temp>;
2368
2369 trips {
2370 cpu_passive: cpu-passive {
2371 temperature = <85000>; /* millicelsius */
2372 hysteresis = <2000>; /* millicelsius */
2373 type = "passive";
2374 };
2375
2376 cpu_hot: cpu-hot {
2377 temperature = <95000>; /* millicelsius */
2378 hysteresis = <2000>; /* millicelsius */
2379 type = "hot";
2380 };
2381
2382 cpu_critical: cpu-critical {
2383 temperature = <110000>; /* millicelsius */
2384 hysteresis = <2000>; /* millicelsius */
2385 type = "critical";
2386 };
2387 };
2388 };
2389
2390 ddr_thermal: ddr-thermal {
2391 polling-delay = <1000>;
2392 polling-delay-passive = <100>;
2393 thermal-sensors = <&ddr_temp>;
2394
2395 trips {
2396 ddr_passive: ddr-passive {
2397 temperature = <85000>; /* millicelsius */
2398 hysteresis = <2000>; /* millicelsius */
2399 type = "passive";
2400 };
2401
2402 ddr_critical: ddr-critical {
2403 temperature = <110000>; /* millicelsius */
2404 hysteresis = <2000>; /* millicelsius */
2405 type = "critical";
2406 };
2407 };
2408
2409 cooling-maps {
2410 map {
2411 trip = <&ddr_passive>;
2412 cooling-device = <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2413 };
2414 };
2415 };
2416 };
2417
Neil Armstrong14992182019-07-29 15:26:17 +02002418 timer {
2419 compatible = "arm,armv8-timer";
2420 interrupts = <GIC_PPI 13
2421 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
2422 <GIC_PPI 14
2423 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
2424 <GIC_PPI 11
2425 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
2426 <GIC_PPI 10
2427 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
Kevin Hilmana5502272019-08-08 09:44:48 -07002428 arm,no-tick-in-suspend;
Neil Armstrong14992182019-07-29 15:26:17 +02002429 };
2430
2431 xtal: xtal-clk {
2432 compatible = "fixed-clock";
2433 clock-frequency = <24000000>;
2434 clock-output-names = "xtal";
2435 #clock-cells = <0>;
2436 };
2437
2438};