1114abfe1SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2bb51b535SNeil Armstrong/*
3bb51b535SNeil Armstrong * Copyright (c) 2016 Endless Computers, Inc.
4bb51b535SNeil Armstrong * Author: Carlo Caione <carlo@endlessm.com>
5bb51b535SNeil Armstrong */
6bb51b535SNeil Armstrong
7bb51b535SNeil Armstrong#include "meson-gxl.dtsi"
8bb51b535SNeil Armstrong
9bb51b535SNeil Armstrong/ {
10bb51b535SNeil Armstrong	compatible = "amlogic,meson-gxm";
11bb51b535SNeil Armstrong
12bb51b535SNeil Armstrong	cpus {
13bb51b535SNeil Armstrong		cpu-map {
14bb51b535SNeil Armstrong			cluster0 {
15bb51b535SNeil Armstrong				core0 {
16bb51b535SNeil Armstrong					cpu = <&cpu0>;
17bb51b535SNeil Armstrong				};
18bb51b535SNeil Armstrong				core1 {
19bb51b535SNeil Armstrong					cpu = <&cpu1>;
20bb51b535SNeil Armstrong				};
21bb51b535SNeil Armstrong				core2 {
22bb51b535SNeil Armstrong					cpu = <&cpu2>;
23bb51b535SNeil Armstrong				};
24bb51b535SNeil Armstrong				core3 {
25bb51b535SNeil Armstrong					cpu = <&cpu3>;
26bb51b535SNeil Armstrong				};
27bb51b535SNeil Armstrong			};
28bb51b535SNeil Armstrong
29bb51b535SNeil Armstrong			cluster1 {
30bb51b535SNeil Armstrong				core0 {
31bb51b535SNeil Armstrong					cpu = <&cpu4>;
32bb51b535SNeil Armstrong				};
33bb51b535SNeil Armstrong				core1 {
34bb51b535SNeil Armstrong					cpu = <&cpu5>;
35bb51b535SNeil Armstrong				};
36bb51b535SNeil Armstrong				core2 {
37bb51b535SNeil Armstrong					cpu = <&cpu6>;
38bb51b535SNeil Armstrong				};
39bb51b535SNeil Armstrong				core3 {
40bb51b535SNeil Armstrong					cpu = <&cpu7>;
41bb51b535SNeil Armstrong				};
42bb51b535SNeil Armstrong			};
43bb51b535SNeil Armstrong		};
44bb51b535SNeil Armstrong
45bb51b535SNeil Armstrong		cpu4: cpu@100 {
46bb51b535SNeil Armstrong			device_type = "cpu";
4731af04cdSRob Herring			compatible = "arm,cortex-a53";
48bb51b535SNeil Armstrong			reg = <0x0 0x100>;
49bb51b535SNeil Armstrong			enable-method = "psci";
50bb51b535SNeil Armstrong			next-level-cache = <&l2>;
51bd97abc0SMartin Blumenstingl			clocks = <&scpi_dvfs 1>;
52cd13d5f1SChristian Hewitt			#cooling-cells = <2>;
53bb51b535SNeil Armstrong		};
54bb51b535SNeil Armstrong
55bb51b535SNeil Armstrong		cpu5: cpu@101 {
56bb51b535SNeil Armstrong			device_type = "cpu";
5731af04cdSRob Herring			compatible = "arm,cortex-a53";
58bb51b535SNeil Armstrong			reg = <0x0 0x101>;
59bb51b535SNeil Armstrong			enable-method = "psci";
60bb51b535SNeil Armstrong			next-level-cache = <&l2>;
61bd97abc0SMartin Blumenstingl			clocks = <&scpi_dvfs 1>;
62cd13d5f1SChristian Hewitt			#cooling-cells = <2>;
63bb51b535SNeil Armstrong		};
64bb51b535SNeil Armstrong
65bb51b535SNeil Armstrong		cpu6: cpu@102 {
66bb51b535SNeil Armstrong			device_type = "cpu";
6731af04cdSRob Herring			compatible = "arm,cortex-a53";
68bb51b535SNeil Armstrong			reg = <0x0 0x102>;
69bb51b535SNeil Armstrong			enable-method = "psci";
70bb51b535SNeil Armstrong			next-level-cache = <&l2>;
71bd97abc0SMartin Blumenstingl			clocks = <&scpi_dvfs 1>;
72cd13d5f1SChristian Hewitt			#cooling-cells = <2>;
73bb51b535SNeil Armstrong		};
74bb51b535SNeil Armstrong
75bb51b535SNeil Armstrong		cpu7: cpu@103 {
76bb51b535SNeil Armstrong			device_type = "cpu";
7731af04cdSRob Herring			compatible = "arm,cortex-a53";
78bb51b535SNeil Armstrong			reg = <0x0 0x103>;
79bb51b535SNeil Armstrong			enable-method = "psci";
80bb51b535SNeil Armstrong			next-level-cache = <&l2>;
81bd97abc0SMartin Blumenstingl			clocks = <&scpi_dvfs 1>;
82cd13d5f1SChristian Hewitt			#cooling-cells = <2>;
83bb51b535SNeil Armstrong		};
84bb51b535SNeil Armstrong	};
858f16cfabSMartin Blumenstingl
868f16cfabSMartin Blumenstingl	gpu_opp_table: opp-table {
878f16cfabSMartin Blumenstingl		compatible = "operating-points-v2";
888f16cfabSMartin Blumenstingl
898f16cfabSMartin Blumenstingl		opp-125000000 {
908f16cfabSMartin Blumenstingl			opp-hz = /bits/ 64 <125000000>;
918f16cfabSMartin Blumenstingl			opp-microvolt = <950000>;
928f16cfabSMartin Blumenstingl		};
938f16cfabSMartin Blumenstingl		opp-250000000 {
948f16cfabSMartin Blumenstingl			opp-hz = /bits/ 64 <250000000>;
958f16cfabSMartin Blumenstingl			opp-microvolt = <950000>;
968f16cfabSMartin Blumenstingl		};
978f16cfabSMartin Blumenstingl		opp-285714285 {
988f16cfabSMartin Blumenstingl			opp-hz = /bits/ 64 <285714285>;
998f16cfabSMartin Blumenstingl			opp-microvolt = <950000>;
1008f16cfabSMartin Blumenstingl		};
1018f16cfabSMartin Blumenstingl		opp-400000000 {
1028f16cfabSMartin Blumenstingl			opp-hz = /bits/ 64 <400000000>;
1038f16cfabSMartin Blumenstingl			opp-microvolt = <950000>;
1048f16cfabSMartin Blumenstingl		};
1058f16cfabSMartin Blumenstingl		opp-500000000 {
1068f16cfabSMartin Blumenstingl			opp-hz = /bits/ 64 <500000000>;
1078f16cfabSMartin Blumenstingl			opp-microvolt = <950000>;
1088f16cfabSMartin Blumenstingl		};
1098f16cfabSMartin Blumenstingl		opp-666666666 {
1108f16cfabSMartin Blumenstingl			opp-hz = /bits/ 64 <666666666>;
1118f16cfabSMartin Blumenstingl			opp-microvolt = <950000>;
1128f16cfabSMartin Blumenstingl		};
1138f16cfabSMartin Blumenstingl	};
114bb51b535SNeil Armstrong};
115fafdbdf7SNeil Armstrong
116458baa95SMartin Blumenstingl&apb {
117458baa95SMartin Blumenstingl	usb2_phy2: phy@78040 {
118458baa95SMartin Blumenstingl		compatible = "amlogic,meson-gxl-usb2-phy";
119458baa95SMartin Blumenstingl		#phy-cells = <0>;
120458baa95SMartin Blumenstingl		reg = <0x0 0x78040 0x0 0x20>;
121458baa95SMartin Blumenstingl		clocks = <&clkc CLKID_USB>;
122458baa95SMartin Blumenstingl		clock-names = "phy";
123458baa95SMartin Blumenstingl		resets = <&reset RESET_USB_OTG>;
124458baa95SMartin Blumenstingl		reset-names = "phy";
125458baa95SMartin Blumenstingl		status = "okay";
126458baa95SMartin Blumenstingl	};
12711f8e119SChristian Hewitt
12811f8e119SChristian Hewitt	mali: gpu@c0000 {
12911f8e119SChristian Hewitt		compatible = "amlogic,meson-gxm-mali", "arm,mali-t820";
13011f8e119SChristian Hewitt		reg = <0x0 0xc0000 0x0 0x40000>;
13111f8e119SChristian Hewitt		interrupt-parent = <&gic>;
13269fb3f21SNeil Armstrong		interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
13311f8e119SChristian Hewitt			     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
13469fb3f21SNeil Armstrong			     <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
13569fb3f21SNeil Armstrong		interrupt-names = "job", "mmu", "gpu";
13611f8e119SChristian Hewitt		clocks = <&clkc CLKID_MALI>;
13711f8e119SChristian Hewitt		resets = <&reset RESET_MALI_CAPB3>, <&reset RESET_MALI>;
1388f16cfabSMartin Blumenstingl		operating-points-v2 = <&gpu_opp_table>;
13911f8e119SChristian Hewitt	};
140458baa95SMartin Blumenstingl};
141458baa95SMartin Blumenstingl
1427fd2c355SNeil Armstrong&clkc_AO {
1437fd2c355SNeil Armstrong	compatible = "amlogic,meson-gxm-aoclkc", "amlogic,meson-gx-aoclkc";
1447fd2c355SNeil Armstrong};
1457fd2c355SNeil Armstrong
146cd13d5f1SChristian Hewitt&cpu_cooling_maps {
147cd13d5f1SChristian Hewitt	map0 {
148cd13d5f1SChristian Hewitt		cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
149cd13d5f1SChristian Hewitt				 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
150cd13d5f1SChristian Hewitt				 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
151cd13d5f1SChristian Hewitt				 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
152cd13d5f1SChristian Hewitt				 <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
153cd13d5f1SChristian Hewitt				 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
154cd13d5f1SChristian Hewitt				 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
155cd13d5f1SChristian Hewitt				 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
156cd13d5f1SChristian Hewitt	};
157cd13d5f1SChristian Hewitt
158cd13d5f1SChristian Hewitt	map1 {
159cd13d5f1SChristian Hewitt		cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
160cd13d5f1SChristian Hewitt				 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
161cd13d5f1SChristian Hewitt				 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
162cd13d5f1SChristian Hewitt				 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
163cd13d5f1SChristian Hewitt				 <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
164cd13d5f1SChristian Hewitt				 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
165cd13d5f1SChristian Hewitt				 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
166cd13d5f1SChristian Hewitt				 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
167cd13d5f1SChristian Hewitt	};
168cd13d5f1SChristian Hewitt};
169cd13d5f1SChristian Hewitt
170bd80ef5eSMartin Blumenstingl&saradc {
171bd80ef5eSMartin Blumenstingl	compatible = "amlogic,meson-gxm-saradc", "amlogic,meson-saradc";
172bd80ef5eSMartin Blumenstingl};
173bd80ef5eSMartin Blumenstingl
174bd97abc0SMartin Blumenstingl&scpi_dvfs {
175bd97abc0SMartin Blumenstingl	clock-indices = <0 1>;
176bd97abc0SMartin Blumenstingl	clock-output-names = "vbig", "vlittle";
177bd97abc0SMartin Blumenstingl};
178bd97abc0SMartin Blumenstingl
179fafdbdf7SNeil Armstrong&vpu {
180fafdbdf7SNeil Armstrong	compatible = "amlogic,meson-gxm-vpu", "amlogic,meson-gx-vpu";
181fafdbdf7SNeil Armstrong};
182bd97abc0SMartin Blumenstingl
1836939db7eSNeil Armstrong&hdmi_tx {
1846939db7eSNeil Armstrong	compatible = "amlogic,meson-gxm-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
1856939db7eSNeil Armstrong};
186458baa95SMartin Blumenstingl
1872f9139c2SMartin Blumenstingl&usb {
1882f9139c2SMartin Blumenstingl	compatible = "amlogic,meson-gxm-usb-ctrl";
1892f9139c2SMartin Blumenstingl
1902f9139c2SMartin Blumenstingl	phy-names = "usb2-phy0", "usb2-phy1", "usb2-phy2";
1912f9139c2SMartin Blumenstingl	phys = <&usb2_phy0>, <&usb2_phy1>, <&usb2_phy2>;
192458baa95SMartin Blumenstingl};
1934be247f7SMaxime Jourdan
1944be247f7SMaxime Jourdan&vdec {
1954be247f7SMaxime Jourdan	compatible = "amlogic,gxm-vdec", "amlogic,gx-vdec";
1964be247f7SMaxime Jourdan};
197