xref: /linux/arch/arm/boot/dts/amlogic/meson8.dtsi (revision ab93e0dd72c37d378dd936f031ffb83ff2bd87ce)
141e359edSNeil Armstrong// SPDX-License-Identifier: GPL-2.0 OR MIT
2aeff05a3SBeniamino Galvani/*
3aeff05a3SBeniamino Galvani * Copyright 2014 Carlo Caione <carlo@caione.org>
4aeff05a3SBeniamino Galvani */
5aeff05a3SBeniamino Galvani
6c4ac5c37SMartin Blumenstingl#include <dt-bindings/clock/meson8-ddr-clkc.h>
72c323c43SMartin Blumenstingl#include <dt-bindings/clock/meson8b-clkc.h>
8d9fea88cSBeniamino Galvani#include <dt-bindings/gpio/meson8-gpio.h>
9aecc72b1SMartin Blumenstingl#include <dt-bindings/power/meson8-power.h>
104a5a2711SMartin Blumenstingl#include <dt-bindings/reset/amlogic,meson8b-clkc-reset.h>
11e3087187SMartin Blumenstingl#include <dt-bindings/reset/amlogic,meson8b-reset.h>
12ecdb744bSMartin Blumenstingl#include <dt-bindings/thermal/thermal.h>
137a16f06bSMartin Blumenstingl#include "meson.dtsi"
14aeff05a3SBeniamino Galvani
15aeff05a3SBeniamino Galvani/ {
16aeff05a3SBeniamino Galvani	model = "Amlogic Meson8 SoC";
17aeff05a3SBeniamino Galvani	compatible = "amlogic,meson8";
18aeff05a3SBeniamino Galvani
19aeff05a3SBeniamino Galvani	cpus {
20aeff05a3SBeniamino Galvani		#address-cells = <1>;
21aeff05a3SBeniamino Galvani		#size-cells = <0>;
22aeff05a3SBeniamino Galvani
2317b66027SMartin Blumenstingl		cpu0: cpu@200 {
24aeff05a3SBeniamino Galvani			device_type = "cpu";
25aeff05a3SBeniamino Galvani			compatible = "arm,cortex-a9";
26550ab390SBeniamino Galvani			next-level-cache = <&L2>;
27aeff05a3SBeniamino Galvani			reg = <0x200>;
284a5a2711SMartin Blumenstingl			enable-method = "amlogic,meson8-smp";
294a5a2711SMartin Blumenstingl			resets = <&clkc CLKC_RESET_CPU0_SOFT_RESET>;
30622b9827SMartin Blumenstingl			operating-points-v2 = <&cpu_opp_table>;
31622b9827SMartin Blumenstingl			clocks = <&clkc CLKID_CPUCLK>;
32ecdb744bSMartin Blumenstingl			#cooling-cells = <2>; /* min followed by max */
33aeff05a3SBeniamino Galvani		};
34aeff05a3SBeniamino Galvani
3517b66027SMartin Blumenstingl		cpu1: cpu@201 {
36aeff05a3SBeniamino Galvani			device_type = "cpu";
37aeff05a3SBeniamino Galvani			compatible = "arm,cortex-a9";
38550ab390SBeniamino Galvani			next-level-cache = <&L2>;
39aeff05a3SBeniamino Galvani			reg = <0x201>;
404a5a2711SMartin Blumenstingl			enable-method = "amlogic,meson8-smp";
414a5a2711SMartin Blumenstingl			resets = <&clkc CLKC_RESET_CPU1_SOFT_RESET>;
42622b9827SMartin Blumenstingl			operating-points-v2 = <&cpu_opp_table>;
43622b9827SMartin Blumenstingl			clocks = <&clkc CLKID_CPUCLK>;
44ecdb744bSMartin Blumenstingl			#cooling-cells = <2>; /* min followed by max */
45aeff05a3SBeniamino Galvani		};
46aeff05a3SBeniamino Galvani
4717b66027SMartin Blumenstingl		cpu2: cpu@202 {
48aeff05a3SBeniamino Galvani			device_type = "cpu";
49aeff05a3SBeniamino Galvani			compatible = "arm,cortex-a9";
50550ab390SBeniamino Galvani			next-level-cache = <&L2>;
51aeff05a3SBeniamino Galvani			reg = <0x202>;
524a5a2711SMartin Blumenstingl			enable-method = "amlogic,meson8-smp";
534a5a2711SMartin Blumenstingl			resets = <&clkc CLKC_RESET_CPU2_SOFT_RESET>;
54622b9827SMartin Blumenstingl			operating-points-v2 = <&cpu_opp_table>;
55622b9827SMartin Blumenstingl			clocks = <&clkc CLKID_CPUCLK>;
56ecdb744bSMartin Blumenstingl			#cooling-cells = <2>; /* min followed by max */
57aeff05a3SBeniamino Galvani		};
58aeff05a3SBeniamino Galvani
5917b66027SMartin Blumenstingl		cpu3: cpu@203 {
60aeff05a3SBeniamino Galvani			device_type = "cpu";
61aeff05a3SBeniamino Galvani			compatible = "arm,cortex-a9";
62550ab390SBeniamino Galvani			next-level-cache = <&L2>;
63aeff05a3SBeniamino Galvani			reg = <0x203>;
644a5a2711SMartin Blumenstingl			enable-method = "amlogic,meson8-smp";
654a5a2711SMartin Blumenstingl			resets = <&clkc CLKC_RESET_CPU3_SOFT_RESET>;
66622b9827SMartin Blumenstingl			operating-points-v2 = <&cpu_opp_table>;
67622b9827SMartin Blumenstingl			clocks = <&clkc CLKID_CPUCLK>;
68ecdb744bSMartin Blumenstingl			#cooling-cells = <2>; /* min followed by max */
69622b9827SMartin Blumenstingl		};
70622b9827SMartin Blumenstingl	};
71622b9827SMartin Blumenstingl
72622b9827SMartin Blumenstingl	cpu_opp_table: opp-table {
73622b9827SMartin Blumenstingl		compatible = "operating-points-v2";
74622b9827SMartin Blumenstingl		opp-shared;
75622b9827SMartin Blumenstingl
76622b9827SMartin Blumenstingl		opp-96000000 {
77622b9827SMartin Blumenstingl			opp-hz = /bits/ 64 <96000000>;
78622b9827SMartin Blumenstingl			opp-microvolt = <825000>;
79622b9827SMartin Blumenstingl		};
80622b9827SMartin Blumenstingl		opp-192000000 {
81622b9827SMartin Blumenstingl			opp-hz = /bits/ 64 <192000000>;
82622b9827SMartin Blumenstingl			opp-microvolt = <825000>;
83622b9827SMartin Blumenstingl		};
84622b9827SMartin Blumenstingl		opp-312000000 {
85622b9827SMartin Blumenstingl			opp-hz = /bits/ 64 <312000000>;
86622b9827SMartin Blumenstingl			opp-microvolt = <825000>;
87622b9827SMartin Blumenstingl		};
88622b9827SMartin Blumenstingl		opp-408000000 {
89622b9827SMartin Blumenstingl			opp-hz = /bits/ 64 <408000000>;
90622b9827SMartin Blumenstingl			opp-microvolt = <825000>;
91622b9827SMartin Blumenstingl		};
92622b9827SMartin Blumenstingl		opp-504000000 {
93622b9827SMartin Blumenstingl			opp-hz = /bits/ 64 <504000000>;
94622b9827SMartin Blumenstingl			opp-microvolt = <825000>;
95622b9827SMartin Blumenstingl		};
96622b9827SMartin Blumenstingl		opp-600000000 {
97622b9827SMartin Blumenstingl			opp-hz = /bits/ 64 <600000000>;
98622b9827SMartin Blumenstingl			opp-microvolt = <850000>;
99622b9827SMartin Blumenstingl		};
100622b9827SMartin Blumenstingl		opp-720000000 {
101622b9827SMartin Blumenstingl			opp-hz = /bits/ 64 <720000000>;
102622b9827SMartin Blumenstingl			opp-microvolt = <850000>;
103622b9827SMartin Blumenstingl		};
104622b9827SMartin Blumenstingl		opp-816000000 {
105622b9827SMartin Blumenstingl			opp-hz = /bits/ 64 <816000000>;
106622b9827SMartin Blumenstingl			opp-microvolt = <875000>;
107622b9827SMartin Blumenstingl		};
108622b9827SMartin Blumenstingl		opp-1008000000 {
109622b9827SMartin Blumenstingl			opp-hz = /bits/ 64 <1008000000>;
110622b9827SMartin Blumenstingl			opp-microvolt = <925000>;
111622b9827SMartin Blumenstingl		};
112622b9827SMartin Blumenstingl		opp-1200000000 {
113622b9827SMartin Blumenstingl			opp-hz = /bits/ 64 <1200000000>;
114622b9827SMartin Blumenstingl			opp-microvolt = <975000>;
115622b9827SMartin Blumenstingl		};
116622b9827SMartin Blumenstingl		opp-1416000000 {
117622b9827SMartin Blumenstingl			opp-hz = /bits/ 64 <1416000000>;
118622b9827SMartin Blumenstingl			opp-microvolt = <1025000>;
119622b9827SMartin Blumenstingl		};
120622b9827SMartin Blumenstingl		opp-1608000000 {
121622b9827SMartin Blumenstingl			opp-hz = /bits/ 64 <1608000000>;
122622b9827SMartin Blumenstingl			opp-microvolt = <1100000>;
123622b9827SMartin Blumenstingl		};
124622b9827SMartin Blumenstingl		opp-1800000000 {
125622b9827SMartin Blumenstingl			status = "disabled";
126622b9827SMartin Blumenstingl			opp-hz = /bits/ 64 <1800000000>;
127622b9827SMartin Blumenstingl			opp-microvolt = <1125000>;
128622b9827SMartin Blumenstingl		};
129622b9827SMartin Blumenstingl		opp-1992000000 {
130622b9827SMartin Blumenstingl			status = "disabled";
131622b9827SMartin Blumenstingl			opp-hz = /bits/ 64 <1992000000>;
132622b9827SMartin Blumenstingl			opp-microvolt = <1150000>;
133aeff05a3SBeniamino Galvani		};
134aeff05a3SBeniamino Galvani	};
1358a7f0c52SMartin Blumenstingl
1365f441684SKrzysztof Kozlowski	gpu_opp_table: opp-table-gpu {
1377d3f6b53SMartin Blumenstingl		compatible = "operating-points-v2";
1387d3f6b53SMartin Blumenstingl
139fe634a7aSMartin Blumenstingl		opp-182142857 {
140fe634a7aSMartin Blumenstingl			opp-hz = /bits/ 64 <182142857>;
1417d3f6b53SMartin Blumenstingl			opp-microvolt = <1150000>;
1427d3f6b53SMartin Blumenstingl		};
1437d3f6b53SMartin Blumenstingl		opp-318750000 {
1447d3f6b53SMartin Blumenstingl			opp-hz = /bits/ 64 <318750000>;
1457d3f6b53SMartin Blumenstingl			opp-microvolt = <1150000>;
1467d3f6b53SMartin Blumenstingl		};
1477d3f6b53SMartin Blumenstingl		opp-425000000 {
1487d3f6b53SMartin Blumenstingl			opp-hz = /bits/ 64 <425000000>;
1497d3f6b53SMartin Blumenstingl			opp-microvolt = <1150000>;
1507d3f6b53SMartin Blumenstingl		};
1517d3f6b53SMartin Blumenstingl		opp-510000000 {
1527d3f6b53SMartin Blumenstingl			opp-hz = /bits/ 64 <510000000>;
1537d3f6b53SMartin Blumenstingl			opp-microvolt = <1150000>;
1547d3f6b53SMartin Blumenstingl		};
1557d3f6b53SMartin Blumenstingl		opp-637500000 {
1567d3f6b53SMartin Blumenstingl			opp-hz = /bits/ 64 <637500000>;
1577d3f6b53SMartin Blumenstingl			opp-microvolt = <1150000>;
1587d3f6b53SMartin Blumenstingl			turbo-mode;
1597d3f6b53SMartin Blumenstingl		};
1607d3f6b53SMartin Blumenstingl	};
1617d3f6b53SMartin Blumenstingl
16217b66027SMartin Blumenstingl	pmu {
16317b66027SMartin Blumenstingl		compatible = "arm,cortex-a9-pmu";
16417b66027SMartin Blumenstingl		interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
16517b66027SMartin Blumenstingl			     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
16617b66027SMartin Blumenstingl			     <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
16717b66027SMartin Blumenstingl			     <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
16817b66027SMartin Blumenstingl		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
16917b66027SMartin Blumenstingl	};
17017b66027SMartin Blumenstingl
1718a7f0c52SMartin Blumenstingl	reserved-memory {
1728a7f0c52SMartin Blumenstingl		#address-cells = <1>;
1738a7f0c52SMartin Blumenstingl		#size-cells = <1>;
1748a7f0c52SMartin Blumenstingl		ranges;
1758a7f0c52SMartin Blumenstingl
1768a7f0c52SMartin Blumenstingl		/* 2 MiB reserved for Hardware ROM Firmware? */
1778a7f0c52SMartin Blumenstingl		hwrom@0 {
1788a7f0c52SMartin Blumenstingl			reg = <0x0 0x200000>;
1798a7f0c52SMartin Blumenstingl			no-map;
1808a7f0c52SMartin Blumenstingl		};
1818a7f0c52SMartin Blumenstingl
1828a7f0c52SMartin Blumenstingl		/*
1838a7f0c52SMartin Blumenstingl		 * 1 MiB reserved for the "ARM Power Firmware": this is ARM
1848a7f0c52SMartin Blumenstingl		 * code which is responsible for system suspend. It loads a
1858a7f0c52SMartin Blumenstingl		 * piece of ARC code ("arc_power" in the vendor u-boot tree)
1868a7f0c52SMartin Blumenstingl		 * into SRAM, executes that and shuts down the (last) ARM core.
1878a7f0c52SMartin Blumenstingl		 * The arc_power firmware then checks various wakeup sources
1888a7f0c52SMartin Blumenstingl		 * (IR remote receiver, HDMI CEC, WIFI and Bluetooth wakeup or
1898a7f0c52SMartin Blumenstingl		 * simply the power key) and re-starts the ARM core once it
1908a7f0c52SMartin Blumenstingl		 * detects a wakeup request.
1918a7f0c52SMartin Blumenstingl		 */
1928a7f0c52SMartin Blumenstingl		power-firmware@4f00000 {
1938a7f0c52SMartin Blumenstingl			reg = <0x4f00000 0x100000>;
1948a7f0c52SMartin Blumenstingl			no-map;
1958a7f0c52SMartin Blumenstingl		};
1968a7f0c52SMartin Blumenstingl	};
1977e22d728SMartin Blumenstingl
198ecdb744bSMartin Blumenstingl	thermal-zones {
199285d2d64SNeil Armstrong		soc-thermal {
200ecdb744bSMartin Blumenstingl			polling-delay-passive = <250>; /* milliseconds */
201ecdb744bSMartin Blumenstingl			polling-delay = <1000>; /* milliseconds */
202ecdb744bSMartin Blumenstingl			thermal-sensors = <&thermal_sensor>;
203ecdb744bSMartin Blumenstingl
204ecdb744bSMartin Blumenstingl			cooling-maps {
205ecdb744bSMartin Blumenstingl				map0 {
206ecdb744bSMartin Blumenstingl					trip = <&soc_passive>;
207ecdb744bSMartin Blumenstingl					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
208ecdb744bSMartin Blumenstingl							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
209ecdb744bSMartin Blumenstingl							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
210ecdb744bSMartin Blumenstingl							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
211ecdb744bSMartin Blumenstingl							 <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
212ecdb744bSMartin Blumenstingl				};
213ecdb744bSMartin Blumenstingl
214ecdb744bSMartin Blumenstingl				map1 {
215ecdb744bSMartin Blumenstingl					trip = <&soc_hot>;
216ecdb744bSMartin Blumenstingl					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
217ecdb744bSMartin Blumenstingl							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
218ecdb744bSMartin Blumenstingl							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
219ecdb744bSMartin Blumenstingl							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
220ecdb744bSMartin Blumenstingl							 <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
221ecdb744bSMartin Blumenstingl				};
222ecdb744bSMartin Blumenstingl			};
223ecdb744bSMartin Blumenstingl
224ecdb744bSMartin Blumenstingl			trips {
225ecdb744bSMartin Blumenstingl				soc_passive: soc-passive {
226ecdb744bSMartin Blumenstingl					temperature = <80000>; /* millicelsius */
227ecdb744bSMartin Blumenstingl					hysteresis = <2000>; /* millicelsius */
228ecdb744bSMartin Blumenstingl					type = "passive";
229ecdb744bSMartin Blumenstingl				};
230ecdb744bSMartin Blumenstingl
231ecdb744bSMartin Blumenstingl				soc_hot: soc-hot {
232ecdb744bSMartin Blumenstingl					temperature = <90000>; /* millicelsius */
233ecdb744bSMartin Blumenstingl					hysteresis = <2000>; /* millicelsius */
234ecdb744bSMartin Blumenstingl					type = "hot";
235ecdb744bSMartin Blumenstingl				};
236ecdb744bSMartin Blumenstingl
237ecdb744bSMartin Blumenstingl				soc_critical: soc-critical {
238ecdb744bSMartin Blumenstingl					temperature = <110000>; /* millicelsius */
239ecdb744bSMartin Blumenstingl					hysteresis = <2000>; /* millicelsius */
240ecdb744bSMartin Blumenstingl					type = "critical";
241ecdb744bSMartin Blumenstingl				};
242ecdb744bSMartin Blumenstingl			};
243ecdb744bSMartin Blumenstingl		};
244ecdb744bSMartin Blumenstingl	};
245ecdb744bSMartin Blumenstingl
24647b58182SMartin Blumenstingl	mmcbus: bus@c8000000 {
24747b58182SMartin Blumenstingl		compatible = "simple-bus";
24847b58182SMartin Blumenstingl		reg = <0xc8000000 0x8000>;
24947b58182SMartin Blumenstingl		#address-cells = <1>;
25047b58182SMartin Blumenstingl		#size-cells = <1>;
25147b58182SMartin Blumenstingl		ranges = <0x0 0xc8000000 0x8000>;
25247b58182SMartin Blumenstingl
253c4ac5c37SMartin Blumenstingl		ddr_clkc: clock-controller@400 {
254c4ac5c37SMartin Blumenstingl			compatible = "amlogic,meson8-ddr-clkc";
255c4ac5c37SMartin Blumenstingl			reg = <0x400 0x20>;
256c4ac5c37SMartin Blumenstingl			clocks = <&xtal>;
257c4ac5c37SMartin Blumenstingl			clock-names = "xtal";
258c4ac5c37SMartin Blumenstingl			#clock-cells = <1>;
259c4ac5c37SMartin Blumenstingl		};
260c4ac5c37SMartin Blumenstingl
26147b58182SMartin Blumenstingl		dmcbus: bus@6000 {
26247b58182SMartin Blumenstingl			compatible = "simple-bus";
26347b58182SMartin Blumenstingl			reg = <0x6000 0x400>;
26447b58182SMartin Blumenstingl			#address-cells = <1>;
26547b58182SMartin Blumenstingl			#size-cells = <1>;
26647b58182SMartin Blumenstingl			ranges = <0x0 0x6000 0x400>;
26747b58182SMartin Blumenstingl
26847b58182SMartin Blumenstingl			canvas: video-lut@20 {
26947b58182SMartin Blumenstingl				compatible = "amlogic,meson8-canvas",
27047b58182SMartin Blumenstingl					     "amlogic,canvas";
27147b58182SMartin Blumenstingl				reg = <0x20 0x14>;
27247b58182SMartin Blumenstingl			};
27347b58182SMartin Blumenstingl		};
27447b58182SMartin Blumenstingl	};
27547b58182SMartin Blumenstingl
2767e22d728SMartin Blumenstingl	apb: bus@d0000000 {
2777e22d728SMartin Blumenstingl		compatible = "simple-bus";
2787e22d728SMartin Blumenstingl		reg = <0xd0000000 0x200000>;
2797e22d728SMartin Blumenstingl		#address-cells = <1>;
2807e22d728SMartin Blumenstingl		#size-cells = <1>;
2817e22d728SMartin Blumenstingl		ranges = <0x0 0xd0000000 0x200000>;
2827d3f6b53SMartin Blumenstingl
2837d3f6b53SMartin Blumenstingl		mali: gpu@c0000 {
2847d3f6b53SMartin Blumenstingl			compatible = "amlogic,meson8-mali", "arm,mali-450";
2857d3f6b53SMartin Blumenstingl			reg = <0xc0000 0x40000>;
2867d3f6b53SMartin Blumenstingl			interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
2877d3f6b53SMartin Blumenstingl				     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
2887d3f6b53SMartin Blumenstingl				     <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
2897d3f6b53SMartin Blumenstingl				     <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
2907d3f6b53SMartin Blumenstingl				     <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
2917d3f6b53SMartin Blumenstingl				     <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
2927d3f6b53SMartin Blumenstingl				     <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
2937d3f6b53SMartin Blumenstingl				     <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
2947d3f6b53SMartin Blumenstingl				     <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
2957d3f6b53SMartin Blumenstingl				     <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
2967d3f6b53SMartin Blumenstingl				     <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>,
2977d3f6b53SMartin Blumenstingl				     <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>,
2987d3f6b53SMartin Blumenstingl				     <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>,
2997d3f6b53SMartin Blumenstingl				     <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>,
3007d3f6b53SMartin Blumenstingl				     <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>,
3017d3f6b53SMartin Blumenstingl				     <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
3027d3f6b53SMartin Blumenstingl			interrupt-names = "gp", "gpmmu", "pp", "pmu",
3037d3f6b53SMartin Blumenstingl					  "pp0", "ppmmu0", "pp1", "ppmmu1",
3047d3f6b53SMartin Blumenstingl					  "pp2", "ppmmu2", "pp4", "ppmmu4",
3057d3f6b53SMartin Blumenstingl					  "pp5", "ppmmu5", "pp6", "ppmmu6";
3067d3f6b53SMartin Blumenstingl			resets = <&reset RESET_MALI>;
30744cf630bSMartin Blumenstingl
3087d3f6b53SMartin Blumenstingl			clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>;
3097d3f6b53SMartin Blumenstingl			clock-names = "bus", "core";
31044cf630bSMartin Blumenstingl
31144cf630bSMartin Blumenstingl			assigned-clocks = <&clkc CLKID_MALI>;
31244cf630bSMartin Blumenstingl			assigned-clock-rates = <318750000>;
31344cf630bSMartin Blumenstingl
3147d3f6b53SMartin Blumenstingl			operating-points-v2 = <&gpu_opp_table>;
315ecdb744bSMartin Blumenstingl			#cooling-cells = <2>; /* min followed by max */
3167d3f6b53SMartin Blumenstingl		};
3177e22d728SMartin Blumenstingl	};
318200a575bSMartin Blumenstingl}; /* end of / */
319200a575bSMartin Blumenstingl
3204f8ca13dSMartin Blumenstingl&aiu {
3214f8ca13dSMartin Blumenstingl	compatible = "amlogic,aiu-meson8", "amlogic,aiu";
3224f8ca13dSMartin Blumenstingl	clocks = <&clkc CLKID_AIU_GLUE>,
3234f8ca13dSMartin Blumenstingl		 <&clkc CLKID_I2S_OUT>,
3244f8ca13dSMartin Blumenstingl		 <&clkc CLKID_AOCLK_GATE>,
3254f8ca13dSMartin Blumenstingl		 <&clkc CLKID_CTS_AMCLK>,
3264f8ca13dSMartin Blumenstingl		 <&clkc CLKID_MIXER_IFACE>,
3274f8ca13dSMartin Blumenstingl		 <&clkc CLKID_IEC958>,
3284f8ca13dSMartin Blumenstingl		 <&clkc CLKID_IEC958_GATE>,
3294f8ca13dSMartin Blumenstingl		 <&clkc CLKID_CTS_MCLK_I958>,
3304f8ca13dSMartin Blumenstingl		 <&clkc CLKID_CTS_I958>;
3314f8ca13dSMartin Blumenstingl	clock-names = "pclk",
3324f8ca13dSMartin Blumenstingl		      "i2s_pclk",
3334f8ca13dSMartin Blumenstingl		      "i2s_aoclk",
3344f8ca13dSMartin Blumenstingl		      "i2s_mclk",
3354f8ca13dSMartin Blumenstingl		      "i2s_mixer",
3364f8ca13dSMartin Blumenstingl		      "spdif_pclk",
3374f8ca13dSMartin Blumenstingl		      "spdif_aoclk",
3384f8ca13dSMartin Blumenstingl		      "spdif_mclk",
3394f8ca13dSMartin Blumenstingl		      "spdif_mclk_sel";
3404f8ca13dSMartin Blumenstingl	resets = <&reset RESET_AIU>;
3414f8ca13dSMartin Blumenstingl};
3424f8ca13dSMartin Blumenstingl
343200a575bSMartin Blumenstingl&aobus {
3444a5a2711SMartin Blumenstingl	pmu: pmu@e0 {
3454a5a2711SMartin Blumenstingl		compatible = "amlogic,meson8-pmu", "syscon";
34646c9585eSMartin Blumenstingl		reg = <0xe0 0x18>;
3474a5a2711SMartin Blumenstingl	};
3484a5a2711SMartin Blumenstingl
3492b901e9eSNeil Armstrong	pinctrl_aobus: pinctrl@14 {
350200a575bSMartin Blumenstingl		compatible = "amlogic,meson8-aobus-pinctrl";
351d9fea88cSBeniamino Galvani		#address-cells = <1>;
352d9fea88cSBeniamino Galvani		#size-cells = <1>;
3532b901e9eSNeil Armstrong		ranges = <0x0 0x14 0x1c>;
354d9fea88cSBeniamino Galvani
3552b901e9eSNeil Armstrong		gpio_ao: bank@0 {
3562b901e9eSNeil Armstrong			reg = <0x0 0x4>,
3572b901e9eSNeil Armstrong			      <0x18 0x4>,
3582b901e9eSNeil Armstrong			      <0x10 0x8>;
359200a575bSMartin Blumenstingl			reg-names = "mux", "pull", "gpio";
360200a575bSMartin Blumenstingl			gpio-controller;
361200a575bSMartin Blumenstingl			#gpio-cells = <2>;
362677c432cSJerome Brunet			gpio-ranges = <&pinctrl_aobus 0 0 16>;
363200a575bSMartin Blumenstingl		};
364200a575bSMartin Blumenstingl
3654f8ca13dSMartin Blumenstingl		i2s_am_clk_pins: i2s-am-clk-out {
3664f8ca13dSMartin Blumenstingl			mux {
3674f8ca13dSMartin Blumenstingl				groups = "i2s_am_clk_out_ao";
3684f8ca13dSMartin Blumenstingl				function = "i2s_ao";
3694f8ca13dSMartin Blumenstingl				bias-disable;
3704f8ca13dSMartin Blumenstingl			};
3714f8ca13dSMartin Blumenstingl		};
3724f8ca13dSMartin Blumenstingl
3734f8ca13dSMartin Blumenstingl		i2s_out_ao_clk_pins: i2s-ao-clk-out {
3744f8ca13dSMartin Blumenstingl			mux {
3754f8ca13dSMartin Blumenstingl				groups = "i2s_ao_clk_out_ao";
3764f8ca13dSMartin Blumenstingl				function = "i2s_ao";
3774f8ca13dSMartin Blumenstingl				bias-disable;
3784f8ca13dSMartin Blumenstingl			};
3794f8ca13dSMartin Blumenstingl		};
3804f8ca13dSMartin Blumenstingl
3814f8ca13dSMartin Blumenstingl		i2s_out_lr_clk_pins: i2s-lr-clk-out {
3824f8ca13dSMartin Blumenstingl			mux {
3834f8ca13dSMartin Blumenstingl				groups = "i2s_lr_clk_out_ao";
3844f8ca13dSMartin Blumenstingl				function = "i2s_ao";
3854f8ca13dSMartin Blumenstingl				bias-disable;
3864f8ca13dSMartin Blumenstingl			};
3874f8ca13dSMartin Blumenstingl		};
3884f8ca13dSMartin Blumenstingl
3894f8ca13dSMartin Blumenstingl		i2s_out_ch01_ao_pins: i2s-out-ch01 {
3904f8ca13dSMartin Blumenstingl			mux {
3914f8ca13dSMartin Blumenstingl				groups = "i2s_out_ch01_ao";
3924f8ca13dSMartin Blumenstingl				function = "i2s_ao";
3934f8ca13dSMartin Blumenstingl				bias-disable;
3944f8ca13dSMartin Blumenstingl			};
3954f8ca13dSMartin Blumenstingl		};
3964f8ca13dSMartin Blumenstingl
397200a575bSMartin Blumenstingl		uart_ao_a_pins: uart_ao_a {
398200a575bSMartin Blumenstingl			mux {
399200a575bSMartin Blumenstingl				groups = "uart_tx_ao_a", "uart_rx_ao_a";
400200a575bSMartin Blumenstingl				function = "uart_ao";
4013fa57cb0SMartin Blumenstingl				bias-pull-up;
402200a575bSMartin Blumenstingl			};
403200a575bSMartin Blumenstingl		};
404200a575bSMartin Blumenstingl
405200a575bSMartin Blumenstingl		i2c_ao_pins: i2c_mst_ao {
406200a575bSMartin Blumenstingl			mux {
407200a575bSMartin Blumenstingl				groups = "i2c_mst_sck_ao", "i2c_mst_sda_ao";
408200a575bSMartin Blumenstingl				function = "i2c_mst_ao";
4097e26335bSJerome Brunet				bias-disable;
410200a575bSMartin Blumenstingl			};
411200a575bSMartin Blumenstingl		};
41279eb80b7SMartin Blumenstingl
41379eb80b7SMartin Blumenstingl		ir_recv_pins: remote {
41479eb80b7SMartin Blumenstingl			mux {
41579eb80b7SMartin Blumenstingl				groups = "remote_input";
41679eb80b7SMartin Blumenstingl				function = "remote";
4177e26335bSJerome Brunet				bias-disable;
41879eb80b7SMartin Blumenstingl			};
41979eb80b7SMartin Blumenstingl		};
420192ec775SMartin Blumenstingl
421192ec775SMartin Blumenstingl		pwm_f_ao_pins: pwm-f-ao {
422192ec775SMartin Blumenstingl			mux {
423192ec775SMartin Blumenstingl				groups = "pwm_f_ao";
424192ec775SMartin Blumenstingl				function = "pwm_f_ao";
4257e26335bSJerome Brunet				bias-disable;
426192ec775SMartin Blumenstingl			};
427192ec775SMartin Blumenstingl		};
428200a575bSMartin Blumenstingl	};
429200a575bSMartin Blumenstingl};
430200a575bSMartin Blumenstingl
431fb606cdaSMartin Blumenstingl&ao_arc_rproc {
432fb606cdaSMartin Blumenstingl	compatible = "amlogic,meson8-ao-arc", "amlogic,meson-mx-ao-arc";
433fb606cdaSMartin Blumenstingl	amlogic,secbus2 = <&secbus2>;
434fb606cdaSMartin Blumenstingl	sram = <&ao_arc_sram>;
435fb606cdaSMartin Blumenstingl	resets = <&reset RESET_MEDIA_CPU>;
436fb606cdaSMartin Blumenstingl	clocks = <&clkc CLKID_AO_MEDIA_CPU>;
437fb606cdaSMartin Blumenstingl};
438fb606cdaSMartin Blumenstingl
439200a575bSMartin Blumenstingl&cbus {
440e3087187SMartin Blumenstingl	reset: reset-controller@4404 {
441e3087187SMartin Blumenstingl		compatible = "amlogic,meson8b-reset";
442e3087187SMartin Blumenstingl		reg = <0x4404 0x9c>;
443e3087187SMartin Blumenstingl		#reset-cells = <1>;
444e3087187SMartin Blumenstingl	};
445e3087187SMartin Blumenstingl
446bd835d53SMartin Blumenstingl	analog_top: analog-top@81a8 {
447bd835d53SMartin Blumenstingl		compatible = "amlogic,meson8-analog-top", "syscon";
448bd835d53SMartin Blumenstingl		reg = <0x81a8 0x14>;
449bd835d53SMartin Blumenstingl	};
450bd835d53SMartin Blumenstingl
45143d91c58SMartin Blumenstingl	pwm_ef: pwm@86c0 {
452802cff46SMartin Blumenstingl		compatible = "amlogic,meson8-pwm-v2";
453802cff46SMartin Blumenstingl		clocks = <&xtal>,
4543409f843SMartin Blumenstingl			 <0>, /* unknown/untested, the datasheet calls it "Video PLL" */
455802cff46SMartin Blumenstingl			 <&clkc CLKID_FCLK_DIV4>,
456802cff46SMartin Blumenstingl			 <&clkc CLKID_FCLK_DIV3>;
45743d91c58SMartin Blumenstingl		reg = <0x86c0 0x10>;
45843d91c58SMartin Blumenstingl		#pwm-cells = <3>;
45943d91c58SMartin Blumenstingl		status = "disabled";
46043d91c58SMartin Blumenstingl	};
46143d91c58SMartin Blumenstingl
462b6eac0d0SMartin Blumenstingl	clock-measure@8758 {
463b6eac0d0SMartin Blumenstingl		compatible = "amlogic,meson8-clk-measure";
464b6eac0d0SMartin Blumenstingl		reg = <0x8758 0x1c>;
465b6eac0d0SMartin Blumenstingl	};
466b6eac0d0SMartin Blumenstingl
4672b901e9eSNeil Armstrong	pinctrl_cbus: pinctrl@8030 {
468200a575bSMartin Blumenstingl		compatible = "amlogic,meson8-cbus-pinctrl";
469200a575bSMartin Blumenstingl		#address-cells = <1>;
470200a575bSMartin Blumenstingl		#size-cells = <1>;
4712b901e9eSNeil Armstrong		ranges = <0x0 0x8030 0x108>;
472200a575bSMartin Blumenstingl
4732b901e9eSNeil Armstrong		gpio: bank@80 {
4742b901e9eSNeil Armstrong			reg = <0x80 0x28>,
4752b901e9eSNeil Armstrong			      <0xb8 0x18>,
4762b901e9eSNeil Armstrong			      <0xf0 0x18>,
4772b901e9eSNeil Armstrong			      <0x00 0x30>;
478d9fea88cSBeniamino Galvani			reg-names = "mux", "pull", "pull-enable", "gpio";
479d9fea88cSBeniamino Galvani			gpio-controller;
480d9fea88cSBeniamino Galvani			#gpio-cells = <2>;
48190f349adSNeil Armstrong			gpio-ranges = <&pinctrl_cbus 0 0 120>;
482d9fea88cSBeniamino Galvani		};
483d9fea88cSBeniamino Galvani
484*dac92875SJ. Neuschäfer		i2c_b_pins: i2c-b {
485*dac92875SJ. Neuschäfer			mux {
486*dac92875SJ. Neuschäfer				groups = "i2c_sda_b", "i2c_sck_b";
487*dac92875SJ. Neuschäfer				function = "i2c_b";
488*dac92875SJ. Neuschäfer				bias-disable;
489*dac92875SJ. Neuschäfer			};
490*dac92875SJ. Neuschäfer		};
491*dac92875SJ. Neuschäfer
492d42ce5a9SMartin Blumenstingl		sd_a_pins: sd-a {
493d42ce5a9SMartin Blumenstingl			mux {
494d42ce5a9SMartin Blumenstingl				groups = "sd_d0_a", "sd_d1_a", "sd_d2_a",
495d42ce5a9SMartin Blumenstingl					"sd_d3_a", "sd_clk_a", "sd_cmd_a";
496d42ce5a9SMartin Blumenstingl				function = "sd_a";
4977e26335bSJerome Brunet				bias-disable;
498d42ce5a9SMartin Blumenstingl			};
499d42ce5a9SMartin Blumenstingl		};
500d42ce5a9SMartin Blumenstingl
501d42ce5a9SMartin Blumenstingl		sd_b_pins: sd-b {
502d42ce5a9SMartin Blumenstingl			mux {
503d42ce5a9SMartin Blumenstingl				groups = "sd_d0_b", "sd_d1_b", "sd_d2_b",
504d42ce5a9SMartin Blumenstingl					"sd_d3_b", "sd_clk_b", "sd_cmd_b";
505d42ce5a9SMartin Blumenstingl				function = "sd_b";
5067e26335bSJerome Brunet				bias-disable;
507d42ce5a9SMartin Blumenstingl			};
508d42ce5a9SMartin Blumenstingl		};
509d42ce5a9SMartin Blumenstingl
510d42ce5a9SMartin Blumenstingl		sd_c_pins: sd-c {
511d42ce5a9SMartin Blumenstingl			mux {
512d42ce5a9SMartin Blumenstingl				groups = "sd_d0_c", "sd_d1_c", "sd_d2_c",
513d42ce5a9SMartin Blumenstingl					"sd_d3_c", "sd_clk_c", "sd_cmd_c";
514d42ce5a9SMartin Blumenstingl				function = "sd_c";
5157e26335bSJerome Brunet				bias-disable;
516d42ce5a9SMartin Blumenstingl			};
517d42ce5a9SMartin Blumenstingl		};
518d42ce5a9SMartin Blumenstingl
519ef8474d5SMartin Blumenstingl		sdxc_a_pins: sdxc-a {
520ef8474d5SMartin Blumenstingl			mux {
521ef8474d5SMartin Blumenstingl				groups = "sdxc_d0_a", "sdxc_d13_a",
522ef8474d5SMartin Blumenstingl					 "sdxc_clk_a", "sdxc_cmd_a";
523ef8474d5SMartin Blumenstingl				function = "sdxc_a";
524ef8474d5SMartin Blumenstingl				bias-pull-up;
525ef8474d5SMartin Blumenstingl			};
526ef8474d5SMartin Blumenstingl		};
527ef8474d5SMartin Blumenstingl
52873106f75SMartin Blumenstingl		sdxc_b_pins: sdxc-b {
52973106f75SMartin Blumenstingl			mux {
53073106f75SMartin Blumenstingl				groups = "sdxc_d0_b", "sdxc_d13_b",
53173106f75SMartin Blumenstingl					 "sdxc_clk_b", "sdxc_cmd_b";
53273106f75SMartin Blumenstingl				function = "sdxc_b";
53373106f75SMartin Blumenstingl				bias-pull-up;
53473106f75SMartin Blumenstingl			};
53573106f75SMartin Blumenstingl		};
53673106f75SMartin Blumenstingl
537*dac92875SJ. Neuschäfer		sdxc_c_pins: sdxc-c {
538*dac92875SJ. Neuschäfer			mux {
539*dac92875SJ. Neuschäfer				groups = "sdxc_d0_c", "sdxc_d13_c",
540*dac92875SJ. Neuschäfer					"sdxc_clk_c", "sdxc_cmd_c",
541*dac92875SJ. Neuschäfer					"sdxc_d47_c";
542*dac92875SJ. Neuschäfer				function = "sdxc_c";
543*dac92875SJ. Neuschäfer				bias-pull-up;
544*dac92875SJ. Neuschäfer			};
545*dac92875SJ. Neuschäfer		};
546*dac92875SJ. Neuschäfer
5474f8ca13dSMartin Blumenstingl		spdif_out_pins: spdif-out {
5484f8ca13dSMartin Blumenstingl			mux {
5494f8ca13dSMartin Blumenstingl				groups = "spdif_out";
5504f8ca13dSMartin Blumenstingl				function = "spdif";
5514f8ca13dSMartin Blumenstingl				bias-disable;
5524f8ca13dSMartin Blumenstingl			};
5534f8ca13dSMartin Blumenstingl		};
5544f8ca13dSMartin Blumenstingl
555d9fea88cSBeniamino Galvani		spi_nor_pins: nor {
556d9fea88cSBeniamino Galvani			mux {
557d9fea88cSBeniamino Galvani				groups = "nor_d", "nor_q", "nor_c", "nor_cs";
558d9fea88cSBeniamino Galvani				function = "nor";
5597e26335bSJerome Brunet				bias-disable;
560d9fea88cSBeniamino Galvani			};
561d9fea88cSBeniamino Galvani		};
562d9fea88cSBeniamino Galvani
563d9fea88cSBeniamino Galvani		eth_pins: ethernet {
564d9fea88cSBeniamino Galvani			mux {
565d9fea88cSBeniamino Galvani				groups = "eth_tx_clk_50m", "eth_tx_en",
566d9fea88cSBeniamino Galvani					 "eth_txd1", "eth_txd0",
567d9fea88cSBeniamino Galvani					 "eth_rx_clk_in", "eth_rx_dv",
568d9fea88cSBeniamino Galvani					 "eth_rxd1", "eth_rxd0", "eth_mdio",
569d9fea88cSBeniamino Galvani					 "eth_mdc";
570d9fea88cSBeniamino Galvani				function = "ethernet";
5717e26335bSJerome Brunet				bias-disable;
572d9fea88cSBeniamino Galvani			};
573d9fea88cSBeniamino Galvani		};
574192ec775SMartin Blumenstingl
575192ec775SMartin Blumenstingl		pwm_e_pins: pwm-e {
576192ec775SMartin Blumenstingl			mux {
577192ec775SMartin Blumenstingl				groups = "pwm_e";
578192ec775SMartin Blumenstingl				function = "pwm_e";
5797e26335bSJerome Brunet				bias-disable;
580192ec775SMartin Blumenstingl			};
581192ec775SMartin Blumenstingl		};
582e981e459SMartin Blumenstingl
583e981e459SMartin Blumenstingl		uart_a1_pins: uart-a1 {
584e981e459SMartin Blumenstingl			mux {
585e981e459SMartin Blumenstingl				groups = "uart_tx_a1",
586e981e459SMartin Blumenstingl				       "uart_rx_a1";
587e981e459SMartin Blumenstingl				function = "uart_a";
5883fa57cb0SMartin Blumenstingl				bias-pull-up;
589e981e459SMartin Blumenstingl			};
590e981e459SMartin Blumenstingl		};
591e981e459SMartin Blumenstingl
592e981e459SMartin Blumenstingl		uart_a1_cts_rts_pins: uart-a1-cts-rts {
593e981e459SMartin Blumenstingl			mux {
594e981e459SMartin Blumenstingl				groups = "uart_cts_a1",
595e981e459SMartin Blumenstingl				       "uart_rts_a1";
596e981e459SMartin Blumenstingl				function = "uart_a";
5977e26335bSJerome Brunet				bias-disable;
598e981e459SMartin Blumenstingl			};
599e981e459SMartin Blumenstingl		};
6004ca4a633SMartin Blumenstingl
6014ca4a633SMartin Blumenstingl		xtal_32k_out_pins: xtal-32k-out {
6024ca4a633SMartin Blumenstingl			mux {
6034ca4a633SMartin Blumenstingl				groups = "xtal_32k_out";
6044ca4a633SMartin Blumenstingl				function = "xtal";
6054ca4a633SMartin Blumenstingl				bias-disable;
6064ca4a633SMartin Blumenstingl			};
6074ca4a633SMartin Blumenstingl		};
608d9fea88cSBeniamino Galvani	};
609b60e1157SCarlo Caione};
610b60e1157SCarlo Caione
6114a5a2711SMartin Blumenstingl&ahb_sram {
612e1d42e11SNeil Armstrong	ao_arc_sram: aoarc-sram@0 {
613fb606cdaSMartin Blumenstingl		compatible = "amlogic,meson8-ao-arc-sram";
614fb606cdaSMartin Blumenstingl		reg = <0x0 0x8000>;
615fb606cdaSMartin Blumenstingl		pool;
616fb606cdaSMartin Blumenstingl	};
617fb606cdaSMartin Blumenstingl
6184a5a2711SMartin Blumenstingl	smp-sram@1ff80 {
6194a5a2711SMartin Blumenstingl		compatible = "amlogic,meson8-smp-sram";
6204a5a2711SMartin Blumenstingl		reg = <0x1ff80 0x8>;
6214a5a2711SMartin Blumenstingl	};
6224a5a2711SMartin Blumenstingl};
6234a5a2711SMartin Blumenstingl
6242cb51a8dSMartin Blumenstingl&efuse {
6252cb51a8dSMartin Blumenstingl	compatible = "amlogic,meson8-efuse";
6262cb51a8dSMartin Blumenstingl	clocks = <&clkc CLKID_EFUSE>;
6272cb51a8dSMartin Blumenstingl	clock-names = "core";
628f4c6e8e2SMartin Blumenstingl
629f4c6e8e2SMartin Blumenstingl	temperature_calib: calib@1f4 {
630f4c6e8e2SMartin Blumenstingl		/* only the upper two bytes are relevant */
631f4c6e8e2SMartin Blumenstingl		reg = <0x1f4 0x4>;
632f4c6e8e2SMartin Blumenstingl	};
6332cb51a8dSMartin Blumenstingl};
6342cb51a8dSMartin Blumenstingl
635200a575bSMartin Blumenstingl&ethmac {
636f28d4bdbSMartin Blumenstingl	clocks = <&clkc CLKID_ETH>;
637200a575bSMartin Blumenstingl	clock-names = "stmmaceth";
638aecc72b1SMartin Blumenstingl
639aecc72b1SMartin Blumenstingl	power-domains = <&pwrc PWRC_MESON8_ETHERNET_MEM_ID>;
640b60e1157SCarlo Caione};
641b60e1157SCarlo Caione
64259e45c69SMartin Blumenstingl&gpio_intc {
64359e45c69SMartin Blumenstingl	compatible = "amlogic,meson8-gpio-intc", "amlogic,meson-gpio-intc";
64459e45c69SMartin Blumenstingl	status = "okay";
64559e45c69SMartin Blumenstingl};
64659e45c69SMartin Blumenstingl
647b6db3936SMartin Blumenstingl&hhi {
648b6db3936SMartin Blumenstingl	clkc: clock-controller {
649b6db3936SMartin Blumenstingl		compatible = "amlogic,meson8-clkc";
650c4ac5c37SMartin Blumenstingl		clocks = <&xtal>, <&ddr_clkc DDR_CLKID_DDR_PLL>;
651c4ac5c37SMartin Blumenstingl		clock-names = "xtal", "ddr_pll";
652b6db3936SMartin Blumenstingl		#clock-cells = <1>;
653b6db3936SMartin Blumenstingl		#reset-cells = <1>;
654b6db3936SMartin Blumenstingl	};
655aecc72b1SMartin Blumenstingl
656aecc72b1SMartin Blumenstingl	pwrc: power-controller {
657aecc72b1SMartin Blumenstingl		compatible = "amlogic,meson8-pwrc";
658aecc72b1SMartin Blumenstingl		#power-domain-cells = <1>;
659aecc72b1SMartin Blumenstingl		amlogic,ao-sysctrl = <&pmu>;
660aecc72b1SMartin Blumenstingl		clocks = <&clkc CLKID_VPU>;
661aecc72b1SMartin Blumenstingl		clock-names = "vpu";
662aecc72b1SMartin Blumenstingl		assigned-clocks = <&clkc CLKID_VPU>;
663aecc72b1SMartin Blumenstingl		assigned-clock-rates = <364285714>;
664aecc72b1SMartin Blumenstingl	};
665b6db3936SMartin Blumenstingl};
666b6db3936SMartin Blumenstingl
667a35910d3SMartin Blumenstingl&hwrng {
668a35910d3SMartin Blumenstingl	clocks = <&clkc CLKID_RNG0>;
669a35910d3SMartin Blumenstingl	clock-names = "core";
670a35910d3SMartin Blumenstingl};
671a35910d3SMartin Blumenstingl
672200a575bSMartin Blumenstingl&i2c_AO {
6732c323c43SMartin Blumenstingl	clocks = <&clkc CLKID_CLK81>;
674b60e1157SCarlo Caione};
675200a575bSMartin Blumenstingl
676200a575bSMartin Blumenstingl&i2c_A {
6772c323c43SMartin Blumenstingl	clocks = <&clkc CLKID_CLK81>;
678b60e1157SCarlo Caione};
679200a575bSMartin Blumenstingl
680200a575bSMartin Blumenstingl&i2c_B {
6812c323c43SMartin Blumenstingl	clocks = <&clkc CLKID_CLK81>;
682b60e1157SCarlo Caione};
683200a575bSMartin Blumenstingl
684bbe5b23dSCarlo Caione&L2 {
685bbe5b23dSCarlo Caione	arm,data-latency = <3 3 3>;
686bbe5b23dSCarlo Caione	arm,tag-latency = <2 2 2>;
687bbe5b23dSCarlo Caione	arm,filter-ranges = <0x100000 0xc0000000>;
6886844e968SMartin Blumenstingl	prefetch-data = <1>;
6896844e968SMartin Blumenstingl	prefetch-instr = <1>;
69012cdc236SMartin Blumenstingl	arm,prefetch-offset = <7>;
69112cdc236SMartin Blumenstingl	arm,double-linefill = <1>;
69212cdc236SMartin Blumenstingl	arm,prefetch-drop = <1>;
6936844e968SMartin Blumenstingl	arm,shared-override;
694bbe5b23dSCarlo Caione};
695bbe5b23dSCarlo Caione
696e8c276d9SMartin Blumenstingl&periph {
697e8c276d9SMartin Blumenstingl	scu@0 {
698e8c276d9SMartin Blumenstingl		compatible = "arm,cortex-a9-scu";
699e8c276d9SMartin Blumenstingl		reg = <0x0 0x100>;
700e8c276d9SMartin Blumenstingl	};
7011124d790SMartin Blumenstingl
7022710e8d2SMartin Blumenstingl	timer@200 {
7032710e8d2SMartin Blumenstingl		compatible = "arm,cortex-a9-global-timer";
7042710e8d2SMartin Blumenstingl		reg = <0x200 0x20>;
7052710e8d2SMartin Blumenstingl		interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
7062710e8d2SMartin Blumenstingl		clocks = <&clkc CLKID_PERIPH>;
7072710e8d2SMartin Blumenstingl
7082710e8d2SMartin Blumenstingl		/*
7092710e8d2SMartin Blumenstingl		 * the arm_global_timer driver currently does not handle clock
7102710e8d2SMartin Blumenstingl		 * rate changes. Keep it disabled for now.
7112710e8d2SMartin Blumenstingl		 */
7122710e8d2SMartin Blumenstingl		status = "disabled";
7132710e8d2SMartin Blumenstingl	};
7142710e8d2SMartin Blumenstingl
7151124d790SMartin Blumenstingl	timer@600 {
7161124d790SMartin Blumenstingl		compatible = "arm,cortex-a9-twd-timer";
7171124d790SMartin Blumenstingl		reg = <0x600 0x20>;
7181124d790SMartin Blumenstingl		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
7191124d790SMartin Blumenstingl		clocks = <&clkc CLKID_PERIPH>;
7201124d790SMartin Blumenstingl	};
721e8c276d9SMartin Blumenstingl};
722e8c276d9SMartin Blumenstingl
72343d91c58SMartin Blumenstingl&pwm_ab {
724802cff46SMartin Blumenstingl	compatible = "amlogic,meson8-pwm-v2";
725802cff46SMartin Blumenstingl	clocks = <&xtal>,
7263409f843SMartin Blumenstingl		 <0>, /* unknown/untested, the datasheet calls it "Video PLL" */
727802cff46SMartin Blumenstingl		 <&clkc CLKID_FCLK_DIV4>,
728802cff46SMartin Blumenstingl		 <&clkc CLKID_FCLK_DIV3>;
72943d91c58SMartin Blumenstingl};
73043d91c58SMartin Blumenstingl
73143d91c58SMartin Blumenstingl&pwm_cd {
732802cff46SMartin Blumenstingl	compatible = "amlogic,meson8-pwm-v2";
733802cff46SMartin Blumenstingl	clocks = <&xtal>,
7343409f843SMartin Blumenstingl		 <0>, /* unknown/untested, the datasheet calls it "Video PLL" */
735802cff46SMartin Blumenstingl		 <&clkc CLKID_FCLK_DIV4>,
736802cff46SMartin Blumenstingl		 <&clkc CLKID_FCLK_DIV3>;
73743d91c58SMartin Blumenstingl};
73843d91c58SMartin Blumenstingl
739f6eb973dSMartin Blumenstingl&rtc {
740f6eb973dSMartin Blumenstingl	compatible = "amlogic,meson8-rtc";
741f6eb973dSMartin Blumenstingl	resets = <&reset RESET_RTC>;
742f6eb973dSMartin Blumenstingl};
743f6eb973dSMartin Blumenstingl
744a39a3b9fSMartin Blumenstingl&saradc {
745a39a3b9fSMartin Blumenstingl	compatible = "amlogic,meson8-saradc", "amlogic,meson-saradc";
746630ea310SMartin Blumenstingl	clocks = <&xtal>, <&clkc CLKID_SAR_ADC>;
747b9b9db02SXingyu Chen	clock-names = "clkin", "core";
748f4c6e8e2SMartin Blumenstingl	amlogic,hhi-sysctrl = <&hhi>;
749f4c6e8e2SMartin Blumenstingl	nvmem-cells = <&temperature_calib>;
750f4c6e8e2SMartin Blumenstingl	nvmem-cell-names = "temperature_calib";
751a39a3b9fSMartin Blumenstingl};
752a39a3b9fSMartin Blumenstingl
75373106f75SMartin Blumenstingl&sdhc {
75473106f75SMartin Blumenstingl	compatible = "amlogic,meson8-sdhc", "amlogic,meson-mx-sdhc";
75573106f75SMartin Blumenstingl	clocks = <&xtal>,
75673106f75SMartin Blumenstingl		 <&clkc CLKID_FCLK_DIV4>,
75773106f75SMartin Blumenstingl		 <&clkc CLKID_FCLK_DIV3>,
75873106f75SMartin Blumenstingl		 <&clkc CLKID_FCLK_DIV5>,
75973106f75SMartin Blumenstingl		 <&clkc CLKID_SDHC>;
76073106f75SMartin Blumenstingl	clock-names = "clkin0", "clkin1", "clkin2", "clkin3", "pclk";
76173106f75SMartin Blumenstingl};
76273106f75SMartin Blumenstingl
763fb606cdaSMartin Blumenstingl&secbus {
764fb606cdaSMartin Blumenstingl	secbus2: system-controller@4000 {
765fb606cdaSMartin Blumenstingl		compatible = "amlogic,meson8-secbus2", "syscon";
766fb606cdaSMartin Blumenstingl		reg = <0x4000 0x2000>;
767fb606cdaSMartin Blumenstingl	};
768fb606cdaSMartin Blumenstingl};
769fb606cdaSMartin Blumenstingl
77088b1b18fSMartin Blumenstingl&sdio {
77188b1b18fSMartin Blumenstingl	compatible = "amlogic,meson8-sdio", "amlogic,meson-mx-sdio";
77288b1b18fSMartin Blumenstingl	clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>;
77388b1b18fSMartin Blumenstingl	clock-names = "core", "clkin";
77488b1b18fSMartin Blumenstingl};
77588b1b18fSMartin Blumenstingl
776200a575bSMartin Blumenstingl&spifc {
7772c323c43SMartin Blumenstingl	clocks = <&clkc CLKID_CLK81>;
778200a575bSMartin Blumenstingl};
779200a575bSMartin Blumenstingl
7807b141abeSMartin Blumenstingl&timer_abcde {
781630ea310SMartin Blumenstingl	clocks = <&xtal>, <&clkc CLKID_CLK81>;
7827b141abeSMartin Blumenstingl	clock-names = "xtal", "pclk";
7837b141abeSMartin Blumenstingl};
7847b141abeSMartin Blumenstingl
785200a575bSMartin Blumenstingl&uart_AO {
78657007bfbSMartin Blumenstingl	compatible = "amlogic,meson8-uart", "amlogic,meson-ao-uart";
78757007bfbSMartin Blumenstingl	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>;
78857007bfbSMartin Blumenstingl	clock-names = "xtal", "pclk", "baud";
789200a575bSMartin Blumenstingl};
790200a575bSMartin Blumenstingl
791200a575bSMartin Blumenstingl&uart_A {
79257007bfbSMartin Blumenstingl	compatible = "amlogic,meson8-uart";
79357007bfbSMartin Blumenstingl	clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>;
79457007bfbSMartin Blumenstingl	clock-names = "xtal", "pclk", "baud";
795200a575bSMartin Blumenstingl};
796200a575bSMartin Blumenstingl
797200a575bSMartin Blumenstingl&uart_B {
79857007bfbSMartin Blumenstingl	compatible = "amlogic,meson8-uart";
79998b503c7SMartin Blumenstingl	clocks = <&xtal>, <&clkc CLKID_UART1>, <&clkc CLKID_CLK81>;
80057007bfbSMartin Blumenstingl	clock-names = "xtal", "pclk", "baud";
801200a575bSMartin Blumenstingl};
802200a575bSMartin Blumenstingl
803200a575bSMartin Blumenstingl&uart_C {
80457007bfbSMartin Blumenstingl	compatible = "amlogic,meson8-uart";
80598b503c7SMartin Blumenstingl	clocks = <&xtal>, <&clkc CLKID_UART2>, <&clkc CLKID_CLK81>;
80657007bfbSMartin Blumenstingl	clock-names = "xtal", "pclk", "baud";
807200a575bSMartin Blumenstingl};
808e29b1cf8SMartin Blumenstingl
809e29b1cf8SMartin Blumenstingl&usb0 {
810e29b1cf8SMartin Blumenstingl	compatible = "amlogic,meson8-usb", "snps,dwc2";
811e29b1cf8SMartin Blumenstingl	clocks = <&clkc CLKID_USB0_DDR_BRIDGE>;
812e29b1cf8SMartin Blumenstingl	clock-names = "otg";
813e29b1cf8SMartin Blumenstingl};
814e29b1cf8SMartin Blumenstingl
815e29b1cf8SMartin Blumenstingl&usb1 {
816e29b1cf8SMartin Blumenstingl	compatible = "amlogic,meson8-usb", "snps,dwc2";
817e29b1cf8SMartin Blumenstingl	clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
818e29b1cf8SMartin Blumenstingl	clock-names = "otg";
819e29b1cf8SMartin Blumenstingl};
820e29b1cf8SMartin Blumenstingl
821e29b1cf8SMartin Blumenstingl&usb0_phy {
822e29b1cf8SMartin Blumenstingl	compatible = "amlogic,meson8-usb2-phy", "amlogic,meson-mx-usb2-phy";
823e29b1cf8SMartin Blumenstingl	clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB0>;
824e29b1cf8SMartin Blumenstingl	clock-names = "usb_general", "usb";
825e1fa57dfSMartin Blumenstingl	resets = <&reset RESET_USB_OTG>;
826e29b1cf8SMartin Blumenstingl};
827e29b1cf8SMartin Blumenstingl
828e29b1cf8SMartin Blumenstingl&usb1_phy {
829e29b1cf8SMartin Blumenstingl	compatible = "amlogic,meson8-usb2-phy", "amlogic,meson-mx-usb2-phy";
830e29b1cf8SMartin Blumenstingl	clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>;
831e29b1cf8SMartin Blumenstingl	clock-names = "usb_general", "usb";
832e1fa57dfSMartin Blumenstingl	resets = <&reset RESET_USB_OTG>;
833e29b1cf8SMartin Blumenstingl};
834