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		cpu4: cpu@100 {
46			device_type = "cpu";
47			compatible = "arm,cortex-a53";
48			reg = <0x0 0x100>;
49			enable-method = "psci";
50			next-level-cache = <&l2>;
51			clocks = <&scpi_dvfs 1>;
52			#cooling-cells = <2>;
53		};
54
55		cpu5: cpu@101 {
56			device_type = "cpu";
57			compatible = "arm,cortex-a53";
58			reg = <0x0 0x101>;
59			enable-method = "psci";
60			next-level-cache = <&l2>;
61			clocks = <&scpi_dvfs 1>;
62			#cooling-cells = <2>;
63		};
64
65		cpu6: cpu@102 {
66			device_type = "cpu";
67			compatible = "arm,cortex-a53";
68			reg = <0x0 0x102>;
69			enable-method = "psci";
70			next-level-cache = <&l2>;
71			clocks = <&scpi_dvfs 1>;
72			#cooling-cells = <2>;
73		};
74
75		cpu7: cpu@103 {
76			device_type = "cpu";
77			compatible = "arm,cortex-a53";
78			reg = <0x0 0x103>;
79			enable-method = "psci";
80			next-level-cache = <&l2>;
81			clocks = <&scpi_dvfs 1>;
82			#cooling-cells = <2>;
83		};
84	};
85
86	gpu_opp_table: opp-table {
87		compatible = "operating-points-v2";
88
89		opp-125000000 {
90			opp-hz = /bits/ 64 <125000000>;
91			opp-microvolt = <950000>;
92		};
93		opp-250000000 {
94			opp-hz = /bits/ 64 <250000000>;
95			opp-microvolt = <950000>;
96		};
97		opp-285714285 {
98			opp-hz = /bits/ 64 <285714285>;
99			opp-microvolt = <950000>;
100		};
101		opp-400000000 {
102			opp-hz = /bits/ 64 <400000000>;
103			opp-microvolt = <950000>;
104		};
105		opp-500000000 {
106			opp-hz = /bits/ 64 <500000000>;
107			opp-microvolt = <950000>;
108		};
109		opp-666666666 {
110			opp-hz = /bits/ 64 <666666666>;
111			opp-microvolt = <950000>;
112		};
113	};
114};
115
116&apb {
117	usb2_phy2: phy@78040 {
118		compatible = "amlogic,meson-gxl-usb2-phy";
119		#phy-cells = <0>;
120		reg = <0x0 0x78040 0x0 0x20>;
121		clocks = <&clkc CLKID_USB>;
122		clock-names = "phy";
123		resets = <&reset RESET_USB_OTG>;
124		reset-names = "phy";
125		status = "okay";
126	};
127
128	mali: gpu@c0000 {
129		compatible = "amlogic,meson-gxm-mali", "arm,mali-t820";
130		reg = <0x0 0xc0000 0x0 0x40000>;
131		interrupt-parent = <&gic>;
132		interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
133			     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
134			     <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
135		interrupt-names = "job", "mmu", "gpu";
136		clocks = <&clkc CLKID_MALI>;
137		resets = <&reset RESET_MALI_CAPB3>, <&reset RESET_MALI>;
138		operating-points-v2 = <&gpu_opp_table>;
139	};
140};
141
142&clkc_AO {
143	compatible = "amlogic,meson-gxm-aoclkc", "amlogic,meson-gx-aoclkc";
144};
145
146&cpu_cooling_maps {
147	map0 {
148		cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
149				 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
150				 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
151				 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
152				 <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
153				 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
154				 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
155				 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
156	};
157
158	map1 {
159		cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
160				 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
161				 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
162				 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
163				 <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
164				 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
165				 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
166				 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
167	};
168};
169
170&saradc {
171	compatible = "amlogic,meson-gxm-saradc", "amlogic,meson-saradc";
172};
173
174&scpi_dvfs {
175	clock-indices = <0 1>;
176	clock-output-names = "vbig", "vlittle";
177};
178
179&vpu {
180	compatible = "amlogic,meson-gxm-vpu", "amlogic,meson-gx-vpu";
181};
182
183&hdmi_tx {
184	compatible = "amlogic,meson-gxm-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
185};
186
187&usb {
188	compatible = "amlogic,meson-gxm-usb-ctrl";
189
190	phy-names = "usb2-phy0", "usb2-phy1", "usb2-phy2";
191	phys = <&usb2_phy0>, <&usb2_phy1>, <&usb2_phy2>;
192};
193
194&vdec {
195	compatible = "amlogic,gxm-vdec", "amlogic,gx-vdec";
196};
197