Merge tag 'for-5.15/parisc' of git://git.kernel.org/pub/scm/linux/kernel/git/deller...
[linux-2.6-microblaze.git] / arch / arm / boot / dts / meson8b.dtsi
1 // SPDX-License-Identifier: GPL-2.0 OR MIT
2 /*
3  * Copyright 2015 Endless Mobile, Inc.
4  * Author: Carlo Caione <carlo@endlessm.com>
5  */
6
7 #include <dt-bindings/clock/meson8-ddr-clkc.h>
8 #include <dt-bindings/clock/meson8b-clkc.h>
9 #include <dt-bindings/gpio/meson8b-gpio.h>
10 #include <dt-bindings/power/meson8-power.h>
11 #include <dt-bindings/reset/amlogic,meson8b-reset.h>
12 #include <dt-bindings/reset/amlogic,meson8b-clkc-reset.h>
13 #include <dt-bindings/thermal/thermal.h>
14 #include "meson.dtsi"
15
16 / {
17         cpus {
18                 #address-cells = <1>;
19                 #size-cells = <0>;
20
21                 cpu0: cpu@200 {
22                         device_type = "cpu";
23                         compatible = "arm,cortex-a5";
24                         next-level-cache = <&L2>;
25                         reg = <0x200>;
26                         enable-method = "amlogic,meson8b-smp";
27                         resets = <&clkc CLKC_RESET_CPU0_SOFT_RESET>;
28                         operating-points-v2 = <&cpu_opp_table>;
29                         clocks = <&clkc CLKID_CPUCLK>;
30                         #cooling-cells = <2>; /* min followed by max */
31                 };
32
33                 cpu1: cpu@201 {
34                         device_type = "cpu";
35                         compatible = "arm,cortex-a5";
36                         next-level-cache = <&L2>;
37                         reg = <0x201>;
38                         enable-method = "amlogic,meson8b-smp";
39                         resets = <&clkc CLKC_RESET_CPU1_SOFT_RESET>;
40                         operating-points-v2 = <&cpu_opp_table>;
41                         clocks = <&clkc CLKID_CPUCLK>;
42                         #cooling-cells = <2>; /* min followed by max */
43                 };
44
45                 cpu2: cpu@202 {
46                         device_type = "cpu";
47                         compatible = "arm,cortex-a5";
48                         next-level-cache = <&L2>;
49                         reg = <0x202>;
50                         enable-method = "amlogic,meson8b-smp";
51                         resets = <&clkc CLKC_RESET_CPU2_SOFT_RESET>;
52                         operating-points-v2 = <&cpu_opp_table>;
53                         clocks = <&clkc CLKID_CPUCLK>;
54                         #cooling-cells = <2>; /* min followed by max */
55                 };
56
57                 cpu3: cpu@203 {
58                         device_type = "cpu";
59                         compatible = "arm,cortex-a5";
60                         next-level-cache = <&L2>;
61                         reg = <0x203>;
62                         enable-method = "amlogic,meson8b-smp";
63                         resets = <&clkc CLKC_RESET_CPU3_SOFT_RESET>;
64                         operating-points-v2 = <&cpu_opp_table>;
65                         clocks = <&clkc CLKID_CPUCLK>;
66                         #cooling-cells = <2>; /* min followed by max */
67                 };
68         };
69
70         cpu_opp_table: opp-table {
71                 compatible = "operating-points-v2";
72                 opp-shared;
73
74                 opp-96000000 {
75                         opp-hz = /bits/ 64 <96000000>;
76                         opp-microvolt = <860000>;
77                 };
78                 opp-192000000 {
79                         opp-hz = /bits/ 64 <192000000>;
80                         opp-microvolt = <860000>;
81                 };
82                 opp-312000000 {
83                         opp-hz = /bits/ 64 <312000000>;
84                         opp-microvolt = <860000>;
85                 };
86                 opp-408000000 {
87                         opp-hz = /bits/ 64 <408000000>;
88                         opp-microvolt = <860000>;
89                 };
90                 opp-504000000 {
91                         opp-hz = /bits/ 64 <504000000>;
92                         opp-microvolt = <860000>;
93                 };
94                 opp-600000000 {
95                         opp-hz = /bits/ 64 <600000000>;
96                         opp-microvolt = <860000>;
97                 };
98                 opp-720000000 {
99                         opp-hz = /bits/ 64 <720000000>;
100                         opp-microvolt = <860000>;
101                 };
102                 opp-816000000 {
103                         opp-hz = /bits/ 64 <816000000>;
104                         opp-microvolt = <900000>;
105                 };
106                 opp-1008000000 {
107                         opp-hz = /bits/ 64 <1008000000>;
108                         opp-microvolt = <1140000>;
109                 };
110                 opp-1200000000 {
111                         opp-hz = /bits/ 64 <1200000000>;
112                         opp-microvolt = <1140000>;
113                 };
114                 opp-1320000000 {
115                         opp-hz = /bits/ 64 <1320000000>;
116                         opp-microvolt = <1140000>;
117                 };
118                 opp-1488000000 {
119                         opp-hz = /bits/ 64 <1488000000>;
120                         opp-microvolt = <1140000>;
121                 };
122                 opp-1536000000 {
123                         opp-hz = /bits/ 64 <1536000000>;
124                         opp-microvolt = <1140000>;
125                 };
126         };
127
128         gpu_opp_table: gpu-opp-table {
129                 compatible = "operating-points-v2";
130
131                 opp-255000000 {
132                         opp-hz = /bits/ 64 <255000000>;
133                         opp-microvolt = <1100000>;
134                 };
135                 opp-364285714 {
136                         opp-hz = /bits/ 64 <364285714>;
137                         opp-microvolt = <1100000>;
138                 };
139                 opp-425000000 {
140                         opp-hz = /bits/ 64 <425000000>;
141                         opp-microvolt = <1100000>;
142                 };
143                 opp-510000000 {
144                         opp-hz = /bits/ 64 <510000000>;
145                         opp-microvolt = <1100000>;
146                 };
147                 opp-637500000 {
148                         opp-hz = /bits/ 64 <637500000>;
149                         opp-microvolt = <1100000>;
150                         turbo-mode;
151                 };
152         };
153
154         pmu {
155                 compatible = "arm,cortex-a5-pmu";
156                 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
157                              <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
158                              <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
159                              <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
160                 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
161         };
162
163         reserved-memory {
164                 #address-cells = <1>;
165                 #size-cells = <1>;
166                 ranges;
167
168                 /* 2 MiB reserved for Hardware ROM Firmware? */
169                 hwrom@0 {
170                         reg = <0x0 0x200000>;
171                         no-map;
172                 };
173         };
174
175         thermal-zones {
176                 soc {
177                         polling-delay-passive = <250>; /* milliseconds */
178                         polling-delay = <1000>; /* milliseconds */
179                         thermal-sensors = <&thermal_sensor>;
180
181                         cooling-maps {
182                                 map0 {
183                                         trip = <&soc_passive>;
184                                         cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
185                                                          <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
186                                                          <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
187                                                          <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
188                                                          <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
189                                 };
190
191                                 map1 {
192                                         trip = <&soc_hot>;
193                                         cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
194                                                          <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
195                                                          <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
196                                                          <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
197                                                          <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
198                                 };
199                         };
200
201                         trips {
202                                 soc_passive: soc-passive {
203                                         temperature = <80000>; /* millicelsius */
204                                         hysteresis = <2000>; /* millicelsius */
205                                         type = "passive";
206                                 };
207
208                                 soc_hot: soc-hot {
209                                         temperature = <90000>; /* millicelsius */
210                                         hysteresis = <2000>; /* millicelsius */
211                                         type = "hot";
212                                 };
213
214                                 soc_critical: soc-critical {
215                                         temperature = <110000>; /* millicelsius */
216                                         hysteresis = <2000>; /* millicelsius */
217                                         type = "critical";
218                                 };
219                         };
220                 };
221         };
222
223         mmcbus: bus@c8000000 {
224                 compatible = "simple-bus";
225                 reg = <0xc8000000 0x8000>;
226                 #address-cells = <1>;
227                 #size-cells = <1>;
228                 ranges = <0x0 0xc8000000 0x8000>;
229
230                 ddr_clkc: clock-controller@400 {
231                         compatible = "amlogic,meson8b-ddr-clkc";
232                         reg = <0x400 0x20>;
233                         clocks = <&xtal>;
234                         clock-names = "xtal";
235                         #clock-cells = <1>;
236                 };
237
238                 dmcbus: bus@6000 {
239                         compatible = "simple-bus";
240                         reg = <0x6000 0x400>;
241                         #address-cells = <1>;
242                         #size-cells = <1>;
243                         ranges = <0x0 0x6000 0x400>;
244
245                         canvas: video-lut@48 {
246                                 compatible = "amlogic,meson8b-canvas",
247                                              "amlogic,canvas";
248                                 reg = <0x48 0x14>;
249                         };
250                 };
251         };
252
253         apb: bus@d0000000 {
254                 compatible = "simple-bus";
255                 reg = <0xd0000000 0x200000>;
256                 #address-cells = <1>;
257                 #size-cells = <1>;
258                 ranges = <0x0 0xd0000000 0x200000>;
259
260                 mali: gpu@c0000 {
261                         compatible = "amlogic,meson8b-mali", "arm,mali-450";
262                         reg = <0xc0000 0x40000>;
263                         interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
264                                      <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
265                                      <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
266                                      <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
267                                      <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
268                                      <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
269                                      <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
270                                      <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
271                         interrupt-names = "gp", "gpmmu", "pp", "pmu",
272                                           "pp0", "ppmmu0", "pp1", "ppmmu1";
273                         resets = <&reset RESET_MALI>;
274                         clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>;
275                         clock-names = "bus", "core";
276                         operating-points-v2 = <&gpu_opp_table>;
277                         #cooling-cells = <2>; /* min followed by max */
278                 };
279         };
280 }; /* end of / */
281
282 &aiu {
283         compatible = "amlogic,aiu-meson8b", "amlogic,aiu";
284         clocks = <&clkc CLKID_AIU_GLUE>,
285                  <&clkc CLKID_I2S_OUT>,
286                  <&clkc CLKID_AOCLK_GATE>,
287                  <&clkc CLKID_CTS_AMCLK>,
288                  <&clkc CLKID_MIXER_IFACE>,
289                  <&clkc CLKID_IEC958>,
290                  <&clkc CLKID_IEC958_GATE>,
291                  <&clkc CLKID_CTS_MCLK_I958>,
292                  <&clkc CLKID_CTS_I958>;
293         clock-names = "pclk",
294                       "i2s_pclk",
295                       "i2s_aoclk",
296                       "i2s_mclk",
297                       "i2s_mixer",
298                       "spdif_pclk",
299                       "spdif_aoclk",
300                       "spdif_mclk",
301                       "spdif_mclk_sel";
302         resets = <&reset RESET_AIU>;
303 };
304
305 &aobus {
306         pmu: pmu@e0 {
307                 compatible = "amlogic,meson8b-pmu", "syscon";
308                 reg = <0xe0 0x18>;
309         };
310
311         pinctrl_aobus: pinctrl@84 {
312                 compatible = "amlogic,meson8b-aobus-pinctrl";
313                 reg = <0x84 0xc>;
314                 #address-cells = <1>;
315                 #size-cells = <1>;
316                 ranges;
317
318                 gpio_ao: ao-bank@14 {
319                         reg = <0x14 0x4>,
320                                 <0x2c 0x4>,
321                                 <0x24 0x8>;
322                         reg-names = "mux", "pull", "gpio";
323                         gpio-controller;
324                         #gpio-cells = <2>;
325                         gpio-ranges = <&pinctrl_aobus 0 0 16>;
326                 };
327
328                 i2s_am_clk_pins: i2s-am-clk-out {
329                         mux {
330                                 groups = "i2s_am_clk_out";
331                                 function = "i2s";
332                                 bias-disable;
333                         };
334                 };
335
336                 i2s_out_ao_clk_pins: i2s-ao-clk-out {
337                         mux {
338                                 groups = "i2s_ao_clk_out";
339                                 function = "i2s";
340                                 bias-disable;
341                         };
342                 };
343
344                 i2s_out_lr_clk_pins: i2s-lr-clk-out {
345                         mux {
346                                 groups = "i2s_lr_clk_out";
347                                 function = "i2s";
348                                 bias-disable;
349                         };
350                 };
351
352                 i2s_out_ch01_ao_pins: i2s-out-ch01 {
353                         mux {
354                                 groups = "i2s_out_01";
355                                 function = "i2s";
356                                 bias-disable;
357                         };
358                 };
359
360                 spdif_out_1_pins: spdif-out-1 {
361                         mux {
362                                 groups = "spdif_out_1";
363                                 function = "spdif_1";
364                                 bias-disable;
365                         };
366                 };
367
368                 uart_ao_a_pins: uart_ao_a {
369                         mux {
370                                 groups = "uart_tx_ao_a", "uart_rx_ao_a";
371                                 function = "uart_ao";
372                                 bias-disable;
373                         };
374                 };
375
376                 ir_recv_pins: remote {
377                         mux {
378                                 groups = "remote_input";
379                                 function = "remote";
380                                 bias-disable;
381                         };
382                 };
383         };
384 };
385
386 &ao_arc_rproc {
387         compatible= "amlogic,meson8b-ao-arc", "amlogic,meson-mx-ao-arc";
388         amlogic,secbus2 = <&secbus2>;
389         sram = <&ao_arc_sram>;
390         resets = <&reset RESET_MEDIA_CPU>;
391         clocks = <&clkc CLKID_AO_MEDIA_CPU>;
392 };
393
394 &cbus {
395         reset: reset-controller@4404 {
396                 compatible = "amlogic,meson8b-reset";
397                 reg = <0x4404 0x9c>;
398                 #reset-cells = <1>;
399         };
400
401         analog_top: analog-top@81a8 {
402                 compatible = "amlogic,meson8b-analog-top", "syscon";
403                 reg = <0x81a8 0x14>;
404         };
405
406         pwm_ef: pwm@86c0 {
407                 compatible = "amlogic,meson8b-pwm";
408                 reg = <0x86c0 0x10>;
409                 #pwm-cells = <3>;
410                 status = "disabled";
411         };
412
413         clock-measure@8758 {
414                 compatible = "amlogic,meson8b-clk-measure";
415                 reg = <0x8758 0x1c>;
416         };
417
418         pinctrl_cbus: pinctrl@9880 {
419                 compatible = "amlogic,meson8b-cbus-pinctrl";
420                 reg = <0x9880 0x10>;
421                 #address-cells = <1>;
422                 #size-cells = <1>;
423                 ranges;
424
425                 gpio: banks@80b0 {
426                         reg = <0x80b0 0x28>,
427                                 <0x80e8 0x18>,
428                                 <0x8120 0x18>,
429                                 <0x8030 0x38>;
430                         reg-names = "mux", "pull", "pull-enable", "gpio";
431                         gpio-controller;
432                         #gpio-cells = <2>;
433                         gpio-ranges = <&pinctrl_cbus 0 0 83>;
434                 };
435
436                 eth_rgmii_pins: eth-rgmii {
437                         mux {
438                                 groups = "eth_tx_clk",
439                                          "eth_tx_en",
440                                          "eth_txd1_0",
441                                          "eth_txd0_0",
442                                          "eth_rx_clk",
443                                          "eth_rx_dv",
444                                          "eth_rxd1",
445                                          "eth_rxd0",
446                                          "eth_mdio_en",
447                                          "eth_mdc",
448                                          "eth_ref_clk",
449                                          "eth_txd2",
450                                          "eth_txd3",
451                                          "eth_rxd3",
452                                          "eth_rxd2";
453                                 function = "ethernet";
454                                 bias-disable;
455                         };
456                 };
457
458                 eth_rmii_pins: eth-rmii {
459                         mux {
460                                 groups = "eth_tx_en",
461                                          "eth_txd1_0",
462                                          "eth_txd0_0",
463                                          "eth_rx_clk",
464                                          "eth_rx_dv",
465                                          "eth_rxd1",
466                                          "eth_rxd0",
467                                          "eth_mdio_en",
468                                          "eth_mdc";
469                                 function = "ethernet";
470                                 bias-disable;
471                         };
472                 };
473
474                 i2c_a_pins: i2c-a {
475                         mux {
476                                 groups = "i2c_sda_a", "i2c_sck_a";
477                                 function = "i2c_a";
478                                 bias-disable;
479                         };
480                 };
481
482                 sd_b_pins: sd-b {
483                         mux {
484                                 groups = "sd_d0_b", "sd_d1_b", "sd_d2_b",
485                                         "sd_d3_b", "sd_clk_b", "sd_cmd_b";
486                                 function = "sd_b";
487                                 bias-disable;
488                         };
489                 };
490
491                 sdxc_c_pins: sdxc-c {
492                         mux {
493                                 groups = "sdxc_d0_c", "sdxc_d13_c",
494                                          "sdxc_d47_c", "sdxc_clk_c",
495                                          "sdxc_cmd_c";
496                                 function = "sdxc_c";
497                                 bias-pull-up;
498                         };
499                 };
500
501                 pwm_c1_pins: pwm-c1 {
502                         mux {
503                                 groups = "pwm_c1";
504                                 function = "pwm_c";
505                                 bias-disable;
506                         };
507                 };
508
509                 pwm_d_pins: pwm-d {
510                         mux {
511                                 groups = "pwm_d";
512                                 function = "pwm_d";
513                                 bias-disable;
514                         };
515                 };
516
517                 uart_b0_pins: uart-b0 {
518                         mux {
519                                 groups = "uart_tx_b0",
520                                        "uart_rx_b0";
521                                 function = "uart_b";
522                                 bias-disable;
523                         };
524                 };
525
526                 uart_b0_cts_rts_pins: uart-b0-cts-rts {
527                         mux {
528                                 groups = "uart_cts_b0",
529                                        "uart_rts_b0";
530                                 function = "uart_b";
531                                 bias-disable;
532                         };
533                 };
534         };
535 };
536
537 &ahb_sram {
538         ao_arc_sram: ao-arc-sram@0 {
539                 compatible = "amlogic,meson8b-ao-arc-sram";
540                 reg = <0x0 0x8000>;
541                 pool;
542         };
543
544         smp-sram@1ff80 {
545                 compatible = "amlogic,meson8b-smp-sram";
546                 reg = <0x1ff80 0x8>;
547         };
548 };
549
550
551 &efuse {
552         compatible = "amlogic,meson8b-efuse";
553         clocks = <&clkc CLKID_EFUSE>;
554         clock-names = "core";
555
556         temperature_calib: calib@1f4 {
557                 /* only the upper two bytes are relevant */
558                 reg = <0x1f4 0x4>;
559         };
560 };
561
562 &ethmac {
563         compatible = "amlogic,meson8b-dwmac", "snps,dwmac-3.70a", "snps,dwmac";
564
565         reg = <0xc9410000 0x10000
566                0xc1108140 0x4>;
567
568         clocks = <&clkc CLKID_ETH>,
569                  <&clkc CLKID_MPLL2>,
570                  <&clkc CLKID_MPLL2>,
571                  <&clkc CLKID_FCLK_DIV2>;
572         clock-names = "stmmaceth", "clkin0", "clkin1", "timing-adjustment";
573         rx-fifo-depth = <4096>;
574         tx-fifo-depth = <2048>;
575
576         resets = <&reset RESET_ETHERNET>;
577         reset-names = "stmmaceth";
578
579         power-domains = <&pwrc PWRC_MESON8_ETHERNET_MEM_ID>;
580 };
581
582 &gpio_intc {
583         compatible = "amlogic,meson-gpio-intc",
584                      "amlogic,meson8b-gpio-intc";
585         status = "okay";
586 };
587
588 &hhi {
589         clkc: clock-controller {
590                 compatible = "amlogic,meson8b-clkc";
591                 clocks = <&xtal>, <&ddr_clkc DDR_CLKID_DDR_PLL>;
592                 clock-names = "xtal", "ddr_pll";
593                 #clock-cells = <1>;
594                 #reset-cells = <1>;
595         };
596
597         pwrc: power-controller {
598                 compatible = "amlogic,meson8b-pwrc";
599                 #power-domain-cells = <1>;
600                 amlogic,ao-sysctrl = <&pmu>;
601                 resets = <&reset RESET_DBLK>,
602                          <&reset RESET_PIC_DC>,
603                          <&reset RESET_HDMI_APB>,
604                          <&reset RESET_HDMI_SYSTEM_RESET>,
605                          <&reset RESET_VENCI>,
606                          <&reset RESET_VENCP>,
607                          <&reset RESET_VDAC_4>,
608                          <&reset RESET_VENCL>,
609                          <&reset RESET_VIU>,
610                          <&reset RESET_VENC>,
611                          <&reset RESET_RDMA>;
612                 reset-names = "dblk", "pic_dc", "hdmi_apb", "hdmi_system",
613                               "venci", "vencp", "vdac", "vencl", "viu",
614                               "venc", "rdma";
615                 clocks = <&clkc CLKID_VPU>;
616                 clock-names = "vpu";
617                 assigned-clocks = <&clkc CLKID_VPU>;
618                 assigned-clock-rates = <182142857>;
619         };
620 };
621
622 &hwrng {
623         compatible = "amlogic,meson8b-rng", "amlogic,meson-rng";
624         clocks = <&clkc CLKID_RNG0>;
625         clock-names = "core";
626 };
627
628 &i2c_AO {
629         clocks = <&clkc CLKID_CLK81>;
630 };
631
632 &i2c_A {
633         clocks = <&clkc CLKID_I2C>;
634 };
635
636 &i2c_B {
637         clocks = <&clkc CLKID_I2C>;
638 };
639
640 &L2 {
641         arm,data-latency = <3 3 3>;
642         arm,tag-latency = <2 2 2>;
643         arm,filter-ranges = <0x100000 0xc0000000>;
644         prefetch-data = <1>;
645         prefetch-instr = <1>;
646         arm,shared-override;
647 };
648
649 &periph {
650         scu@0 {
651                 compatible = "arm,cortex-a5-scu";
652                 reg = <0x0 0x100>;
653         };
654
655         timer@200 {
656                 compatible = "arm,cortex-a5-global-timer";
657                 reg = <0x200 0x20>;
658                 interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
659                 clocks = <&clkc CLKID_PERIPH>;
660
661                 /*
662                  * the arm_global_timer driver currently does not handle clock
663                  * rate changes. Keep it disabled for now.
664                  */
665                 status = "disabled";
666         };
667
668         timer@600 {
669                 compatible = "arm,cortex-a5-twd-timer";
670                 reg = <0x600 0x20>;
671                 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
672                 clocks = <&clkc CLKID_PERIPH>;
673         };
674 };
675
676 &pwm_ab {
677         compatible = "amlogic,meson8b-pwm";
678 };
679
680 &pwm_cd {
681         compatible = "amlogic,meson8b-pwm";
682 };
683
684 &rtc {
685         compatible = "amlogic,meson8b-rtc";
686         resets = <&reset RESET_RTC>;
687 };
688
689 &saradc {
690         compatible = "amlogic,meson8b-saradc", "amlogic,meson-saradc";
691         clocks = <&xtal>, <&clkc CLKID_SAR_ADC>;
692         clock-names = "clkin", "core";
693         amlogic,hhi-sysctrl = <&hhi>;
694         nvmem-cells = <&temperature_calib>;
695         nvmem-cell-names = "temperature_calib";
696 };
697
698 &sdhc {
699         compatible = "amlogic,meson8-sdhc", "amlogic,meson-mx-sdhc";
700         clocks = <&xtal>,
701                  <&clkc CLKID_FCLK_DIV4>,
702                  <&clkc CLKID_FCLK_DIV3>,
703                  <&clkc CLKID_FCLK_DIV5>,
704                  <&clkc CLKID_SDHC>;
705         clock-names = "clkin0", "clkin1", "clkin2", "clkin3", "pclk";
706 };
707
708 &secbus {
709         secbus2: system-controller@4000 {
710                 compatible = "amlogic,meson8b-secbus2", "syscon";
711                 reg = <0x4000 0x2000>;
712         };
713 };
714
715 &sdio {
716         compatible = "amlogic,meson8b-sdio", "amlogic,meson-mx-sdio";
717         clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>;
718         clock-names = "core", "clkin";
719 };
720
721 &timer_abcde {
722         clocks = <&xtal>, <&clkc CLKID_CLK81>;
723         clock-names = "xtal", "pclk";
724 };
725
726 &uart_AO {
727         compatible = "amlogic,meson8b-uart", "amlogic,meson-uart";
728         clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_CLK81>;
729         clock-names = "baud", "xtal", "pclk";
730 };
731
732 &uart_A {
733         compatible = "amlogic,meson8b-uart", "amlogic,meson-uart";
734         clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART0>;
735         clock-names = "baud", "xtal", "pclk";
736 };
737
738 &uart_B {
739         compatible = "amlogic,meson8b-uart", "amlogic,meson-uart";
740         clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART1>;
741         clock-names = "baud", "xtal", "pclk";
742 };
743
744 &uart_C {
745         compatible = "amlogic,meson8b-uart", "amlogic,meson-uart";
746         clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART2>;
747         clock-names = "baud", "xtal", "pclk";
748 };
749
750 &usb0 {
751         compatible = "amlogic,meson8b-usb", "snps,dwc2";
752         clocks = <&clkc CLKID_USB0_DDR_BRIDGE>;
753         clock-names = "otg";
754 };
755
756 &usb1 {
757         compatible = "amlogic,meson8b-usb", "snps,dwc2";
758         clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
759         clock-names = "otg";
760 };
761
762 &usb0_phy {
763         compatible = "amlogic,meson8b-usb2-phy", "amlogic,meson-mx-usb2-phy";
764         clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB0>;
765         clock-names = "usb_general", "usb";
766         resets = <&reset RESET_USB_OTG>;
767 };
768
769 &usb1_phy {
770         compatible = "amlogic,meson8b-usb2-phy", "amlogic,meson-mx-usb2-phy";
771         clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>;
772         clock-names = "usb_general", "usb";
773         resets = <&reset RESET_USB_OTG>;
774 };
775
776 &wdt {
777         compatible = "amlogic,meson8b-wdt";
778 };