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
87&apb {
88	usb2_phy2: phy@78040 {
89		compatible = "amlogic,meson-gxl-usb2-phy";
90		#phy-cells = <0>;
91		reg = <0x0 0x78040 0x0 0x20>;
92		clocks = <&clkc CLKID_USB>;
93		clock-names = "phy";
94		resets = <&reset RESET_USB_OTG>;
95		reset-names = "phy";
96		status = "okay";
97	};
98
99	mali: gpu@c0000 {
100		compatible = "amlogic,meson-gxm-mali", "arm,mali-t820";
101		reg = <0x0 0xc0000 0x0 0x40000>;
102		interrupt-parent = <&gic>;
103		interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
104			     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
105			     <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
106		interrupt-names = "job", "mmu", "gpu";
107		clocks = <&clkc CLKID_MALI>;
108		resets = <&reset RESET_MALI_CAPB3>, <&reset RESET_MALI>;
109
110		/*
111		 * Mali clocking is provided by two identical clock paths
112		 * MALI_0 and MALI_1 muxed to a single clock by a glitch
113		 * free mux to safely change frequency while running.
114		 */
115		assigned-clocks = <&clkc CLKID_MALI_0_SEL>,
116				  <&clkc CLKID_MALI_0>,
117				  <&clkc CLKID_MALI>; /* Glitch free mux */
118		assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
119					 <0>, /* Do Nothing */
120					 <&clkc CLKID_MALI_0>;
121		assigned-clock-rates = <0>, /* Do Nothing */
122				       <666666666>,
123				       <0>; /* Do Nothing */
124	};
125};
126
127&clkc_AO {
128	compatible = "amlogic,meson-gxm-aoclkc", "amlogic,meson-gx-aoclkc";
129};
130
131&cpu_cooling_maps {
132	map0 {
133		cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
134				 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
135				 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
136				 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
137				 <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
138				 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
139				 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
140				 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
141	};
142
143	map1 {
144		cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
145				 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
146				 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
147				 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
148				 <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
149				 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
150				 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
151				 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
152	};
153};
154
155&saradc {
156	compatible = "amlogic,meson-gxm-saradc", "amlogic,meson-saradc";
157};
158
159&scpi_dvfs {
160	clock-indices = <0 1>;
161	clock-output-names = "vbig", "vlittle";
162};
163
164&vpu {
165	compatible = "amlogic,meson-gxm-vpu", "amlogic,meson-gx-vpu";
166};
167
168&hdmi_tx {
169	compatible = "amlogic,meson-gxm-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
170};
171
172&usb {
173	compatible = "amlogic,meson-gxm-usb-ctrl";
174
175	phy-names = "usb2-phy0", "usb2-phy1", "usb2-phy2";
176	phys = <&usb2_phy0>, <&usb2_phy1>, <&usb2_phy2>;
177};
178
179&vdec {
180	compatible = "amlogic,gxm-vdec", "amlogic,gx-vdec";
181};
182