xref: /linux/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi (revision 2f9139c2609fd7166a465c8a60474aa96d6290ac)
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	};
85bb51b535SNeil Armstrong};
86fafdbdf7SNeil Armstrong
87458baa95SMartin Blumenstingl&apb {
88458baa95SMartin Blumenstingl	usb2_phy2: phy@78040 {
89458baa95SMartin Blumenstingl		compatible = "amlogic,meson-gxl-usb2-phy";
90458baa95SMartin Blumenstingl		#phy-cells = <0>;
91458baa95SMartin Blumenstingl		reg = <0x0 0x78040 0x0 0x20>;
92458baa95SMartin Blumenstingl		clocks = <&clkc CLKID_USB>;
93458baa95SMartin Blumenstingl		clock-names = "phy";
94458baa95SMartin Blumenstingl		resets = <&reset RESET_USB_OTG>;
95458baa95SMartin Blumenstingl		reset-names = "phy";
96458baa95SMartin Blumenstingl		status = "okay";
97458baa95SMartin Blumenstingl	};
9811f8e119SChristian Hewitt
9911f8e119SChristian Hewitt	mali: gpu@c0000 {
10011f8e119SChristian Hewitt		compatible = "amlogic,meson-gxm-mali", "arm,mali-t820";
10111f8e119SChristian Hewitt		reg = <0x0 0xc0000 0x0 0x40000>;
10211f8e119SChristian Hewitt		interrupt-parent = <&gic>;
10369fb3f21SNeil Armstrong		interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
10411f8e119SChristian Hewitt			     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
10569fb3f21SNeil Armstrong			     <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
10669fb3f21SNeil Armstrong		interrupt-names = "job", "mmu", "gpu";
10711f8e119SChristian Hewitt		clocks = <&clkc CLKID_MALI>;
10811f8e119SChristian Hewitt		resets = <&reset RESET_MALI_CAPB3>, <&reset RESET_MALI>;
10911f8e119SChristian Hewitt
11011f8e119SChristian Hewitt		/*
11111f8e119SChristian Hewitt		 * Mali clocking is provided by two identical clock paths
11211f8e119SChristian Hewitt		 * MALI_0 and MALI_1 muxed to a single clock by a glitch
11311f8e119SChristian Hewitt		 * free mux to safely change frequency while running.
11411f8e119SChristian Hewitt		 */
11511f8e119SChristian Hewitt		assigned-clocks = <&clkc CLKID_MALI_0_SEL>,
11611f8e119SChristian Hewitt				  <&clkc CLKID_MALI_0>,
11711f8e119SChristian Hewitt				  <&clkc CLKID_MALI>; /* Glitch free mux */
11811f8e119SChristian Hewitt		assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
11911f8e119SChristian Hewitt					 <0>, /* Do Nothing */
12011f8e119SChristian Hewitt					 <&clkc CLKID_MALI_0>;
12111f8e119SChristian Hewitt		assigned-clock-rates = <0>, /* Do Nothing */
12211f8e119SChristian Hewitt				       <666666666>,
12311f8e119SChristian Hewitt				       <0>; /* Do Nothing */
12411f8e119SChristian Hewitt	};
125458baa95SMartin Blumenstingl};
126458baa95SMartin Blumenstingl
1277fd2c355SNeil Armstrong&clkc_AO {
1287fd2c355SNeil Armstrong	compatible = "amlogic,meson-gxm-aoclkc", "amlogic,meson-gx-aoclkc";
1297fd2c355SNeil Armstrong};
1307fd2c355SNeil Armstrong
131cd13d5f1SChristian Hewitt&cpu_cooling_maps {
132cd13d5f1SChristian Hewitt	map0 {
133cd13d5f1SChristian Hewitt		cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
134cd13d5f1SChristian Hewitt				 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
135cd13d5f1SChristian Hewitt				 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
136cd13d5f1SChristian Hewitt				 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
137cd13d5f1SChristian Hewitt				 <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
138cd13d5f1SChristian Hewitt				 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
139cd13d5f1SChristian Hewitt				 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
140cd13d5f1SChristian Hewitt				 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
141cd13d5f1SChristian Hewitt	};
142cd13d5f1SChristian Hewitt
143cd13d5f1SChristian Hewitt	map1 {
144cd13d5f1SChristian Hewitt		cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
145cd13d5f1SChristian Hewitt				 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
146cd13d5f1SChristian Hewitt				 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
147cd13d5f1SChristian Hewitt				 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
148cd13d5f1SChristian Hewitt				 <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
149cd13d5f1SChristian Hewitt				 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
150cd13d5f1SChristian Hewitt				 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
151cd13d5f1SChristian Hewitt				 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
152cd13d5f1SChristian Hewitt	};
153cd13d5f1SChristian Hewitt};
154cd13d5f1SChristian Hewitt
155bd80ef5eSMartin Blumenstingl&saradc {
156bd80ef5eSMartin Blumenstingl	compatible = "amlogic,meson-gxm-saradc", "amlogic,meson-saradc";
157bd80ef5eSMartin Blumenstingl};
158bd80ef5eSMartin Blumenstingl
159bd97abc0SMartin Blumenstingl&scpi_dvfs {
160bd97abc0SMartin Blumenstingl	clock-indices = <0 1>;
161bd97abc0SMartin Blumenstingl	clock-output-names = "vbig", "vlittle";
162bd97abc0SMartin Blumenstingl};
163bd97abc0SMartin Blumenstingl
164fafdbdf7SNeil Armstrong&vpu {
165fafdbdf7SNeil Armstrong	compatible = "amlogic,meson-gxm-vpu", "amlogic,meson-gx-vpu";
166fafdbdf7SNeil Armstrong};
167bd97abc0SMartin Blumenstingl
1686939db7eSNeil Armstrong&hdmi_tx {
1696939db7eSNeil Armstrong	compatible = "amlogic,meson-gxm-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
1706939db7eSNeil Armstrong};
171458baa95SMartin Blumenstingl
172*2f9139c2SMartin Blumenstingl&usb {
173*2f9139c2SMartin Blumenstingl	compatible = "amlogic,meson-gxm-usb-ctrl";
174*2f9139c2SMartin Blumenstingl
175*2f9139c2SMartin Blumenstingl	phy-names = "usb2-phy0", "usb2-phy1", "usb2-phy2";
176*2f9139c2SMartin Blumenstingl	phys = <&usb2_phy0>, <&usb2_phy1>, <&usb2_phy2>;
177458baa95SMartin Blumenstingl};
1784be247f7SMaxime Jourdan
1794be247f7SMaxime Jourdan&vdec {
1804be247f7SMaxime Jourdan	compatible = "amlogic,gxm-vdec", "amlogic,gx-vdec";
1814be247f7SMaxime Jourdan};
182