1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2016 Endless Computers, Inc.
4 * Author: Carlo Caione <carlo@endlessm.com>
5 */
6
7#include "meson-gxl.dtsi"
8
9/ {
10	compatible = "amlogic,meson-gxm";
11
12	cpus {
13		cpu-map {
14			cluster0 {
15				core0 {
16					cpu = <&cpu0>;
17				};
18				core1 {
19					cpu = <&cpu1>;
20				};
21				core2 {
22					cpu = <&cpu2>;
23				};
24				core3 {
25					cpu = <&cpu3>;
26				};
27			};
28
29			cluster1 {
30				core0 {
31					cpu = <&cpu4>;
32				};
33				core1 {
34					cpu = <&cpu5>;
35				};
36				core2 {
37					cpu = <&cpu6>;
38				};
39				core3 {
40					cpu = <&cpu7>;
41				};
42			};
43		};
44
45		cpu0: cpu@0 {
46			capacity-dmips-mhz = <1024>;
47		};
48
49		cpu1: cpu@1 {
50			capacity-dmips-mhz = <1024>;
51		};
52
53		cpu2: cpu@2 {
54			capacity-dmips-mhz = <1024>;
55		};
56
57		cpu3: cpu@3 {
58			capacity-dmips-mhz = <1024>;
59		};
60
61		cpu4: cpu@100 {
62			device_type = "cpu";
63			compatible = "arm,cortex-a53";
64			reg = <0x0 0x100>;
65			enable-method = "psci";
66			capacity-dmips-mhz = <1024>;
67			next-level-cache = <&l2>;
68			clocks = <&scpi_dvfs 1>;
69			#cooling-cells = <2>;
70		};
71
72		cpu5: cpu@101 {
73			device_type = "cpu";
74			compatible = "arm,cortex-a53";
75			reg = <0x0 0x101>;
76			enable-method = "psci";
77			capacity-dmips-mhz = <1024>;
78			next-level-cache = <&l2>;
79			clocks = <&scpi_dvfs 1>;
80			#cooling-cells = <2>;
81		};
82
83		cpu6: cpu@102 {
84			device_type = "cpu";
85			compatible = "arm,cortex-a53";
86			reg = <0x0 0x102>;
87			enable-method = "psci";
88			capacity-dmips-mhz = <1024>;
89			next-level-cache = <&l2>;
90			clocks = <&scpi_dvfs 1>;
91			#cooling-cells = <2>;
92		};
93
94		cpu7: cpu@103 {
95			device_type = "cpu";
96			compatible = "arm,cortex-a53";
97			reg = <0x0 0x103>;
98			enable-method = "psci";
99			capacity-dmips-mhz = <1024>;
100			next-level-cache = <&l2>;
101			clocks = <&scpi_dvfs 1>;
102			#cooling-cells = <2>;
103		};
104	};
105
106	gpu_opp_table: opp-table {
107		compatible = "operating-points-v2";
108
109		opp-125000000 {
110			opp-hz = /bits/ 64 <125000000>;
111			opp-microvolt = <950000>;
112		};
113		opp-250000000 {
114			opp-hz = /bits/ 64 <250000000>;
115			opp-microvolt = <950000>;
116		};
117		opp-285714285 {
118			opp-hz = /bits/ 64 <285714285>;
119			opp-microvolt = <950000>;
120		};
121		opp-400000000 {
122			opp-hz = /bits/ 64 <400000000>;
123			opp-microvolt = <950000>;
124		};
125		opp-500000000 {
126			opp-hz = /bits/ 64 <500000000>;
127			opp-microvolt = <950000>;
128		};
129		opp-666666666 {
130			opp-hz = /bits/ 64 <666666666>;
131			opp-microvolt = <950000>;
132		};
133	};
134};
135
136&apb {
137	usb2_phy2: phy@78040 {
138		compatible = "amlogic,meson-gxl-usb2-phy";
139		#phy-cells = <0>;
140		reg = <0x0 0x78040 0x0 0x20>;
141		clocks = <&clkc CLKID_USB>;
142		clock-names = "phy";
143		resets = <&reset RESET_USB_OTG>;
144		reset-names = "phy";
145		status = "okay";
146	};
147
148	mali: gpu@c0000 {
149		compatible = "amlogic,meson-gxm-mali", "arm,mali-t820";
150		reg = <0x0 0xc0000 0x0 0x40000>;
151		interrupt-parent = <&gic>;
152		interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
153			     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
154			     <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
155		interrupt-names = "job", "mmu", "gpu";
156		clocks = <&clkc CLKID_MALI>;
157		resets = <&reset RESET_MALI_CAPB3>, <&reset RESET_MALI>;
158		operating-points-v2 = <&gpu_opp_table>;
159	};
160};
161
162&clkc_AO {
163	compatible = "amlogic,meson-gxm-aoclkc", "amlogic,meson-gx-aoclkc";
164};
165
166&cpu_cooling_maps {
167	map0 {
168		cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
169				 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
170				 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
171				 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
172				 <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
173				 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
174				 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
175				 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
176	};
177
178	map1 {
179		cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
180				 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
181				 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
182				 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
183				 <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
184				 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
185				 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
186				 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
187	};
188};
189
190&saradc {
191	compatible = "amlogic,meson-gxm-saradc", "amlogic,meson-saradc";
192};
193
194&scpi_dvfs {
195	clock-indices = <0 1>;
196	clock-output-names = "vbig", "vlittle";
197};
198
199&vpu {
200	compatible = "amlogic,meson-gxm-vpu", "amlogic,meson-gx-vpu";
201};
202
203&hdmi_tx {
204	compatible = "amlogic,meson-gxm-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
205};
206
207&usb {
208	compatible = "amlogic,meson-gxm-usb-ctrl";
209
210	phy-names = "usb2-phy0", "usb2-phy1", "usb2-phy2";
211	phys = <&usb2_phy0>, <&usb2_phy1>, <&usb2_phy2>;
212};
213
214&vdec {
215	compatible = "amlogic,gxm-vdec", "amlogic,gx-vdec";
216};
217