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>;
52bb51b535SNeil Armstrong		};
53bb51b535SNeil Armstrong
54bb51b535SNeil Armstrong		cpu5: cpu@101 {
55bb51b535SNeil Armstrong			device_type = "cpu";
5631af04cdSRob Herring			compatible = "arm,cortex-a53";
57bb51b535SNeil Armstrong			reg = <0x0 0x101>;
58bb51b535SNeil Armstrong			enable-method = "psci";
59bb51b535SNeil Armstrong			next-level-cache = <&l2>;
60bd97abc0SMartin Blumenstingl			clocks = <&scpi_dvfs 1>;
61bb51b535SNeil Armstrong		};
62bb51b535SNeil Armstrong
63bb51b535SNeil Armstrong		cpu6: cpu@102 {
64bb51b535SNeil Armstrong			device_type = "cpu";
6531af04cdSRob Herring			compatible = "arm,cortex-a53";
66bb51b535SNeil Armstrong			reg = <0x0 0x102>;
67bb51b535SNeil Armstrong			enable-method = "psci";
68bb51b535SNeil Armstrong			next-level-cache = <&l2>;
69bd97abc0SMartin Blumenstingl			clocks = <&scpi_dvfs 1>;
70bb51b535SNeil Armstrong		};
71bb51b535SNeil Armstrong
72bb51b535SNeil Armstrong		cpu7: cpu@103 {
73bb51b535SNeil Armstrong			device_type = "cpu";
7431af04cdSRob Herring			compatible = "arm,cortex-a53";
75bb51b535SNeil Armstrong			reg = <0x0 0x103>;
76bb51b535SNeil Armstrong			enable-method = "psci";
77bb51b535SNeil Armstrong			next-level-cache = <&l2>;
78bd97abc0SMartin Blumenstingl			clocks = <&scpi_dvfs 1>;
79bb51b535SNeil Armstrong		};
80bb51b535SNeil Armstrong	};
81bb51b535SNeil Armstrong};
82fafdbdf7SNeil Armstrong
83458baa95SMartin Blumenstingl&apb {
84458baa95SMartin Blumenstingl	usb2_phy2: phy@78040 {
85458baa95SMartin Blumenstingl		compatible = "amlogic,meson-gxl-usb2-phy";
86458baa95SMartin Blumenstingl		#phy-cells = <0>;
87458baa95SMartin Blumenstingl		reg = <0x0 0x78040 0x0 0x20>;
88458baa95SMartin Blumenstingl		clocks = <&clkc CLKID_USB>;
89458baa95SMartin Blumenstingl		clock-names = "phy";
90458baa95SMartin Blumenstingl		resets = <&reset RESET_USB_OTG>;
91458baa95SMartin Blumenstingl		reset-names = "phy";
92458baa95SMartin Blumenstingl		status = "okay";
93458baa95SMartin Blumenstingl	};
9411f8e119SChristian Hewitt
9511f8e119SChristian Hewitt	mali: gpu@c0000 {
9611f8e119SChristian Hewitt		compatible = "amlogic,meson-gxm-mali", "arm,mali-t820";
9711f8e119SChristian Hewitt		reg = <0x0 0xc0000 0x0 0x40000>;
9811f8e119SChristian Hewitt		interrupt-parent = <&gic>;
9911f8e119SChristian Hewitt		interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
10011f8e119SChristian Hewitt			     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
10111f8e119SChristian Hewitt			     <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
10211f8e119SChristian Hewitt		interrupt-names = "gpu", "mmu", "job";
10311f8e119SChristian Hewitt		clocks = <&clkc CLKID_MALI>;
10411f8e119SChristian Hewitt		resets = <&reset RESET_MALI_CAPB3>, <&reset RESET_MALI>;
10511f8e119SChristian Hewitt
10611f8e119SChristian Hewitt		/*
10711f8e119SChristian Hewitt		 * Mali clocking is provided by two identical clock paths
10811f8e119SChristian Hewitt		 * MALI_0 and MALI_1 muxed to a single clock by a glitch
10911f8e119SChristian Hewitt		 * free mux to safely change frequency while running.
11011f8e119SChristian Hewitt		 */
11111f8e119SChristian Hewitt		assigned-clocks = <&clkc CLKID_MALI_0_SEL>,
11211f8e119SChristian Hewitt				  <&clkc CLKID_MALI_0>,
11311f8e119SChristian Hewitt				  <&clkc CLKID_MALI>; /* Glitch free mux */
11411f8e119SChristian Hewitt		assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
11511f8e119SChristian Hewitt					 <0>, /* Do Nothing */
11611f8e119SChristian Hewitt					 <&clkc CLKID_MALI_0>;
11711f8e119SChristian Hewitt		assigned-clock-rates = <0>, /* Do Nothing */
11811f8e119SChristian Hewitt				       <666666666>,
11911f8e119SChristian Hewitt				       <0>; /* Do Nothing */
12011f8e119SChristian Hewitt	};
121458baa95SMartin Blumenstingl};
122458baa95SMartin Blumenstingl
1237fd2c355SNeil Armstrong&clkc_AO {
1247fd2c355SNeil Armstrong	compatible = "amlogic,meson-gxm-aoclkc", "amlogic,meson-gx-aoclkc";
1257fd2c355SNeil Armstrong};
1267fd2c355SNeil Armstrong
127bd80ef5eSMartin Blumenstingl&saradc {
128bd80ef5eSMartin Blumenstingl	compatible = "amlogic,meson-gxm-saradc", "amlogic,meson-saradc";
129bd80ef5eSMartin Blumenstingl};
130bd80ef5eSMartin Blumenstingl
131bd97abc0SMartin Blumenstingl&scpi_dvfs {
132bd97abc0SMartin Blumenstingl	clock-indices = <0 1>;
133bd97abc0SMartin Blumenstingl	clock-output-names = "vbig", "vlittle";
134bd97abc0SMartin Blumenstingl};
135bd97abc0SMartin Blumenstingl
136fafdbdf7SNeil Armstrong&vpu {
137fafdbdf7SNeil Armstrong	compatible = "amlogic,meson-gxm-vpu", "amlogic,meson-gx-vpu";
138fafdbdf7SNeil Armstrong};
139bd97abc0SMartin Blumenstingl
1406939db7eSNeil Armstrong&hdmi_tx {
1416939db7eSNeil Armstrong	compatible = "amlogic,meson-gxm-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
1426939db7eSNeil Armstrong};
143458baa95SMartin Blumenstingl
144458baa95SMartin Blumenstingl&dwc3 {
145458baa95SMartin Blumenstingl	phys = <&usb3_phy>, <&usb2_phy0>, <&usb2_phy1>, <&usb2_phy2>;
146458baa95SMartin Blumenstingl};
147