blob: 257c1364864cc0599094938c256bdfefb7369690 [file] [log] [blame]
Neil Armstrong41e359ed2019-05-27 15:38:52 +02001// SPDX-License-Identifier: GPL-2.0 OR MIT
Beniamino Galvaniaeff05a2014-10-05 23:59:14 +02002/*
3 * Copyright 2014 Carlo Caione <carlo@caione.org>
Beniamino Galvaniaeff05a2014-10-05 23:59:14 +02004 */
5
Martin Blumenstinglc4ac5c32019-12-08 19:05:24 +01006#include <dt-bindings/clock/meson8-ddr-clkc.h>
Martin Blumenstingl2c323c42017-06-04 20:33:41 +02007#include <dt-bindings/clock/meson8b-clkc.h>
Beniamino Galvanid9fea882015-01-17 19:15:16 +01008#include <dt-bindings/gpio/meson8-gpio.h>
Martin Blumenstingl4a5a2712017-09-17 18:45:22 +02009#include <dt-bindings/reset/amlogic,meson8b-clkc-reset.h>
Martin Blumenstingle30871872018-01-21 23:14:13 +010010#include <dt-bindings/reset/amlogic,meson8b-reset.h>
Martin Blumenstingl7a16f062017-06-15 23:33:43 +020011#include "meson.dtsi"
Beniamino Galvaniaeff05a2014-10-05 23:59:14 +020012
13/ {
14 model = "Amlogic Meson8 SoC";
15 compatible = "amlogic,meson8";
16
Beniamino Galvaniaeff05a2014-10-05 23:59:14 +020017 cpus {
18 #address-cells = <1>;
19 #size-cells = <0>;
20
Martin Blumenstingl17b66022018-04-22 12:45:01 +020021 cpu0: cpu@200 {
Beniamino Galvaniaeff05a2014-10-05 23:59:14 +020022 device_type = "cpu";
23 compatible = "arm,cortex-a9";
Beniamino Galvani550ab392014-11-18 15:30:35 +010024 next-level-cache = <&L2>;
Beniamino Galvaniaeff05a2014-10-05 23:59:14 +020025 reg = <0x200>;
Martin Blumenstingl4a5a2712017-09-17 18:45:22 +020026 enable-method = "amlogic,meson8-smp";
27 resets = <&clkc CLKC_RESET_CPU0_SOFT_RESET>;
Martin Blumenstingl622b9822018-11-30 00:00:43 +010028 operating-points-v2 = <&cpu_opp_table>;
29 clocks = <&clkc CLKID_CPUCLK>;
Beniamino Galvaniaeff05a2014-10-05 23:59:14 +020030 };
31
Martin Blumenstingl17b66022018-04-22 12:45:01 +020032 cpu1: cpu@201 {
Beniamino Galvaniaeff05a2014-10-05 23:59:14 +020033 device_type = "cpu";
34 compatible = "arm,cortex-a9";
Beniamino Galvani550ab392014-11-18 15:30:35 +010035 next-level-cache = <&L2>;
Beniamino Galvaniaeff05a2014-10-05 23:59:14 +020036 reg = <0x201>;
Martin Blumenstingl4a5a2712017-09-17 18:45:22 +020037 enable-method = "amlogic,meson8-smp";
38 resets = <&clkc CLKC_RESET_CPU1_SOFT_RESET>;
Martin Blumenstingl622b9822018-11-30 00:00:43 +010039 operating-points-v2 = <&cpu_opp_table>;
40 clocks = <&clkc CLKID_CPUCLK>;
Beniamino Galvaniaeff05a2014-10-05 23:59:14 +020041 };
42
Martin Blumenstingl17b66022018-04-22 12:45:01 +020043 cpu2: cpu@202 {
Beniamino Galvaniaeff05a2014-10-05 23:59:14 +020044 device_type = "cpu";
45 compatible = "arm,cortex-a9";
Beniamino Galvani550ab392014-11-18 15:30:35 +010046 next-level-cache = <&L2>;
Beniamino Galvaniaeff05a2014-10-05 23:59:14 +020047 reg = <0x202>;
Martin Blumenstingl4a5a2712017-09-17 18:45:22 +020048 enable-method = "amlogic,meson8-smp";
49 resets = <&clkc CLKC_RESET_CPU2_SOFT_RESET>;
Martin Blumenstingl622b9822018-11-30 00:00:43 +010050 operating-points-v2 = <&cpu_opp_table>;
51 clocks = <&clkc CLKID_CPUCLK>;
Beniamino Galvaniaeff05a2014-10-05 23:59:14 +020052 };
53
Martin Blumenstingl17b66022018-04-22 12:45:01 +020054 cpu3: cpu@203 {
Beniamino Galvaniaeff05a2014-10-05 23:59:14 +020055 device_type = "cpu";
56 compatible = "arm,cortex-a9";
Beniamino Galvani550ab392014-11-18 15:30:35 +010057 next-level-cache = <&L2>;
Beniamino Galvaniaeff05a2014-10-05 23:59:14 +020058 reg = <0x203>;
Martin Blumenstingl4a5a2712017-09-17 18:45:22 +020059 enable-method = "amlogic,meson8-smp";
60 resets = <&clkc CLKC_RESET_CPU3_SOFT_RESET>;
Martin Blumenstingl622b9822018-11-30 00:00:43 +010061 operating-points-v2 = <&cpu_opp_table>;
62 clocks = <&clkc CLKID_CPUCLK>;
63 };
64 };
65
66 cpu_opp_table: opp-table {
67 compatible = "operating-points-v2";
68 opp-shared;
69
70 opp-96000000 {
71 opp-hz = /bits/ 64 <96000000>;
72 opp-microvolt = <825000>;
73 };
74 opp-192000000 {
75 opp-hz = /bits/ 64 <192000000>;
76 opp-microvolt = <825000>;
77 };
78 opp-312000000 {
79 opp-hz = /bits/ 64 <312000000>;
80 opp-microvolt = <825000>;
81 };
82 opp-408000000 {
83 opp-hz = /bits/ 64 <408000000>;
84 opp-microvolt = <825000>;
85 };
86 opp-504000000 {
87 opp-hz = /bits/ 64 <504000000>;
88 opp-microvolt = <825000>;
89 };
90 opp-600000000 {
91 opp-hz = /bits/ 64 <600000000>;
92 opp-microvolt = <850000>;
93 };
94 opp-720000000 {
95 opp-hz = /bits/ 64 <720000000>;
96 opp-microvolt = <850000>;
97 };
98 opp-816000000 {
99 opp-hz = /bits/ 64 <816000000>;
100 opp-microvolt = <875000>;
101 };
102 opp-1008000000 {
103 opp-hz = /bits/ 64 <1008000000>;
104 opp-microvolt = <925000>;
105 };
106 opp-1200000000 {
107 opp-hz = /bits/ 64 <1200000000>;
108 opp-microvolt = <975000>;
109 };
110 opp-1416000000 {
111 opp-hz = /bits/ 64 <1416000000>;
112 opp-microvolt = <1025000>;
113 };
114 opp-1608000000 {
115 opp-hz = /bits/ 64 <1608000000>;
116 opp-microvolt = <1100000>;
117 };
118 opp-1800000000 {
119 status = "disabled";
120 opp-hz = /bits/ 64 <1800000000>;
121 opp-microvolt = <1125000>;
122 };
123 opp-1992000000 {
124 status = "disabled";
125 opp-hz = /bits/ 64 <1992000000>;
126 opp-microvolt = <1150000>;
Beniamino Galvaniaeff05a2014-10-05 23:59:14 +0200127 };
128 };
Martin Blumenstingl8a7f0c52017-06-15 23:33:48 +0200129
Martin Blumenstingl7d3f6b52018-12-08 18:12:46 +0100130 gpu_opp_table: gpu-opp-table {
131 compatible = "operating-points-v2";
132
133 opp-182150000 {
134 opp-hz = /bits/ 64 <182150000>;
135 opp-microvolt = <1150000>;
136 };
137 opp-318750000 {
138 opp-hz = /bits/ 64 <318750000>;
139 opp-microvolt = <1150000>;
140 };
141 opp-425000000 {
142 opp-hz = /bits/ 64 <425000000>;
143 opp-microvolt = <1150000>;
144 };
145 opp-510000000 {
146 opp-hz = /bits/ 64 <510000000>;
147 opp-microvolt = <1150000>;
148 };
149 opp-637500000 {
150 opp-hz = /bits/ 64 <637500000>;
151 opp-microvolt = <1150000>;
152 turbo-mode;
153 };
154 };
155
Martin Blumenstingl17b66022018-04-22 12:45:01 +0200156 pmu {
157 compatible = "arm,cortex-a9-pmu";
158 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
159 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
160 <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
161 <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
162 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
163 };
164
Martin Blumenstingl8a7f0c52017-06-15 23:33:48 +0200165 reserved-memory {
166 #address-cells = <1>;
167 #size-cells = <1>;
168 ranges;
169
170 /* 2 MiB reserved for Hardware ROM Firmware? */
171 hwrom@0 {
172 reg = <0x0 0x200000>;
173 no-map;
174 };
175
176 /*
177 * 1 MiB reserved for the "ARM Power Firmware": this is ARM
178 * code which is responsible for system suspend. It loads a
179 * piece of ARC code ("arc_power" in the vendor u-boot tree)
180 * into SRAM, executes that and shuts down the (last) ARM core.
181 * The arc_power firmware then checks various wakeup sources
182 * (IR remote receiver, HDMI CEC, WIFI and Bluetooth wakeup or
183 * simply the power key) and re-starts the ARM core once it
184 * detects a wakeup request.
185 */
186 power-firmware@4f00000 {
187 reg = <0x4f00000 0x100000>;
188 no-map;
189 };
190 };
Martin Blumenstingl7e22d722018-12-08 17:50:24 +0100191
Martin Blumenstingl47b58182019-05-20 21:43:51 +0200192 mmcbus: bus@c8000000 {
193 compatible = "simple-bus";
194 reg = <0xc8000000 0x8000>;
195 #address-cells = <1>;
196 #size-cells = <1>;
197 ranges = <0x0 0xc8000000 0x8000>;
198
Martin Blumenstinglc4ac5c32019-12-08 19:05:24 +0100199 ddr_clkc: clock-controller@400 {
200 compatible = "amlogic,meson8-ddr-clkc";
201 reg = <0x400 0x20>;
202 clocks = <&xtal>;
203 clock-names = "xtal";
204 #clock-cells = <1>;
205 };
206
Martin Blumenstingl47b58182019-05-20 21:43:51 +0200207 dmcbus: bus@6000 {
208 compatible = "simple-bus";
209 reg = <0x6000 0x400>;
210 #address-cells = <1>;
211 #size-cells = <1>;
212 ranges = <0x0 0x6000 0x400>;
213
214 canvas: video-lut@20 {
215 compatible = "amlogic,meson8-canvas",
216 "amlogic,canvas";
217 reg = <0x20 0x14>;
218 };
219 };
220 };
221
Martin Blumenstingl7e22d722018-12-08 17:50:24 +0100222 apb: bus@d0000000 {
223 compatible = "simple-bus";
224 reg = <0xd0000000 0x200000>;
225 #address-cells = <1>;
226 #size-cells = <1>;
227 ranges = <0x0 0xd0000000 0x200000>;
Martin Blumenstingl7d3f6b52018-12-08 18:12:46 +0100228
229 mali: gpu@c0000 {
230 compatible = "amlogic,meson8-mali", "arm,mali-450";
231 reg = <0xc0000 0x40000>;
232 interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
233 <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
234 <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
235 <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
236 <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
237 <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
238 <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
239 <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
240 <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
241 <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
Martin Blumenstingl01dfdd72019-04-20 11:32:57 +0200242 <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
243 <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>,
Martin Blumenstingl7d3f6b52018-12-08 18:12:46 +0100244 <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>,
245 <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>,
246 <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>,
247 <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>,
248 <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>,
249 <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
250 interrupt-names = "gp", "gpmmu", "pp", "pmu",
251 "pp0", "ppmmu0", "pp1", "ppmmu1",
252 "pp2", "ppmmu2", "pp4", "ppmmu4",
253 "pp5", "ppmmu5", "pp6", "ppmmu6";
254 resets = <&reset RESET_MALI>;
255 clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>;
256 clock-names = "bus", "core";
257 operating-points-v2 = <&gpu_opp_table>;
Martin Blumenstingl7d3f6b52018-12-08 18:12:46 +0100258 };
Martin Blumenstingl7e22d722018-12-08 17:50:24 +0100259 };
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200260}; /* end of / */
261
262&aobus {
Martin Blumenstingl4a5a2712017-09-17 18:45:22 +0200263 pmu: pmu@e0 {
264 compatible = "amlogic,meson8-pmu", "syscon";
265 reg = <0xe0 0x8>;
266 };
267
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200268 pinctrl_aobus: pinctrl@84 {
269 compatible = "amlogic,meson8-aobus-pinctrl";
270 reg = <0x84 0xc>;
Beniamino Galvanid9fea882015-01-17 19:15:16 +0100271 #address-cells = <1>;
272 #size-cells = <1>;
273 ranges;
274
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200275 gpio_ao: ao-bank@14 {
276 reg = <0x14 0x4>,
277 <0x2c 0x4>,
278 <0x24 0x8>;
279 reg-names = "mux", "pull", "gpio";
280 gpio-controller;
281 #gpio-cells = <2>;
Jerome Brunet677c4322017-09-21 19:14:44 +0200282 gpio-ranges = <&pinctrl_aobus 0 0 16>;
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200283 };
284
285 uart_ao_a_pins: uart_ao_a {
286 mux {
287 groups = "uart_tx_ao_a", "uart_rx_ao_a";
288 function = "uart_ao";
Jerome Brunet7e263352018-11-09 15:04:45 +0100289 bias-disable;
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200290 };
291 };
292
293 i2c_ao_pins: i2c_mst_ao {
294 mux {
295 groups = "i2c_mst_sck_ao", "i2c_mst_sda_ao";
296 function = "i2c_mst_ao";
Jerome Brunet7e263352018-11-09 15:04:45 +0100297 bias-disable;
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200298 };
299 };
Martin Blumenstingl79eb80b2017-06-10 00:20:39 +0200300
301 ir_recv_pins: remote {
302 mux {
303 groups = "remote_input";
304 function = "remote";
Jerome Brunet7e263352018-11-09 15:04:45 +0100305 bias-disable;
Martin Blumenstingl79eb80b2017-06-10 00:20:39 +0200306 };
307 };
Martin Blumenstingl192ec772017-06-15 23:33:45 +0200308
309 pwm_f_ao_pins: pwm-f-ao {
310 mux {
311 groups = "pwm_f_ao";
312 function = "pwm_f_ao";
Jerome Brunet7e263352018-11-09 15:04:45 +0100313 bias-disable;
Martin Blumenstingl192ec772017-06-15 23:33:45 +0200314 };
315 };
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200316 };
317};
318
319&cbus {
Martin Blumenstingle30871872018-01-21 23:14:13 +0100320 reset: reset-controller@4404 {
321 compatible = "amlogic,meson8b-reset";
322 reg = <0x4404 0x9c>;
323 #reset-cells = <1>;
324 };
325
Martin Blumenstinglbd835d52017-09-23 16:14:03 +0200326 analog_top: analog-top@81a8 {
327 compatible = "amlogic,meson8-analog-top", "syscon";
328 reg = <0x81a8 0x14>;
329 };
330
Martin Blumenstingl43d91c52017-07-12 00:20:15 +0200331 pwm_ef: pwm@86c0 {
332 compatible = "amlogic,meson8-pwm", "amlogic,meson8b-pwm";
333 reg = <0x86c0 0x10>;
334 #pwm-cells = <3>;
335 status = "disabled";
336 };
337
Martin Blumenstinglb6eac0d2019-02-09 01:26:40 +0100338 clock-measure@8758 {
339 compatible = "amlogic,meson8-clk-measure";
340 reg = <0x8758 0x1c>;
341 };
342
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200343 pinctrl_cbus: pinctrl@9880 {
344 compatible = "amlogic,meson8-cbus-pinctrl";
345 reg = <0x9880 0x10>;
346 #address-cells = <1>;
347 #size-cells = <1>;
348 ranges;
349
350 gpio: banks@80b0 {
351 reg = <0x80b0 0x28>,
352 <0x80e8 0x18>,
353 <0x8120 0x18>,
354 <0x8030 0x30>;
Beniamino Galvanid9fea882015-01-17 19:15:16 +0100355 reg-names = "mux", "pull", "pull-enable", "gpio";
356 gpio-controller;
357 #gpio-cells = <2>;
Neil Armstrong90f349a2017-03-23 17:27:26 +0100358 gpio-ranges = <&pinctrl_cbus 0 0 120>;
Beniamino Galvanid9fea882015-01-17 19:15:16 +0100359 };
360
Martin Blumenstingld42ce5a2017-06-15 23:33:46 +0200361 sd_a_pins: sd-a {
362 mux {
363 groups = "sd_d0_a", "sd_d1_a", "sd_d2_a",
364 "sd_d3_a", "sd_clk_a", "sd_cmd_a";
365 function = "sd_a";
Jerome Brunet7e263352018-11-09 15:04:45 +0100366 bias-disable;
Martin Blumenstingld42ce5a2017-06-15 23:33:46 +0200367 };
368 };
369
370 sd_b_pins: sd-b {
371 mux {
372 groups = "sd_d0_b", "sd_d1_b", "sd_d2_b",
373 "sd_d3_b", "sd_clk_b", "sd_cmd_b";
374 function = "sd_b";
Jerome Brunet7e263352018-11-09 15:04:45 +0100375 bias-disable;
Martin Blumenstingld42ce5a2017-06-15 23:33:46 +0200376 };
377 };
378
379 sd_c_pins: sd-c {
380 mux {
381 groups = "sd_d0_c", "sd_d1_c", "sd_d2_c",
382 "sd_d3_c", "sd_clk_c", "sd_cmd_c";
383 function = "sd_c";
Jerome Brunet7e263352018-11-09 15:04:45 +0100384 bias-disable;
Martin Blumenstingld42ce5a2017-06-15 23:33:46 +0200385 };
386 };
387
Beniamino Galvanid9fea882015-01-17 19:15:16 +0100388 spi_nor_pins: nor {
389 mux {
390 groups = "nor_d", "nor_q", "nor_c", "nor_cs";
391 function = "nor";
Jerome Brunet7e263352018-11-09 15:04:45 +0100392 bias-disable;
Beniamino Galvanid9fea882015-01-17 19:15:16 +0100393 };
394 };
395
Beniamino Galvanid9fea882015-01-17 19:15:16 +0100396 eth_pins: ethernet {
397 mux {
398 groups = "eth_tx_clk_50m", "eth_tx_en",
399 "eth_txd1", "eth_txd0",
400 "eth_rx_clk_in", "eth_rx_dv",
401 "eth_rxd1", "eth_rxd0", "eth_mdio",
402 "eth_mdc";
403 function = "ethernet";
Jerome Brunet7e263352018-11-09 15:04:45 +0100404 bias-disable;
Beniamino Galvanid9fea882015-01-17 19:15:16 +0100405 };
406 };
Martin Blumenstingl192ec772017-06-15 23:33:45 +0200407
408 pwm_e_pins: pwm-e {
409 mux {
410 groups = "pwm_e";
411 function = "pwm_e";
Jerome Brunet7e263352018-11-09 15:04:45 +0100412 bias-disable;
Martin Blumenstingl192ec772017-06-15 23:33:45 +0200413 };
414 };
Martin Blumenstingle981e452018-05-10 01:50:36 +0200415
416 uart_a1_pins: uart-a1 {
417 mux {
418 groups = "uart_tx_a1",
419 "uart_rx_a1";
420 function = "uart_a";
Jerome Brunet7e263352018-11-09 15:04:45 +0100421 bias-disable;
Martin Blumenstingle981e452018-05-10 01:50:36 +0200422 };
423 };
424
425 uart_a1_cts_rts_pins: uart-a1-cts-rts {
426 mux {
427 groups = "uart_cts_a1",
428 "uart_rts_a1";
429 function = "uart_a";
Jerome Brunet7e263352018-11-09 15:04:45 +0100430 bias-disable;
Martin Blumenstingle981e452018-05-10 01:50:36 +0200431 };
432 };
Beniamino Galvanid9fea882015-01-17 19:15:16 +0100433 };
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200434};
Beniamino Galvanid9fea882015-01-17 19:15:16 +0100435
Martin Blumenstingl4a5a2712017-09-17 18:45:22 +0200436&ahb_sram {
437 smp-sram@1ff80 {
438 compatible = "amlogic,meson8-smp-sram";
439 reg = <0x1ff80 0x8>;
440 };
441};
442
Martin Blumenstingl2cb51a82017-10-03 01:28:04 +0200443&efuse {
444 compatible = "amlogic,meson8-efuse";
445 clocks = <&clkc CLKID_EFUSE>;
446 clock-names = "core";
Martin Blumenstinglf4c6e8e2019-01-18 23:52:23 +0100447
448 temperature_calib: calib@1f4 {
449 /* only the upper two bytes are relevant */
450 reg = <0x1f4 0x4>;
451 };
Martin Blumenstingl2cb51a82017-10-03 01:28:04 +0200452};
453
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200454&ethmac {
Martin Blumenstinglf28d4bd2017-06-15 23:33:52 +0200455 clocks = <&clkc CLKID_ETH>;
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200456 clock-names = "stmmaceth";
457};
Carlo Caioneb60e1152016-03-23 10:13:59 +0100458
Martin Blumenstingl59e45c62017-10-30 00:05:22 +0100459&gpio_intc {
460 compatible = "amlogic,meson8-gpio-intc", "amlogic,meson-gpio-intc";
461 status = "okay";
462};
463
Martin Blumenstinglb6db3932019-01-18 23:52:21 +0100464&hhi {
465 clkc: clock-controller {
466 compatible = "amlogic,meson8-clkc";
Martin Blumenstinglc4ac5c32019-12-08 19:05:24 +0100467 clocks = <&xtal>, <&ddr_clkc DDR_CLKID_DDR_PLL>;
468 clock-names = "xtal", "ddr_pll";
Martin Blumenstinglb6db3932019-01-18 23:52:21 +0100469 #clock-cells = <1>;
470 #reset-cells = <1>;
471 };
472};
473
Martin Blumenstingla35910d2017-06-15 23:33:49 +0200474&hwrng {
475 compatible = "amlogic,meson8-rng", "amlogic,meson-rng";
476 clocks = <&clkc CLKID_RNG0>;
477 clock-names = "core";
478};
479
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200480&i2c_AO {
Martin Blumenstingl2c323c42017-06-04 20:33:41 +0200481 clocks = <&clkc CLKID_CLK81>;
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200482};
Carlo Caioneb60e1152016-03-23 10:13:59 +0100483
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200484&i2c_A {
Martin Blumenstingl2c323c42017-06-04 20:33:41 +0200485 clocks = <&clkc CLKID_CLK81>;
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200486};
Carlo Caioneb60e1152016-03-23 10:13:59 +0100487
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200488&i2c_B {
Martin Blumenstingl2c323c42017-06-04 20:33:41 +0200489 clocks = <&clkc CLKID_CLK81>;
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200490};
491
Carlo Caionebbe5b232017-04-17 23:42:44 +0200492&L2 {
493 arm,data-latency = <3 3 3>;
494 arm,tag-latency = <2 2 2>;
495 arm,filter-ranges = <0x100000 0xc0000000>;
Martin Blumenstingl6844e962017-10-31 23:23:16 +0100496 prefetch-data = <1>;
497 prefetch-instr = <1>;
498 arm,shared-override;
Carlo Caionebbe5b232017-04-17 23:42:44 +0200499};
500
Martin Blumenstingle8c276d2018-11-23 20:53:07 +0100501&periph {
502 scu@0 {
503 compatible = "arm,cortex-a9-scu";
504 reg = <0x0 0x100>;
505 };
Martin Blumenstingl1124d792018-11-23 20:53:08 +0100506
Martin Blumenstingl2710e8d2018-11-23 20:53:09 +0100507 timer@200 {
508 compatible = "arm,cortex-a9-global-timer";
509 reg = <0x200 0x20>;
510 interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
511 clocks = <&clkc CLKID_PERIPH>;
512
513 /*
514 * the arm_global_timer driver currently does not handle clock
515 * rate changes. Keep it disabled for now.
516 */
517 status = "disabled";
518 };
519
Martin Blumenstingl1124d792018-11-23 20:53:08 +0100520 timer@600 {
521 compatible = "arm,cortex-a9-twd-timer";
522 reg = <0x600 0x20>;
523 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
524 clocks = <&clkc CLKID_PERIPH>;
525 };
Martin Blumenstingle8c276d2018-11-23 20:53:07 +0100526};
527
Martin Blumenstingl43d91c52017-07-12 00:20:15 +0200528&pwm_ab {
529 compatible = "amlogic,meson8-pwm", "amlogic,meson8b-pwm";
530};
531
532&pwm_cd {
533 compatible = "amlogic,meson8-pwm", "amlogic,meson8b-pwm";
534};
535
Martin Blumenstinglf6eb9732019-04-13 18:34:21 +0200536&rtc {
537 compatible = "amlogic,meson8-rtc";
538 resets = <&reset RESET_RTC>;
539};
540
Martin Blumenstingla39a3b92017-06-15 23:33:47 +0200541&saradc {
542 compatible = "amlogic,meson8-saradc", "amlogic,meson-saradc";
Martin Blumenstingl630ea312019-12-08 19:05:23 +0100543 clocks = <&xtal>, <&clkc CLKID_SAR_ADC>;
Xingyu Chenb9b9db02017-11-16 17:01:15 +0800544 clock-names = "clkin", "core";
Martin Blumenstinglf4c6e8e2019-01-18 23:52:23 +0100545 amlogic,hhi-sysctrl = <&hhi>;
546 nvmem-cells = <&temperature_calib>;
547 nvmem-cell-names = "temperature_calib";
Martin Blumenstingla39a3b92017-06-15 23:33:47 +0200548};
549
Martin Blumenstingl88b1b182017-10-07 18:29:39 +0200550&sdio {
551 compatible = "amlogic,meson8-sdio", "amlogic,meson-mx-sdio";
552 clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>;
553 clock-names = "core", "clkin";
554};
555
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200556&spifc {
Martin Blumenstingl2c323c42017-06-04 20:33:41 +0200557 clocks = <&clkc CLKID_CLK81>;
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200558};
559
Martin Blumenstingl7b141ab2018-11-16 21:42:35 +0100560&timer_abcde {
Martin Blumenstingl630ea312019-12-08 19:05:23 +0100561 clocks = <&xtal>, <&clkc CLKID_CLK81>;
Martin Blumenstingl7b141ab2018-11-16 21:42:35 +0100562 clock-names = "xtal", "pclk";
563};
564
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200565&uart_AO {
Martin Blumenstingl6ca77502017-11-17 23:58:56 +0100566 compatible = "amlogic,meson8-uart", "amlogic,meson-uart";
Martin Blumenstingl630ea312019-12-08 19:05:23 +0100567 clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_CLK81>;
Martin Blumenstingl6ca77502017-11-17 23:58:56 +0100568 clock-names = "baud", "xtal", "pclk";
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200569};
570
571&uart_A {
Martin Blumenstingl6ca77502017-11-17 23:58:56 +0100572 compatible = "amlogic,meson8-uart", "amlogic,meson-uart";
Martin Blumenstingl630ea312019-12-08 19:05:23 +0100573 clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART0>;
Martin Blumenstingl6ca77502017-11-17 23:58:56 +0100574 clock-names = "baud", "xtal", "pclk";
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200575};
576
577&uart_B {
Martin Blumenstingl6ca77502017-11-17 23:58:56 +0100578 compatible = "amlogic,meson8-uart", "amlogic,meson-uart";
Martin Blumenstingl630ea312019-12-08 19:05:23 +0100579 clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART1>;
Martin Blumenstingl6ca77502017-11-17 23:58:56 +0100580 clock-names = "baud", "xtal", "pclk";
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200581};
582
583&uart_C {
Martin Blumenstingl6ca77502017-11-17 23:58:56 +0100584 compatible = "amlogic,meson8-uart", "amlogic,meson-uart";
Martin Blumenstingl630ea312019-12-08 19:05:23 +0100585 clocks = <&clkc CLKID_CLK81>, <&xtal>, <&clkc CLKID_UART2>;
Martin Blumenstingl6ca77502017-11-17 23:58:56 +0100586 clock-names = "baud", "xtal", "pclk";
Martin Blumenstingl200a5752017-04-17 23:39:37 +0200587};
Martin Blumenstingle29b1cf2017-06-15 23:33:50 +0200588
589&usb0 {
590 compatible = "amlogic,meson8-usb", "snps,dwc2";
591 clocks = <&clkc CLKID_USB0_DDR_BRIDGE>;
592 clock-names = "otg";
593};
594
595&usb1 {
596 compatible = "amlogic,meson8-usb", "snps,dwc2";
597 clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
598 clock-names = "otg";
599};
600
601&usb0_phy {
602 compatible = "amlogic,meson8-usb2-phy", "amlogic,meson-mx-usb2-phy";
603 clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB0>;
604 clock-names = "usb_general", "usb";
Martin Blumenstingle1fa57d2018-01-21 23:14:14 +0100605 resets = <&reset RESET_USB_OTG>;
Martin Blumenstingle29b1cf2017-06-15 23:33:50 +0200606};
607
608&usb1_phy {
609 compatible = "amlogic,meson8-usb2-phy", "amlogic,meson-mx-usb2-phy";
610 clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>;
611 clock-names = "usb_general", "usb";
Martin Blumenstingle1fa57d2018-01-21 23:14:14 +0100612 resets = <&reset RESET_USB_OTG>;
Martin Blumenstingle29b1cf2017-06-15 23:33:50 +0200613};