xref: /linux/arch/arm/boot/dts/amlogic/meson8b.dtsi (revision ab93e0dd72c37d378dd936f031ffb83ff2bd87ce)
1677092c3SNeil Armstrong// SPDX-License-Identifier: GPL-2.0 OR MIT
24a69fcd3SCarlo Caione/*
34a69fcd3SCarlo Caione * Copyright 2015 Endless Mobile, Inc.
44a69fcd3SCarlo Caione * Author: Carlo Caione <carlo@endlessm.com>
54a69fcd3SCarlo Caione */
64a69fcd3SCarlo Caione
76d549ff5SMartin Blumenstingl#include <dt-bindings/clock/meson8-ddr-clkc.h>
84a69fcd3SCarlo Caione#include <dt-bindings/clock/meson8b-clkc.h>
94a69fcd3SCarlo Caione#include <dt-bindings/gpio/meson8b-gpio.h>
109960cacbSMartin Blumenstingl#include <dt-bindings/power/meson8-power.h>
11cad059c6SNeil Armstrong#include <dt-bindings/reset/amlogic,meson8b-reset.h>
124692142aSCarlo Caione#include <dt-bindings/reset/amlogic,meson8b-clkc-reset.h>
139073f694SMartin Blumenstingl#include <dt-bindings/thermal/thermal.h>
14f44135e1SMartin Blumenstingl#include "meson.dtsi"
154a69fcd3SCarlo Caione
164a69fcd3SCarlo Caione/ {
174a69fcd3SCarlo Caione	cpus {
184a69fcd3SCarlo Caione		#address-cells = <1>;
194a69fcd3SCarlo Caione		#size-cells = <0>;
204a69fcd3SCarlo Caione
21e8d85d76SMartin Blumenstingl		cpu0: cpu@200 {
224a69fcd3SCarlo Caione			device_type = "cpu";
234a69fcd3SCarlo Caione			compatible = "arm,cortex-a5";
244a69fcd3SCarlo Caione			next-level-cache = <&L2>;
254a69fcd3SCarlo Caione			reg = <0x200>;
264692142aSCarlo Caione			enable-method = "amlogic,meson8b-smp";
274692142aSCarlo Caione			resets = <&clkc CLKC_RESET_CPU0_SOFT_RESET>;
28c311552aSMartin Blumenstingl			operating-points-v2 = <&cpu_opp_table>;
29c311552aSMartin Blumenstingl			clocks = <&clkc CLKID_CPUCLK>;
309073f694SMartin Blumenstingl			#cooling-cells = <2>; /* min followed by max */
314a69fcd3SCarlo Caione		};
324a69fcd3SCarlo Caione
33e8d85d76SMartin Blumenstingl		cpu1: cpu@201 {
344a69fcd3SCarlo Caione			device_type = "cpu";
354a69fcd3SCarlo Caione			compatible = "arm,cortex-a5";
364a69fcd3SCarlo Caione			next-level-cache = <&L2>;
374a69fcd3SCarlo Caione			reg = <0x201>;
384692142aSCarlo Caione			enable-method = "amlogic,meson8b-smp";
394692142aSCarlo Caione			resets = <&clkc CLKC_RESET_CPU1_SOFT_RESET>;
40c311552aSMartin Blumenstingl			operating-points-v2 = <&cpu_opp_table>;
41c311552aSMartin Blumenstingl			clocks = <&clkc CLKID_CPUCLK>;
429073f694SMartin Blumenstingl			#cooling-cells = <2>; /* min followed by max */
434a69fcd3SCarlo Caione		};
444a69fcd3SCarlo Caione
45e8d85d76SMartin Blumenstingl		cpu2: cpu@202 {
464a69fcd3SCarlo Caione			device_type = "cpu";
474a69fcd3SCarlo Caione			compatible = "arm,cortex-a5";
484a69fcd3SCarlo Caione			next-level-cache = <&L2>;
494a69fcd3SCarlo Caione			reg = <0x202>;
504692142aSCarlo Caione			enable-method = "amlogic,meson8b-smp";
514692142aSCarlo Caione			resets = <&clkc CLKC_RESET_CPU2_SOFT_RESET>;
52c311552aSMartin Blumenstingl			operating-points-v2 = <&cpu_opp_table>;
53c311552aSMartin Blumenstingl			clocks = <&clkc CLKID_CPUCLK>;
549073f694SMartin Blumenstingl			#cooling-cells = <2>; /* min followed by max */
554a69fcd3SCarlo Caione		};
564a69fcd3SCarlo Caione
57e8d85d76SMartin Blumenstingl		cpu3: cpu@203 {
584a69fcd3SCarlo Caione			device_type = "cpu";
594a69fcd3SCarlo Caione			compatible = "arm,cortex-a5";
604a69fcd3SCarlo Caione			next-level-cache = <&L2>;
614a69fcd3SCarlo Caione			reg = <0x203>;
624692142aSCarlo Caione			enable-method = "amlogic,meson8b-smp";
634692142aSCarlo Caione			resets = <&clkc CLKC_RESET_CPU3_SOFT_RESET>;
64c311552aSMartin Blumenstingl			operating-points-v2 = <&cpu_opp_table>;
65c311552aSMartin Blumenstingl			clocks = <&clkc CLKID_CPUCLK>;
669073f694SMartin Blumenstingl			#cooling-cells = <2>; /* min followed by max */
67c311552aSMartin Blumenstingl		};
68c311552aSMartin Blumenstingl	};
69c311552aSMartin Blumenstingl
70c311552aSMartin Blumenstingl	cpu_opp_table: opp-table {
71c311552aSMartin Blumenstingl		compatible = "operating-points-v2";
72c311552aSMartin Blumenstingl		opp-shared;
73c311552aSMartin Blumenstingl
74c311552aSMartin Blumenstingl		opp-96000000 {
75c311552aSMartin Blumenstingl			opp-hz = /bits/ 64 <96000000>;
76c311552aSMartin Blumenstingl			opp-microvolt = <860000>;
77c311552aSMartin Blumenstingl		};
78c311552aSMartin Blumenstingl		opp-192000000 {
79c311552aSMartin Blumenstingl			opp-hz = /bits/ 64 <192000000>;
80c311552aSMartin Blumenstingl			opp-microvolt = <860000>;
81c311552aSMartin Blumenstingl		};
82c311552aSMartin Blumenstingl		opp-312000000 {
83c311552aSMartin Blumenstingl			opp-hz = /bits/ 64 <312000000>;
84c311552aSMartin Blumenstingl			opp-microvolt = <860000>;
85c311552aSMartin Blumenstingl		};
86c311552aSMartin Blumenstingl		opp-408000000 {
87c311552aSMartin Blumenstingl			opp-hz = /bits/ 64 <408000000>;
88c311552aSMartin Blumenstingl			opp-microvolt = <860000>;
89c311552aSMartin Blumenstingl		};
90c311552aSMartin Blumenstingl		opp-504000000 {
91c311552aSMartin Blumenstingl			opp-hz = /bits/ 64 <504000000>;
92c311552aSMartin Blumenstingl			opp-microvolt = <860000>;
93c311552aSMartin Blumenstingl		};
94c311552aSMartin Blumenstingl		opp-600000000 {
95c311552aSMartin Blumenstingl			opp-hz = /bits/ 64 <600000000>;
96c311552aSMartin Blumenstingl			opp-microvolt = <860000>;
97c311552aSMartin Blumenstingl		};
98c311552aSMartin Blumenstingl		opp-720000000 {
99c311552aSMartin Blumenstingl			opp-hz = /bits/ 64 <720000000>;
100c311552aSMartin Blumenstingl			opp-microvolt = <860000>;
101c311552aSMartin Blumenstingl		};
102c311552aSMartin Blumenstingl		opp-816000000 {
103c311552aSMartin Blumenstingl			opp-hz = /bits/ 64 <816000000>;
104c311552aSMartin Blumenstingl			opp-microvolt = <900000>;
105c311552aSMartin Blumenstingl		};
106c311552aSMartin Blumenstingl		opp-1008000000 {
107c311552aSMartin Blumenstingl			opp-hz = /bits/ 64 <1008000000>;
108c311552aSMartin Blumenstingl			opp-microvolt = <1140000>;
109c311552aSMartin Blumenstingl		};
110c311552aSMartin Blumenstingl		opp-1200000000 {
111c311552aSMartin Blumenstingl			opp-hz = /bits/ 64 <1200000000>;
112c311552aSMartin Blumenstingl			opp-microvolt = <1140000>;
113c311552aSMartin Blumenstingl		};
114c311552aSMartin Blumenstingl		opp-1320000000 {
115c311552aSMartin Blumenstingl			opp-hz = /bits/ 64 <1320000000>;
116c311552aSMartin Blumenstingl			opp-microvolt = <1140000>;
117c311552aSMartin Blumenstingl		};
118c311552aSMartin Blumenstingl		opp-1488000000 {
119c311552aSMartin Blumenstingl			opp-hz = /bits/ 64 <1488000000>;
120c311552aSMartin Blumenstingl			opp-microvolt = <1140000>;
121c311552aSMartin Blumenstingl		};
122c311552aSMartin Blumenstingl		opp-1536000000 {
123c311552aSMartin Blumenstingl			opp-hz = /bits/ 64 <1536000000>;
124c311552aSMartin Blumenstingl			opp-microvolt = <1140000>;
1254a69fcd3SCarlo Caione		};
1264a69fcd3SCarlo Caione	};
127d8dd3d29SMartin Blumenstingl
1285f441684SKrzysztof Kozlowski	gpu_opp_table: opp-table-gpu {
129c3ea80b6SMartin Blumenstingl		compatible = "operating-points-v2";
130c3ea80b6SMartin Blumenstingl
131c3ea80b6SMartin Blumenstingl		opp-255000000 {
132c3ea80b6SMartin Blumenstingl			opp-hz = /bits/ 64 <255000000>;
13326d65140SMartin Blumenstingl			opp-microvolt = <1100000>;
134c3ea80b6SMartin Blumenstingl		};
135c3dd3315SMartin Blumenstingl		opp-364285714 {
136c3dd3315SMartin Blumenstingl			opp-hz = /bits/ 64 <364285714>;
13726d65140SMartin Blumenstingl			opp-microvolt = <1100000>;
138c3ea80b6SMartin Blumenstingl		};
139c3ea80b6SMartin Blumenstingl		opp-425000000 {
140c3ea80b6SMartin Blumenstingl			opp-hz = /bits/ 64 <425000000>;
14126d65140SMartin Blumenstingl			opp-microvolt = <1100000>;
142c3ea80b6SMartin Blumenstingl		};
143c3ea80b6SMartin Blumenstingl		opp-510000000 {
144c3ea80b6SMartin Blumenstingl			opp-hz = /bits/ 64 <510000000>;
14526d65140SMartin Blumenstingl			opp-microvolt = <1100000>;
146c3ea80b6SMartin Blumenstingl		};
147c3ea80b6SMartin Blumenstingl		opp-637500000 {
148c3ea80b6SMartin Blumenstingl			opp-hz = /bits/ 64 <637500000>;
14926d65140SMartin Blumenstingl			opp-microvolt = <1100000>;
150c3ea80b6SMartin Blumenstingl			turbo-mode;
151c3ea80b6SMartin Blumenstingl		};
152c3ea80b6SMartin Blumenstingl	};
153c3ea80b6SMartin Blumenstingl
154e8d85d76SMartin Blumenstingl	pmu {
155e8d85d76SMartin Blumenstingl		compatible = "arm,cortex-a5-pmu";
156e8d85d76SMartin Blumenstingl		interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
157e8d85d76SMartin Blumenstingl			     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
158e8d85d76SMartin Blumenstingl			     <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
159e8d85d76SMartin Blumenstingl			     <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
160e8d85d76SMartin Blumenstingl		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
161e8d85d76SMartin Blumenstingl	};
162e8d85d76SMartin Blumenstingl
163b9b4bf50SLinus Lüssing	reserved-memory {
164b9b4bf50SLinus Lüssing		#address-cells = <1>;
165b9b4bf50SLinus Lüssing		#size-cells = <1>;
166b9b4bf50SLinus Lüssing		ranges;
167b9b4bf50SLinus Lüssing
168b9b4bf50SLinus Lüssing		/* 2 MiB reserved for Hardware ROM Firmware? */
169b9b4bf50SLinus Lüssing		hwrom@0 {
170b9b4bf50SLinus Lüssing			reg = <0x0 0x200000>;
171b9b4bf50SLinus Lüssing			no-map;
172b9b4bf50SLinus Lüssing		};
173b9b4bf50SLinus Lüssing	};
174e402d24dSMartin Blumenstingl
1759073f694SMartin Blumenstingl	thermal-zones {
176285d2d64SNeil Armstrong		soc-thermal {
1779073f694SMartin Blumenstingl			polling-delay-passive = <250>; /* milliseconds */
1789073f694SMartin Blumenstingl			polling-delay = <1000>; /* milliseconds */
1799073f694SMartin Blumenstingl			thermal-sensors = <&thermal_sensor>;
1809073f694SMartin Blumenstingl
1819073f694SMartin Blumenstingl			cooling-maps {
1829073f694SMartin Blumenstingl				map0 {
1839073f694SMartin Blumenstingl					trip = <&soc_passive>;
1849073f694SMartin Blumenstingl					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1859073f694SMartin Blumenstingl							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1869073f694SMartin Blumenstingl							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1879073f694SMartin Blumenstingl							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1889073f694SMartin Blumenstingl							 <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1899073f694SMartin Blumenstingl				};
1909073f694SMartin Blumenstingl
1919073f694SMartin Blumenstingl				map1 {
1929073f694SMartin Blumenstingl					trip = <&soc_hot>;
1939073f694SMartin Blumenstingl					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1949073f694SMartin Blumenstingl							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1959073f694SMartin Blumenstingl							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1969073f694SMartin Blumenstingl							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1979073f694SMartin Blumenstingl							 <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1989073f694SMartin Blumenstingl				};
1999073f694SMartin Blumenstingl			};
2009073f694SMartin Blumenstingl
2019073f694SMartin Blumenstingl			trips {
2029073f694SMartin Blumenstingl				soc_passive: soc-passive {
2039073f694SMartin Blumenstingl					temperature = <80000>; /* millicelsius */
2049073f694SMartin Blumenstingl					hysteresis = <2000>; /* millicelsius */
2059073f694SMartin Blumenstingl					type = "passive";
2069073f694SMartin Blumenstingl				};
2079073f694SMartin Blumenstingl
2089073f694SMartin Blumenstingl				soc_hot: soc-hot {
2099073f694SMartin Blumenstingl					temperature = <90000>; /* millicelsius */
2109073f694SMartin Blumenstingl					hysteresis = <2000>; /* millicelsius */
2119073f694SMartin Blumenstingl					type = "hot";
2129073f694SMartin Blumenstingl				};
2139073f694SMartin Blumenstingl
2149073f694SMartin Blumenstingl				soc_critical: soc-critical {
2159073f694SMartin Blumenstingl					temperature = <110000>; /* millicelsius */
2169073f694SMartin Blumenstingl					hysteresis = <2000>; /* millicelsius */
2179073f694SMartin Blumenstingl					type = "critical";
2189073f694SMartin Blumenstingl				};
2199073f694SMartin Blumenstingl			};
2209073f694SMartin Blumenstingl		};
2219073f694SMartin Blumenstingl	};
2229073f694SMartin Blumenstingl
223872f881eSMartin Blumenstingl	mmcbus: bus@c8000000 {
224872f881eSMartin Blumenstingl		compatible = "simple-bus";
225872f881eSMartin Blumenstingl		reg = <0xc8000000 0x8000>;
226872f881eSMartin Blumenstingl		#address-cells = <1>;
227872f881eSMartin Blumenstingl		#size-cells = <1>;
228872f881eSMartin Blumenstingl		ranges = <0x0 0xc8000000 0x8000>;
229872f881eSMartin Blumenstingl
2306d549ff5SMartin Blumenstingl		ddr_clkc: clock-controller@400 {
2316d549ff5SMartin Blumenstingl			compatible = "amlogic,meson8b-ddr-clkc";
2326d549ff5SMartin Blumenstingl			reg = <0x400 0x20>;
2336d549ff5SMartin Blumenstingl			clocks = <&xtal>;
2346d549ff5SMartin Blumenstingl			clock-names = "xtal";
2356d549ff5SMartin Blumenstingl			#clock-cells = <1>;
2366d549ff5SMartin Blumenstingl		};
2376d549ff5SMartin Blumenstingl
238872f881eSMartin Blumenstingl		dmcbus: bus@6000 {
239872f881eSMartin Blumenstingl			compatible = "simple-bus";
240872f881eSMartin Blumenstingl			reg = <0x6000 0x400>;
241872f881eSMartin Blumenstingl			#address-cells = <1>;
242872f881eSMartin Blumenstingl			#size-cells = <1>;
243872f881eSMartin Blumenstingl			ranges = <0x0 0x6000 0x400>;
244872f881eSMartin Blumenstingl
245872f881eSMartin Blumenstingl			canvas: video-lut@48 {
246872f881eSMartin Blumenstingl				compatible = "amlogic,meson8b-canvas",
247872f881eSMartin Blumenstingl					     "amlogic,canvas";
248872f881eSMartin Blumenstingl				reg = <0x48 0x14>;
249872f881eSMartin Blumenstingl			};
250872f881eSMartin Blumenstingl		};
251872f881eSMartin Blumenstingl	};
252872f881eSMartin Blumenstingl
253e402d24dSMartin Blumenstingl	apb: bus@d0000000 {
254e402d24dSMartin Blumenstingl		compatible = "simple-bus";
255e402d24dSMartin Blumenstingl		reg = <0xd0000000 0x200000>;
256e402d24dSMartin Blumenstingl		#address-cells = <1>;
257e402d24dSMartin Blumenstingl		#size-cells = <1>;
258e402d24dSMartin Blumenstingl		ranges = <0x0 0xd0000000 0x200000>;
259c3ea80b6SMartin Blumenstingl
260c3ea80b6SMartin Blumenstingl		mali: gpu@c0000 {
261c3ea80b6SMartin Blumenstingl			compatible = "amlogic,meson8b-mali", "arm,mali-450";
262c3ea80b6SMartin Blumenstingl			reg = <0xc0000 0x40000>;
263c3ea80b6SMartin Blumenstingl			interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
264c3ea80b6SMartin Blumenstingl				     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
265c3ea80b6SMartin Blumenstingl				     <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
266c3ea80b6SMartin Blumenstingl				     <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
267c3ea80b6SMartin Blumenstingl				     <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
268c3ea80b6SMartin Blumenstingl				     <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
269c3ea80b6SMartin Blumenstingl				     <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
270c3ea80b6SMartin Blumenstingl				     <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
271c3ea80b6SMartin Blumenstingl			interrupt-names = "gp", "gpmmu", "pp", "pmu",
272c3ea80b6SMartin Blumenstingl					  "pp0", "ppmmu0", "pp1", "ppmmu1";
273c3ea80b6SMartin Blumenstingl			resets = <&reset RESET_MALI>;
274c3ea80b6SMartin Blumenstingl			clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>;
275c3ea80b6SMartin Blumenstingl			clock-names = "bus", "core";
276c3ea80b6SMartin Blumenstingl			operating-points-v2 = <&gpu_opp_table>;
2779073f694SMartin Blumenstingl			#cooling-cells = <2>; /* min followed by max */
278c3ea80b6SMartin Blumenstingl		};
279e402d24dSMartin Blumenstingl	};
280f44135e1SMartin Blumenstingl}; /* end of / */
2814a69fcd3SCarlo Caione
2824f8ca13dSMartin Blumenstingl&aiu {
2834f8ca13dSMartin Blumenstingl	compatible = "amlogic,aiu-meson8b", "amlogic,aiu";
2844f8ca13dSMartin Blumenstingl	clocks = <&clkc CLKID_AIU_GLUE>,
2854f8ca13dSMartin Blumenstingl		 <&clkc CLKID_I2S_OUT>,
2864f8ca13dSMartin Blumenstingl		 <&clkc CLKID_AOCLK_GATE>,
2874f8ca13dSMartin Blumenstingl		 <&clkc CLKID_CTS_AMCLK>,
2884f8ca13dSMartin Blumenstingl		 <&clkc CLKID_MIXER_IFACE>,
2894f8ca13dSMartin Blumenstingl		 <&clkc CLKID_IEC958>,
2904f8ca13dSMartin Blumenstingl		 <&clkc CLKID_IEC958_GATE>,
2914f8ca13dSMartin Blumenstingl		 <&clkc CLKID_CTS_MCLK_I958>,
2924f8ca13dSMartin Blumenstingl		 <&clkc CLKID_CTS_I958>;
2934f8ca13dSMartin Blumenstingl	clock-names = "pclk",
2944f8ca13dSMartin Blumenstingl		      "i2s_pclk",
2954f8ca13dSMartin Blumenstingl		      "i2s_aoclk",
2964f8ca13dSMartin Blumenstingl		      "i2s_mclk",
2974f8ca13dSMartin Blumenstingl		      "i2s_mixer",
2984f8ca13dSMartin Blumenstingl		      "spdif_pclk",
2994f8ca13dSMartin Blumenstingl		      "spdif_aoclk",
3004f8ca13dSMartin Blumenstingl		      "spdif_mclk",
3014f8ca13dSMartin Blumenstingl		      "spdif_mclk_sel";
3024f8ca13dSMartin Blumenstingl	resets = <&reset RESET_AIU>;
3034f8ca13dSMartin Blumenstingl};
3044f8ca13dSMartin Blumenstingl
305f44135e1SMartin Blumenstingl&aobus {
3064692142aSCarlo Caione	pmu: pmu@e0 {
3074692142aSCarlo Caione		compatible = "amlogic,meson8b-pmu", "syscon";
3084692142aSCarlo Caione		reg = <0xe0 0x18>;
3094692142aSCarlo Caione	};
3104692142aSCarlo Caione
3112b901e9eSNeil Armstrong	pinctrl_aobus: pinctrl@14 {
312b60e1157SCarlo Caione		compatible = "amlogic,meson8b-aobus-pinctrl";
313b60e1157SCarlo Caione		#address-cells = <1>;
314b60e1157SCarlo Caione		#size-cells = <1>;
3152b901e9eSNeil Armstrong		ranges = <0x0 0x14 0x1c>;
3164a69fcd3SCarlo Caione
3172b901e9eSNeil Armstrong		gpio_ao: bank@0 {
3182b901e9eSNeil Armstrong			reg = <0x0 0x4>,
3192b901e9eSNeil Armstrong			      <0x18 0x4>,
3202b901e9eSNeil Armstrong			      <0x10 0x8>;
3214a69fcd3SCarlo Caione			reg-names = "mux", "pull", "gpio";
3224a69fcd3SCarlo Caione			gpio-controller;
3234a69fcd3SCarlo Caione			#gpio-cells = <2>;
324677c432cSJerome Brunet			gpio-ranges = <&pinctrl_aobus 0 0 16>;
3254a69fcd3SCarlo Caione		};
3264a69fcd3SCarlo Caione
3274f8ca13dSMartin Blumenstingl		i2s_am_clk_pins: i2s-am-clk-out {
3284f8ca13dSMartin Blumenstingl			mux {
3294f8ca13dSMartin Blumenstingl				groups = "i2s_am_clk_out";
3304f8ca13dSMartin Blumenstingl				function = "i2s";
3314f8ca13dSMartin Blumenstingl				bias-disable;
3324f8ca13dSMartin Blumenstingl			};
3334f8ca13dSMartin Blumenstingl		};
3344f8ca13dSMartin Blumenstingl
3354f8ca13dSMartin Blumenstingl		i2s_out_ao_clk_pins: i2s-ao-clk-out {
3364f8ca13dSMartin Blumenstingl			mux {
3374f8ca13dSMartin Blumenstingl				groups = "i2s_ao_clk_out";
3384f8ca13dSMartin Blumenstingl				function = "i2s";
3394f8ca13dSMartin Blumenstingl				bias-disable;
3404f8ca13dSMartin Blumenstingl			};
3414f8ca13dSMartin Blumenstingl		};
3424f8ca13dSMartin Blumenstingl
3434f8ca13dSMartin Blumenstingl		i2s_out_lr_clk_pins: i2s-lr-clk-out {
3444f8ca13dSMartin Blumenstingl			mux {
3454f8ca13dSMartin Blumenstingl				groups = "i2s_lr_clk_out";
3464f8ca13dSMartin Blumenstingl				function = "i2s";
3474f8ca13dSMartin Blumenstingl				bias-disable;
3484f8ca13dSMartin Blumenstingl			};
3494f8ca13dSMartin Blumenstingl		};
3504f8ca13dSMartin Blumenstingl
3514f8ca13dSMartin Blumenstingl		i2s_out_ch01_ao_pins: i2s-out-ch01 {
3524f8ca13dSMartin Blumenstingl			mux {
3534f8ca13dSMartin Blumenstingl				groups = "i2s_out_01";
3544f8ca13dSMartin Blumenstingl				function = "i2s";
3554f8ca13dSMartin Blumenstingl				bias-disable;
3564f8ca13dSMartin Blumenstingl			};
3574f8ca13dSMartin Blumenstingl		};
3584f8ca13dSMartin Blumenstingl
3594f8ca13dSMartin Blumenstingl		spdif_out_1_pins: spdif-out-1 {
3604f8ca13dSMartin Blumenstingl			mux {
3614f8ca13dSMartin Blumenstingl				groups = "spdif_out_1";
3624f8ca13dSMartin Blumenstingl				function = "spdif_1";
3634f8ca13dSMartin Blumenstingl				bias-disable;
3644f8ca13dSMartin Blumenstingl			};
3654f8ca13dSMartin Blumenstingl		};
3664f8ca13dSMartin Blumenstingl
3674a69fcd3SCarlo Caione		uart_ao_a_pins: uart_ao_a {
3684a69fcd3SCarlo Caione			mux {
3694a69fcd3SCarlo Caione				groups = "uart_tx_ao_a", "uart_rx_ao_a";
3704a69fcd3SCarlo Caione				function = "uart_ao";
371*7db1068aSMartin Blumenstingl				bias-pull-up;
3724a69fcd3SCarlo Caione			};
3734a69fcd3SCarlo Caione		};
37415b520f1SMartin Blumenstingl
37515b520f1SMartin Blumenstingl		ir_recv_pins: remote {
37615b520f1SMartin Blumenstingl			mux {
37715b520f1SMartin Blumenstingl				groups = "remote_input";
37815b520f1SMartin Blumenstingl				function = "remote";
3797e26335bSJerome Brunet				bias-disable;
38015b520f1SMartin Blumenstingl			};
38115b520f1SMartin Blumenstingl		};
3824a69fcd3SCarlo Caione	};
3834a69fcd3SCarlo Caione};
384f44135e1SMartin Blumenstingl
385fb606cdaSMartin Blumenstingl&ao_arc_rproc {
386fb606cdaSMartin Blumenstingl	compatible = "amlogic,meson8b-ao-arc", "amlogic,meson-mx-ao-arc";
387fb606cdaSMartin Blumenstingl	amlogic,secbus2 = <&secbus2>;
388fb606cdaSMartin Blumenstingl	sram = <&ao_arc_sram>;
389fb606cdaSMartin Blumenstingl	resets = <&reset RESET_MEDIA_CPU>;
390fb606cdaSMartin Blumenstingl	clocks = <&clkc CLKID_AO_MEDIA_CPU>;
391fb606cdaSMartin Blumenstingl};
392fb606cdaSMartin Blumenstingl
393f44135e1SMartin Blumenstingl&cbus {
394f44135e1SMartin Blumenstingl	reset: reset-controller@4404 {
395f44135e1SMartin Blumenstingl		compatible = "amlogic,meson8b-reset";
396a2730ed3SMartin Blumenstingl		reg = <0x4404 0x9c>;
397f44135e1SMartin Blumenstingl		#reset-cells = <1>;
398f44135e1SMartin Blumenstingl	};
399f44135e1SMartin Blumenstingl
400bd835d53SMartin Blumenstingl	analog_top: analog-top@81a8 {
401bd835d53SMartin Blumenstingl		compatible = "amlogic,meson8b-analog-top", "syscon";
402bd835d53SMartin Blumenstingl		reg = <0x81a8 0x14>;
403bd835d53SMartin Blumenstingl	};
404bd835d53SMartin Blumenstingl
405f44135e1SMartin Blumenstingl	pwm_ef: pwm@86c0 {
406dbf92186SMartin Blumenstingl		compatible = "amlogic,meson8b-pwm-v2", "amlogic,meson8-pwm-v2";
407f44135e1SMartin Blumenstingl		reg = <0x86c0 0x10>;
408dbf92186SMartin Blumenstingl		clocks = <&xtal>,
409a994b58fSMartin Blumenstingl			 <0>, /* unknown/untested, the datasheet calls it "Video PLL" */
410dbf92186SMartin Blumenstingl			 <&clkc CLKID_FCLK_DIV4>,
411dbf92186SMartin Blumenstingl			 <&clkc CLKID_FCLK_DIV3>;
412f44135e1SMartin Blumenstingl		#pwm-cells = <3>;
413f44135e1SMartin Blumenstingl		status = "disabled";
414f44135e1SMartin Blumenstingl	};
415f44135e1SMartin Blumenstingl
416f1975b98SMartin Blumenstingl	clock-measure@8758 {
417f1975b98SMartin Blumenstingl		compatible = "amlogic,meson8b-clk-measure";
418f1975b98SMartin Blumenstingl		reg = <0x8758 0x1c>;
419f1975b98SMartin Blumenstingl	};
420f1975b98SMartin Blumenstingl
4212b901e9eSNeil Armstrong	pinctrl_cbus: pinctrl@8030 {
422f44135e1SMartin Blumenstingl		compatible = "amlogic,meson8b-cbus-pinctrl";
423f44135e1SMartin Blumenstingl		#address-cells = <1>;
424f44135e1SMartin Blumenstingl		#size-cells = <1>;
4252b901e9eSNeil Armstrong		ranges = <0x0 0x8030 0x108>;
426f44135e1SMartin Blumenstingl
4272b901e9eSNeil Armstrong		gpio: bank@80 {
4282b901e9eSNeil Armstrong			reg = <0x80 0x28>,
4292b901e9eSNeil Armstrong			      <0xb8 0x18>,
4302b901e9eSNeil Armstrong			      <0xf0 0x18>,
4312b901e9eSNeil Armstrong			      <0x00 0x38>;
432f44135e1SMartin Blumenstingl			reg-names = "mux", "pull", "pull-enable", "gpio";
433f44135e1SMartin Blumenstingl			gpio-controller;
434f44135e1SMartin Blumenstingl			#gpio-cells = <2>;
4354e461e62SMartin Blumenstingl			gpio-ranges = <&pinctrl_cbus 0 0 83>;
436f44135e1SMartin Blumenstingl		};
437b9644654SEmiliano Ingrassia
438b9644654SEmiliano Ingrassia		eth_rgmii_pins: eth-rgmii {
439b9644654SEmiliano Ingrassia			mux {
440b9644654SEmiliano Ingrassia				groups = "eth_tx_clk",
441b9644654SEmiliano Ingrassia					 "eth_tx_en",
442b9644654SEmiliano Ingrassia					 "eth_txd1_0",
443b9644654SEmiliano Ingrassia					 "eth_txd0_0",
444b9644654SEmiliano Ingrassia					 "eth_rx_clk",
445b9644654SEmiliano Ingrassia					 "eth_rx_dv",
446b9644654SEmiliano Ingrassia					 "eth_rxd1",
447b9644654SEmiliano Ingrassia					 "eth_rxd0",
448b9644654SEmiliano Ingrassia					 "eth_mdio_en",
449b9644654SEmiliano Ingrassia					 "eth_mdc",
450b9644654SEmiliano Ingrassia					 "eth_ref_clk",
451b9644654SEmiliano Ingrassia					 "eth_txd2",
45229f0023dSMartin Blumenstingl					 "eth_txd3",
45329f0023dSMartin Blumenstingl					 "eth_rxd3",
45429f0023dSMartin Blumenstingl					 "eth_rxd2";
455b9644654SEmiliano Ingrassia				function = "ethernet";
4567e26335bSJerome Brunet				bias-disable;
457b9644654SEmiliano Ingrassia			};
458b9644654SEmiliano Ingrassia		};
459e03efbceSLinus Lüssing
460a77d0babSMartin Blumenstingl		eth_rmii_pins: eth-rmii {
461a77d0babSMartin Blumenstingl			mux {
462a77d0babSMartin Blumenstingl				groups = "eth_tx_en",
463a77d0babSMartin Blumenstingl					 "eth_txd1_0",
464a77d0babSMartin Blumenstingl					 "eth_txd0_0",
465a77d0babSMartin Blumenstingl					 "eth_rx_clk",
466a77d0babSMartin Blumenstingl					 "eth_rx_dv",
467a77d0babSMartin Blumenstingl					 "eth_rxd1",
468a77d0babSMartin Blumenstingl					 "eth_rxd0",
469a77d0babSMartin Blumenstingl					 "eth_mdio_en",
470a77d0babSMartin Blumenstingl					 "eth_mdc";
471a77d0babSMartin Blumenstingl				function = "ethernet";
4727e26335bSJerome Brunet				bias-disable;
473a77d0babSMartin Blumenstingl			};
474a77d0babSMartin Blumenstingl		};
475a77d0babSMartin Blumenstingl
476c821b81bSMartin Blumenstingl		i2c_a_pins: i2c-a {
477c821b81bSMartin Blumenstingl			mux {
478c821b81bSMartin Blumenstingl				groups = "i2c_sda_a", "i2c_sck_a";
479c821b81bSMartin Blumenstingl				function = "i2c_a";
4807e26335bSJerome Brunet				bias-disable;
481c821b81bSMartin Blumenstingl			};
482c821b81bSMartin Blumenstingl		};
483c821b81bSMartin Blumenstingl
484e03efbceSLinus Lüssing		sd_b_pins: sd-b {
485e03efbceSLinus Lüssing			mux {
486e03efbceSLinus Lüssing				groups = "sd_d0_b", "sd_d1_b", "sd_d2_b",
487e03efbceSLinus Lüssing					"sd_d3_b", "sd_clk_b", "sd_cmd_b";
488e03efbceSLinus Lüssing				function = "sd_b";
4897e26335bSJerome Brunet				bias-disable;
490e03efbceSLinus Lüssing			};
491e03efbceSLinus Lüssing		};
492c821b81bSMartin Blumenstingl
49373106f75SMartin Blumenstingl		sdxc_c_pins: sdxc-c {
49473106f75SMartin Blumenstingl			mux {
49573106f75SMartin Blumenstingl				groups = "sdxc_d0_c", "sdxc_d13_c",
49673106f75SMartin Blumenstingl					 "sdxc_d47_c", "sdxc_clk_c",
49773106f75SMartin Blumenstingl					 "sdxc_cmd_c";
49873106f75SMartin Blumenstingl				function = "sdxc_c";
49973106f75SMartin Blumenstingl				bias-pull-up;
50073106f75SMartin Blumenstingl			};
50173106f75SMartin Blumenstingl		};
50273106f75SMartin Blumenstingl
503c821b81bSMartin Blumenstingl		pwm_c1_pins: pwm-c1 {
504c821b81bSMartin Blumenstingl			mux {
505c821b81bSMartin Blumenstingl				groups = "pwm_c1";
506c821b81bSMartin Blumenstingl				function = "pwm_c";
5077e26335bSJerome Brunet				bias-disable;
508c821b81bSMartin Blumenstingl			};
509c821b81bSMartin Blumenstingl		};
510c821b81bSMartin Blumenstingl
511ea241bdfSMartin Blumenstingl		pwm_d_pins: pwm-d {
512ea241bdfSMartin Blumenstingl			mux {
513ea241bdfSMartin Blumenstingl				groups = "pwm_d";
514ea241bdfSMartin Blumenstingl				function = "pwm_d";
515ea241bdfSMartin Blumenstingl				bias-disable;
516ea241bdfSMartin Blumenstingl			};
517ea241bdfSMartin Blumenstingl		};
518ea241bdfSMartin Blumenstingl
519c821b81bSMartin Blumenstingl		uart_b0_pins: uart-b0 {
520c821b81bSMartin Blumenstingl			mux {
521c821b81bSMartin Blumenstingl				groups = "uart_tx_b0",
522c821b81bSMartin Blumenstingl				       "uart_rx_b0";
523c821b81bSMartin Blumenstingl				function = "uart_b";
524*7db1068aSMartin Blumenstingl				bias-pull-up;
525c821b81bSMartin Blumenstingl			};
526c821b81bSMartin Blumenstingl		};
527c821b81bSMartin Blumenstingl
528c821b81bSMartin Blumenstingl		uart_b0_cts_rts_pins: uart-b0-cts-rts {
529c821b81bSMartin Blumenstingl			mux {
530c821b81bSMartin Blumenstingl				groups = "uart_cts_b0",
531c821b81bSMartin Blumenstingl				       "uart_rts_b0";
532c821b81bSMartin Blumenstingl				function = "uart_b";
5337e26335bSJerome Brunet				bias-disable;
534c821b81bSMartin Blumenstingl			};
535c821b81bSMartin Blumenstingl		};
536f44135e1SMartin Blumenstingl	};
537f44135e1SMartin Blumenstingl};
538f44135e1SMartin Blumenstingl
5394692142aSCarlo Caione&ahb_sram {
540e1d42e11SNeil Armstrong	ao_arc_sram: aoarc-sram@0 {
541fb606cdaSMartin Blumenstingl		compatible = "amlogic,meson8b-ao-arc-sram";
542fb606cdaSMartin Blumenstingl		reg = <0x0 0x8000>;
543fb606cdaSMartin Blumenstingl		pool;
544fb606cdaSMartin Blumenstingl	};
545fb606cdaSMartin Blumenstingl
5464692142aSCarlo Caione	smp-sram@1ff80 {
5474692142aSCarlo Caione		compatible = "amlogic,meson8b-smp-sram";
5484692142aSCarlo Caione		reg = <0x1ff80 0x8>;
5494692142aSCarlo Caione	};
5504692142aSCarlo Caione};
5514692142aSCarlo Caione
5522cb51a8dSMartin Blumenstingl
5532cb51a8dSMartin Blumenstingl&efuse {
5542cb51a8dSMartin Blumenstingl	compatible = "amlogic,meson8b-efuse";
5552cb51a8dSMartin Blumenstingl	clocks = <&clkc CLKID_EFUSE>;
5562cb51a8dSMartin Blumenstingl	clock-names = "core";
557bbbcf643SMartin Blumenstingl
558bbbcf643SMartin Blumenstingl	temperature_calib: calib@1f4 {
559bbbcf643SMartin Blumenstingl		/* only the upper two bytes are relevant */
560bbbcf643SMartin Blumenstingl		reg = <0x1f4 0x4>;
561bbbcf643SMartin Blumenstingl	};
5622cb51a8dSMartin Blumenstingl};
5632cb51a8dSMartin Blumenstingl
564f28d4bdbSMartin Blumenstingl&ethmac {
565b9644654SEmiliano Ingrassia	compatible = "amlogic,meson8b-dwmac", "snps,dwmac-3.70a", "snps,dwmac";
566b9644654SEmiliano Ingrassia
567b9644654SEmiliano Ingrassia	reg = <0xc9410000 0x10000
568b9644654SEmiliano Ingrassia	       0xc1108140 0x4>;
569b9644654SEmiliano Ingrassia
570b9644654SEmiliano Ingrassia	clocks = <&clkc CLKID_ETH>,
571b9644654SEmiliano Ingrassia		 <&clkc CLKID_MPLL2>,
572b632506cSMartin Blumenstingl		 <&clkc CLKID_MPLL2>,
573b632506cSMartin Blumenstingl		 <&clkc CLKID_FCLK_DIV2>;
574b632506cSMartin Blumenstingl	clock-names = "stmmaceth", "clkin0", "clkin1", "timing-adjustment";
5754f0303d4SJerome Brunet	rx-fifo-depth = <4096>;
5764f0303d4SJerome Brunet	tx-fifo-depth = <2048>;
577b9644654SEmiliano Ingrassia
578b9644654SEmiliano Ingrassia	resets = <&reset RESET_ETHERNET>;
579b9644654SEmiliano Ingrassia	reset-names = "stmmaceth";
5809960cacbSMartin Blumenstingl
5819960cacbSMartin Blumenstingl	power-domains = <&pwrc PWRC_MESON8_ETHERNET_MEM_ID>;
582f28d4bdbSMartin Blumenstingl};
583f28d4bdbSMartin Blumenstingl
5847d32bc03SJerome Brunet&gpio_intc {
5850c187ccaSHeiner Kallweit	compatible = "amlogic,meson8b-gpio-intc",
5860c187ccaSHeiner Kallweit		     "amlogic,meson-gpio-intc";
5877d32bc03SJerome Brunet	status = "okay";
5887d32bc03SJerome Brunet};
5897d32bc03SJerome Brunet
590b6db3936SMartin Blumenstingl&hhi {
591b6db3936SMartin Blumenstingl	clkc: clock-controller {
592da256557SMartin Blumenstingl		compatible = "amlogic,meson8b-clkc";
5936d549ff5SMartin Blumenstingl		clocks = <&xtal>, <&ddr_clkc DDR_CLKID_DDR_PLL>;
5946d549ff5SMartin Blumenstingl		clock-names = "xtal", "ddr_pll";
595b6db3936SMartin Blumenstingl		#clock-cells = <1>;
596b6db3936SMartin Blumenstingl		#reset-cells = <1>;
597b6db3936SMartin Blumenstingl	};
5989960cacbSMartin Blumenstingl
5999960cacbSMartin Blumenstingl	pwrc: power-controller {
6009960cacbSMartin Blumenstingl		compatible = "amlogic,meson8b-pwrc";
6019960cacbSMartin Blumenstingl		#power-domain-cells = <1>;
6029960cacbSMartin Blumenstingl		amlogic,ao-sysctrl = <&pmu>;
6039960cacbSMartin Blumenstingl		resets = <&reset RESET_DBLK>,
6049960cacbSMartin Blumenstingl			 <&reset RESET_PIC_DC>,
6059960cacbSMartin Blumenstingl			 <&reset RESET_HDMI_APB>,
6069960cacbSMartin Blumenstingl			 <&reset RESET_HDMI_SYSTEM_RESET>,
6079960cacbSMartin Blumenstingl			 <&reset RESET_VENCI>,
6089960cacbSMartin Blumenstingl			 <&reset RESET_VENCP>,
6099960cacbSMartin Blumenstingl			 <&reset RESET_VDAC_4>,
6109960cacbSMartin Blumenstingl			 <&reset RESET_VENCL>,
6119960cacbSMartin Blumenstingl			 <&reset RESET_VIU>,
6129960cacbSMartin Blumenstingl			 <&reset RESET_VENC>,
6139960cacbSMartin Blumenstingl			 <&reset RESET_RDMA>;
6149960cacbSMartin Blumenstingl		reset-names = "dblk", "pic_dc", "hdmi_apb", "hdmi_system",
6159960cacbSMartin Blumenstingl			      "venci", "vencp", "vdac", "vencl", "viu",
6169960cacbSMartin Blumenstingl			      "venc", "rdma";
6179960cacbSMartin Blumenstingl		clocks = <&clkc CLKID_VPU>;
6189960cacbSMartin Blumenstingl		clock-names = "vpu";
6199960cacbSMartin Blumenstingl		assigned-clocks = <&clkc CLKID_VPU>;
6209960cacbSMartin Blumenstingl		assigned-clock-rates = <182142857>;
6219960cacbSMartin Blumenstingl	};
622b6db3936SMartin Blumenstingl};
623b6db3936SMartin Blumenstingl
624a35910d3SMartin Blumenstingl&hwrng {
625a35910d3SMartin Blumenstingl	clocks = <&clkc CLKID_RNG0>;
626a35910d3SMartin Blumenstingl	clock-names = "core";
627a35910d3SMartin Blumenstingl};
628a35910d3SMartin Blumenstingl
6297a6cc8beSMartin Blumenstingl&i2c_AO {
6307a6cc8beSMartin Blumenstingl	clocks = <&clkc CLKID_CLK81>;
6317a6cc8beSMartin Blumenstingl};
6327a6cc8beSMartin Blumenstingl
6337a6cc8beSMartin Blumenstingl&i2c_A {
6347a6cc8beSMartin Blumenstingl	clocks = <&clkc CLKID_I2C>;
6357a6cc8beSMartin Blumenstingl};
6367a6cc8beSMartin Blumenstingl
6377a6cc8beSMartin Blumenstingl&i2c_B {
6387a6cc8beSMartin Blumenstingl	clocks = <&clkc CLKID_I2C>;
6397a6cc8beSMartin Blumenstingl};
6407a6cc8beSMartin Blumenstingl
641bbe5b23dSCarlo Caione&L2 {
642bbe5b23dSCarlo Caione	arm,data-latency = <3 3 3>;
643bbe5b23dSCarlo Caione	arm,tag-latency = <2 2 2>;
644bbe5b23dSCarlo Caione	arm,filter-ranges = <0x100000 0xc0000000>;
6459bef306bSMartin Blumenstingl	prefetch-data = <1>;
6469bef306bSMartin Blumenstingl	prefetch-instr = <1>;
64746f73c1cSMartin Blumenstingl	arm,prefetch-offset = <7>;
64846f73c1cSMartin Blumenstingl	arm,double-linefill = <1>;
64946f73c1cSMartin Blumenstingl	arm,prefetch-drop = <1>;
6509bef306bSMartin Blumenstingl	arm,shared-override;
651bbe5b23dSCarlo Caione};
652bbe5b23dSCarlo Caione
653e8c276d9SMartin Blumenstingl&periph {
654e8c276d9SMartin Blumenstingl	scu@0 {
655e8c276d9SMartin Blumenstingl		compatible = "arm,cortex-a5-scu";
656e8c276d9SMartin Blumenstingl		reg = <0x0 0x100>;
657e8c276d9SMartin Blumenstingl	};
658f5506e82SMartin Blumenstingl
659da386363SMartin Blumenstingl	timer@200 {
660da386363SMartin Blumenstingl		compatible = "arm,cortex-a5-global-timer";
661da386363SMartin Blumenstingl		reg = <0x200 0x20>;
662da386363SMartin Blumenstingl		interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
663da386363SMartin Blumenstingl		clocks = <&clkc CLKID_PERIPH>;
664da386363SMartin Blumenstingl
665da386363SMartin Blumenstingl		/*
666da386363SMartin Blumenstingl		 * the arm_global_timer driver currently does not handle clock
667da386363SMartin Blumenstingl		 * rate changes. Keep it disabled for now.
668da386363SMartin Blumenstingl		 */
669da386363SMartin Blumenstingl		status = "disabled";
670da386363SMartin Blumenstingl	};
671da386363SMartin Blumenstingl
672f5506e82SMartin Blumenstingl	timer@600 {
673f5506e82SMartin Blumenstingl		compatible = "arm,cortex-a5-twd-timer";
674f5506e82SMartin Blumenstingl		reg = <0x600 0x20>;
675f5506e82SMartin Blumenstingl		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
676f5506e82SMartin Blumenstingl		clocks = <&clkc CLKID_PERIPH>;
677f5506e82SMartin Blumenstingl	};
678e8c276d9SMartin Blumenstingl};
679e8c276d9SMartin Blumenstingl
680440bdcdbSMartin Blumenstingl&pwm_ab {
681dbf92186SMartin Blumenstingl	compatible = "amlogic,meson8b-pwm-v2", "amlogic,meson8-pwm-v2";
682dbf92186SMartin Blumenstingl	clocks = <&xtal>,
683a994b58fSMartin Blumenstingl		 <0>, /* unknown/untested, the datasheet calls it "Video PLL" */
684dbf92186SMartin Blumenstingl		 <&clkc CLKID_FCLK_DIV4>,
685dbf92186SMartin Blumenstingl		 <&clkc CLKID_FCLK_DIV3>;
686440bdcdbSMartin Blumenstingl};
687440bdcdbSMartin Blumenstingl
688440bdcdbSMartin Blumenstingl&pwm_cd {
689dbf92186SMartin Blumenstingl	compatible = "amlogic,meson8b-pwm-v2", "amlogic,meson8-pwm-v2";
690dbf92186SMartin Blumenstingl	clocks = <&xtal>,
691a994b58fSMartin Blumenstingl		 <0>, /* unknown/untested, the datasheet calls it "Video PLL" */
692dbf92186SMartin Blumenstingl		 <&clkc CLKID_FCLK_DIV4>,
693dbf92186SMartin Blumenstingl		 <&clkc CLKID_FCLK_DIV3>;
694440bdcdbSMartin Blumenstingl};
695440bdcdbSMartin Blumenstingl
696f6eb973dSMartin Blumenstingl&rtc {
697f6eb973dSMartin Blumenstingl	compatible = "amlogic,meson8b-rtc";
698f6eb973dSMartin Blumenstingl	resets = <&reset RESET_RTC>;
699f6eb973dSMartin Blumenstingl};
700f6eb973dSMartin Blumenstingl
701a39a3b9fSMartin Blumenstingl&saradc {
702a39a3b9fSMartin Blumenstingl	compatible = "amlogic,meson8b-saradc", "amlogic,meson-saradc";
703630ea310SMartin Blumenstingl	clocks = <&xtal>, <&clkc CLKID_SAR_ADC>;
704b9b9db02SXingyu Chen	clock-names = "clkin", "core";
705bbbcf643SMartin Blumenstingl	amlogic,hhi-sysctrl = <&hhi>;
706bbbcf643SMartin Blumenstingl	nvmem-cells = <&temperature_calib>;
707bbbcf643SMartin Blumenstingl	nvmem-cell-names = "temperature_calib";
708a39a3b9fSMartin Blumenstingl};
709a39a3b9fSMartin Blumenstingl
71073106f75SMartin Blumenstingl&sdhc {
71173106f75SMartin Blumenstingl	compatible = "amlogic,meson8-sdhc", "amlogic,meson-mx-sdhc";
71273106f75SMartin Blumenstingl	clocks = <&xtal>,
71373106f75SMartin Blumenstingl		 <&clkc CLKID_FCLK_DIV4>,
71473106f75SMartin Blumenstingl		 <&clkc CLKID_FCLK_DIV3>,
71573106f75SMartin Blumenstingl		 <&clkc CLKID_FCLK_DIV5>,
71673106f75SMartin Blumenstingl		 <&clkc CLKID_SDHC>;
71773106f75SMartin Blumenstingl	clock-names = "clkin0", "clkin1", "clkin2", "clkin3", "pclk";
71873106f75SMartin Blumenstingl};
71973106f75SMartin Blumenstingl
720fb606cdaSMartin Blumenstingl&secbus {
721fb606cdaSMartin Blumenstingl	secbus2: system-controller@4000 {
722fb606cdaSMartin Blumenstingl		compatible = "amlogic,meson8b-secbus2", "syscon";
723fb606cdaSMartin Blumenstingl		reg = <0x4000 0x2000>;
724fb606cdaSMartin Blumenstingl	};
725fb606cdaSMartin Blumenstingl};
726fb606cdaSMartin Blumenstingl
72788b1b18fSMartin Blumenstingl&sdio {
72888b1b18fSMartin Blumenstingl	compatible = "amlogic,meson8b-sdio", "amlogic,meson-mx-sdio";
72988b1b18fSMartin Blumenstingl	clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>;
73088b1b18fSMartin Blumenstingl	clock-names = "core", "clkin";
73188b1b18fSMartin Blumenstingl};
73288b1b18fSMartin Blumenstingl
7337b141abeSMartin Blumenstingl&timer_abcde {
734630ea310SMartin Blumenstingl	clocks = <&xtal>, <&clkc CLKID_CLK81>;
7357b141abeSMartin Blumenstingl	clock-names = "xtal", "pclk";
7367b141abeSMartin Blumenstingl};
7377b141abeSMartin Blumenstingl
738f44135e1SMartin Blumenstingl&uart_AO {
7393375aa77SMartin Blumenstingl	compatible = "amlogic,meson8b-uart", "amlogic,meson-ao-uart";
7403375aa77SMartin Blumenstingl	clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>;
7413375aa77SMartin Blumenstingl	clock-names = "xtal", "pclk", "baud";
742f44135e1SMartin Blumenstingl};
743f44135e1SMartin Blumenstingl
744f44135e1SMartin Blumenstingl&uart_A {
7453375aa77SMartin Blumenstingl	compatible = "amlogic,meson8b-uart";
7463375aa77SMartin Blumenstingl	clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>;
7473375aa77SMartin Blumenstingl	clock-names = "xtal", "pclk", "baud";
748f44135e1SMartin Blumenstingl};
749f44135e1SMartin Blumenstingl
750f44135e1SMartin Blumenstingl&uart_B {
7513375aa77SMartin Blumenstingl	compatible = "amlogic,meson8b-uart";
752d542ce8dShfdevel@gmx.net	clocks = <&xtal>, <&clkc CLKID_UART1>, <&clkc CLKID_CLK81>;
7533375aa77SMartin Blumenstingl	clock-names = "xtal", "pclk", "baud";
754f44135e1SMartin Blumenstingl};
755f44135e1SMartin Blumenstingl
756f44135e1SMartin Blumenstingl&uart_C {
7573375aa77SMartin Blumenstingl	compatible = "amlogic,meson8b-uart";
758d542ce8dShfdevel@gmx.net	clocks = <&xtal>, <&clkc CLKID_UART2>, <&clkc CLKID_CLK81>;
7593375aa77SMartin Blumenstingl	clock-names = "xtal", "pclk", "baud";
760f44135e1SMartin Blumenstingl};
761e29b1cf8SMartin Blumenstingl
762e29b1cf8SMartin Blumenstingl&usb0 {
763e29b1cf8SMartin Blumenstingl	compatible = "amlogic,meson8b-usb", "snps,dwc2";
764e29b1cf8SMartin Blumenstingl	clocks = <&clkc CLKID_USB0_DDR_BRIDGE>;
765e29b1cf8SMartin Blumenstingl	clock-names = "otg";
766e29b1cf8SMartin Blumenstingl};
767e29b1cf8SMartin Blumenstingl
768e29b1cf8SMartin Blumenstingl&usb1 {
769e29b1cf8SMartin Blumenstingl	compatible = "amlogic,meson8b-usb", "snps,dwc2";
770e29b1cf8SMartin Blumenstingl	clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
771e29b1cf8SMartin Blumenstingl	clock-names = "otg";
772e29b1cf8SMartin Blumenstingl};
773e29b1cf8SMartin Blumenstingl
774e29b1cf8SMartin Blumenstingl&usb0_phy {
775e29b1cf8SMartin Blumenstingl	compatible = "amlogic,meson8b-usb2-phy", "amlogic,meson-mx-usb2-phy";
776e29b1cf8SMartin Blumenstingl	clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB0>;
777e29b1cf8SMartin Blumenstingl	clock-names = "usb_general", "usb";
778e29b1cf8SMartin Blumenstingl	resets = <&reset RESET_USB_OTG>;
779e29b1cf8SMartin Blumenstingl};
780e29b1cf8SMartin Blumenstingl
781e29b1cf8SMartin Blumenstingl&usb1_phy {
782e29b1cf8SMartin Blumenstingl	compatible = "amlogic,meson8b-usb2-phy", "amlogic,meson-mx-usb2-phy";
783e29b1cf8SMartin Blumenstingl	clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>;
784e29b1cf8SMartin Blumenstingl	clock-names = "usb_general", "usb";
785e29b1cf8SMartin Blumenstingl	resets = <&reset RESET_USB_OTG>;
786e29b1cf8SMartin Blumenstingl};
7872eca2a16SMartin Blumenstingl
7882eca2a16SMartin Blumenstingl&wdt {
7892eca2a16SMartin Blumenstingl	compatible = "amlogic,meson8b-wdt";
7902eca2a16SMartin Blumenstingl};
791