xref: /openbmc/linux/arch/arm64/boot/dts/mediatek/mt7622.dtsi (revision d7167881e03ed89e249acb536e8462584ce48004)
1c4629c34SSean Wang/*
2c4629c34SSean Wang * Copyright (c) 2017 MediaTek Inc.
3c4629c34SSean Wang * Author: Ming Huang <ming.huang@mediatek.com>
4c4629c34SSean Wang *	   Sean Wang <sean.wang@mediatek.com>
5c4629c34SSean Wang *
6c4629c34SSean Wang * SPDX-License-Identifier: (GPL-2.0 OR MIT)
7c4629c34SSean Wang */
8c4629c34SSean Wang
9c4629c34SSean Wang#include <dt-bindings/interrupt-controller/irq.h>
10c4629c34SSean Wang#include <dt-bindings/interrupt-controller/arm-gic.h>
11*d7167881SSean Wang#include <dt-bindings/clock/mt7622-clk.h>
12*d7167881SSean Wang#include <dt-bindings/reset/mt7622-reset.h>
13c4629c34SSean Wang
14c4629c34SSean Wang/ {
15c4629c34SSean Wang	compatible = "mediatek,mt7622";
16c4629c34SSean Wang	interrupt-parent = <&sysirq>;
17c4629c34SSean Wang	#address-cells = <2>;
18c4629c34SSean Wang	#size-cells = <2>;
19c4629c34SSean Wang
20c4629c34SSean Wang	cpus {
21c4629c34SSean Wang		#address-cells = <2>;
22c4629c34SSean Wang		#size-cells = <0>;
23c4629c34SSean Wang
24c4629c34SSean Wang		cpu0: cpu@0 {
25c4629c34SSean Wang			device_type = "cpu";
26c4629c34SSean Wang			compatible = "arm,cortex-a53", "arm,armv8";
27c4629c34SSean Wang			reg = <0x0 0x0>;
28c4629c34SSean Wang			enable-method = "psci";
29c4629c34SSean Wang			clock-frequency = <1300000000>;
30c4629c34SSean Wang		};
31c4629c34SSean Wang
32c4629c34SSean Wang		cpu1: cpu@1 {
33c4629c34SSean Wang			device_type = "cpu";
34c4629c34SSean Wang			compatible = "arm,cortex-a53", "arm,armv8";
35c4629c34SSean Wang			reg = <0x0 0x1>;
36c4629c34SSean Wang			enable-method = "psci";
37c4629c34SSean Wang			clock-frequency = <1300000000>;
38c4629c34SSean Wang		};
39c4629c34SSean Wang	};
40c4629c34SSean Wang
41c4629c34SSean Wang	uart_clk: dummy25m {
42c4629c34SSean Wang		compatible = "fixed-clock";
43c4629c34SSean Wang		#clock-cells = <0>;
44c4629c34SSean Wang		clock-frequency = <25000000>;
45c4629c34SSean Wang	};
46c4629c34SSean Wang
47c4629c34SSean Wang	bus_clk: dummy280m {
48c4629c34SSean Wang		compatible = "fixed-clock";
49c4629c34SSean Wang		#clock-cells = <0>;
50c4629c34SSean Wang		clock-frequency = <280000000>;
51c4629c34SSean Wang	};
52c4629c34SSean Wang
53*d7167881SSean Wang	pwrap_clk: dummy40m {
54*d7167881SSean Wang		compatible = "fixed-clock";
55*d7167881SSean Wang		clock-frequency = <40000000>;
56*d7167881SSean Wang		#clock-cells = <0>;
57*d7167881SSean Wang	};
58*d7167881SSean Wang
59*d7167881SSean Wang	clk25m: oscillator {
60*d7167881SSean Wang		compatible = "fixed-clock";
61*d7167881SSean Wang		#clock-cells = <0>;
62*d7167881SSean Wang		clock-frequency = <25000000>;
63*d7167881SSean Wang		clock-output-names = "clkxtal";
64*d7167881SSean Wang	};
65*d7167881SSean Wang
66c4629c34SSean Wang	psci {
67c4629c34SSean Wang		compatible  = "arm,psci-0.2";
68c4629c34SSean Wang		method      = "smc";
69c4629c34SSean Wang	};
70c4629c34SSean Wang
71c4629c34SSean Wang	reserved-memory {
72c4629c34SSean Wang		#address-cells = <2>;
73c4629c34SSean Wang		#size-cells = <2>;
74c4629c34SSean Wang		ranges;
75c4629c34SSean Wang
76c4629c34SSean Wang		/* 192 KiB reserved for ARM Trusted Firmware (BL31) */
77c4629c34SSean Wang		secmon_reserved: secmon@43000000 {
78c4629c34SSean Wang			reg = <0 0x43000000 0 0x30000>;
79c4629c34SSean Wang			no-map;
80c4629c34SSean Wang		};
81c4629c34SSean Wang	};
82c4629c34SSean Wang
83c4629c34SSean Wang	timer {
84c4629c34SSean Wang		compatible = "arm,armv8-timer";
85c4629c34SSean Wang		interrupt-parent = <&gic>;
86c4629c34SSean Wang		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
87c4629c34SSean Wang			      IRQ_TYPE_LEVEL_HIGH)>,
88c4629c34SSean Wang			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) |
89c4629c34SSean Wang			      IRQ_TYPE_LEVEL_HIGH)>,
90c4629c34SSean Wang			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) |
91c4629c34SSean Wang			      IRQ_TYPE_LEVEL_HIGH)>,
92c4629c34SSean Wang			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) |
93c4629c34SSean Wang			      IRQ_TYPE_LEVEL_HIGH)>;
94c4629c34SSean Wang	};
95c4629c34SSean Wang
96*d7167881SSean Wang	infracfg: infracfg@10000000 {
97*d7167881SSean Wang		compatible = "mediatek,mt7622-infracfg",
98*d7167881SSean Wang			     "syscon";
99*d7167881SSean Wang		reg = <0 0x10000000 0 0x1000>;
100*d7167881SSean Wang		#clock-cells = <1>;
101*d7167881SSean Wang		#reset-cells = <1>;
102*d7167881SSean Wang	};
103*d7167881SSean Wang
104*d7167881SSean Wang	pericfg: pericfg@10002000 {
105*d7167881SSean Wang		compatible = "mediatek,mt7622-pericfg",
106*d7167881SSean Wang			     "syscon";
107*d7167881SSean Wang		reg = <0 0x10002000 0 0x1000>;
108*d7167881SSean Wang		#clock-cells = <1>;
109*d7167881SSean Wang		#reset-cells = <1>;
110*d7167881SSean Wang	};
111*d7167881SSean Wang
112c4629c34SSean Wang	sysirq: interrupt-controller@10200620 {
113c4629c34SSean Wang		compatible = "mediatek,mt7622-sysirq",
114c4629c34SSean Wang			     "mediatek,mt6577-sysirq";
115c4629c34SSean Wang		interrupt-controller;
116c4629c34SSean Wang		#interrupt-cells = <3>;
117c4629c34SSean Wang		interrupt-parent = <&gic>;
118c4629c34SSean Wang		reg = <0 0x10200620 0 0x20>;
119c4629c34SSean Wang	};
120c4629c34SSean Wang
121*d7167881SSean Wang	apmixedsys: apmixedsys@10209000 {
122*d7167881SSean Wang		compatible = "mediatek,mt7622-apmixedsys",
123*d7167881SSean Wang			     "syscon";
124*d7167881SSean Wang		reg = <0 0x10209000 0 0x1000>;
125*d7167881SSean Wang		#clock-cells = <1>;
126*d7167881SSean Wang	};
127*d7167881SSean Wang
128*d7167881SSean Wang	topckgen: topckgen@10210000 {
129*d7167881SSean Wang		compatible = "mediatek,mt7622-topckgen",
130*d7167881SSean Wang			     "syscon";
131*d7167881SSean Wang		reg = <0 0x10210000 0 0x1000>;
132*d7167881SSean Wang		#clock-cells = <1>;
133*d7167881SSean Wang	};
134*d7167881SSean Wang
135c4629c34SSean Wang	gic: interrupt-controller@10300000 {
136c4629c34SSean Wang		compatible = "arm,gic-400";
137c4629c34SSean Wang		interrupt-controller;
138c4629c34SSean Wang		#interrupt-cells = <3>;
139c4629c34SSean Wang		interrupt-parent = <&gic>;
140c4629c34SSean Wang		reg = <0 0x10310000 0 0x1000>,
141c4629c34SSean Wang		      <0 0x10320000 0 0x1000>,
142c4629c34SSean Wang		      <0 0x10340000 0 0x2000>,
143c4629c34SSean Wang		      <0 0x10360000 0 0x2000>;
144c4629c34SSean Wang	};
145c4629c34SSean Wang
146c4629c34SSean Wang	uart0: serial@11002000 {
147c4629c34SSean Wang		compatible = "mediatek,mt7622-uart",
148c4629c34SSean Wang			     "mediatek,mt6577-uart";
149c4629c34SSean Wang		reg = <0 0x11002000 0 0x400>;
150c4629c34SSean Wang		interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
151c4629c34SSean Wang		clocks = <&uart_clk>, <&bus_clk>;
152c4629c34SSean Wang		clock-names = "baud", "bus";
153c4629c34SSean Wang		status = "disabled";
154c4629c34SSean Wang	};
155*d7167881SSean Wang
156*d7167881SSean Wang	ssusbsys: ssusbsys@1a000000 {
157*d7167881SSean Wang		compatible = "mediatek,mt7622-ssusbsys",
158*d7167881SSean Wang			     "syscon";
159*d7167881SSean Wang		reg = <0 0x1a000000 0 0x1000>;
160*d7167881SSean Wang		#clock-cells = <1>;
161*d7167881SSean Wang		#reset-cells = <1>;
162*d7167881SSean Wang	};
163*d7167881SSean Wang
164*d7167881SSean Wang	pciesys: pciesys@1a100800 {
165*d7167881SSean Wang		compatible = "mediatek,mt7622-pciesys",
166*d7167881SSean Wang			     "syscon";
167*d7167881SSean Wang		reg = <0 0x1a100800 0 0x1000>;
168*d7167881SSean Wang		#clock-cells = <1>;
169*d7167881SSean Wang		#reset-cells = <1>;
170*d7167881SSean Wang	};
171*d7167881SSean Wang
172*d7167881SSean Wang	ethsys: syscon@1b000000 {
173*d7167881SSean Wang		compatible = "mediatek,mt7622-ethsys",
174*d7167881SSean Wang			     "syscon";
175*d7167881SSean Wang		reg = <0 0x1b000000 0 0x1000>;
176*d7167881SSean Wang		#clock-cells = <1>;
177*d7167881SSean Wang		#reset-cells = <1>;
178*d7167881SSean Wang	};
179*d7167881SSean Wang
180*d7167881SSean Wang	sgmiisys: sgmiisys@1b128000 {
181*d7167881SSean Wang		compatible = "mediatek,mt7622-sgmiisys",
182*d7167881SSean Wang			     "syscon";
183*d7167881SSean Wang		reg = <0 0x1b128000 0 0x1000>;
184*d7167881SSean Wang		#clock-cells = <1>;
185*d7167881SSean Wang	};
186c4629c34SSean Wang};
187