xref: /openbmc/linux/arch/arm64/boot/dts/mediatek/mt7622.dtsi (revision c4ff2adeb1be343545770df165acb2cc9513ac9a)
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>
11d7167881SSean Wang#include <dt-bindings/clock/mt7622-clk.h>
12925bd27fSSean Wang#include <dt-bindings/power/mt7622-power.h>
13d7167881SSean Wang#include <dt-bindings/reset/mt7622-reset.h>
14c4629c34SSean Wang
15c4629c34SSean Wang/ {
16c4629c34SSean Wang	compatible = "mediatek,mt7622";
17c4629c34SSean Wang	interrupt-parent = <&sysirq>;
18c4629c34SSean Wang	#address-cells = <2>;
19c4629c34SSean Wang	#size-cells = <2>;
20c4629c34SSean Wang
21c4629c34SSean Wang	cpus {
22c4629c34SSean Wang		#address-cells = <2>;
23c4629c34SSean Wang		#size-cells = <0>;
24c4629c34SSean Wang
25c4629c34SSean Wang		cpu0: cpu@0 {
26c4629c34SSean Wang			device_type = "cpu";
27c4629c34SSean Wang			compatible = "arm,cortex-a53", "arm,armv8";
28c4629c34SSean Wang			reg = <0x0 0x0>;
29c4629c34SSean Wang			enable-method = "psci";
30c4629c34SSean Wang			clock-frequency = <1300000000>;
31c4629c34SSean Wang		};
32c4629c34SSean Wang
33c4629c34SSean Wang		cpu1: cpu@1 {
34c4629c34SSean Wang			device_type = "cpu";
35c4629c34SSean Wang			compatible = "arm,cortex-a53", "arm,armv8";
36c4629c34SSean Wang			reg = <0x0 0x1>;
37c4629c34SSean Wang			enable-method = "psci";
38c4629c34SSean Wang			clock-frequency = <1300000000>;
39c4629c34SSean Wang		};
40c4629c34SSean Wang	};
41c4629c34SSean Wang
42c4629c34SSean Wang	uart_clk: dummy25m {
43c4629c34SSean Wang		compatible = "fixed-clock";
44c4629c34SSean Wang		#clock-cells = <0>;
45c4629c34SSean Wang		clock-frequency = <25000000>;
46c4629c34SSean Wang	};
47c4629c34SSean Wang
48c4629c34SSean Wang	bus_clk: dummy280m {
49c4629c34SSean Wang		compatible = "fixed-clock";
50c4629c34SSean Wang		#clock-cells = <0>;
51c4629c34SSean Wang		clock-frequency = <280000000>;
52c4629c34SSean Wang	};
53c4629c34SSean Wang
54d7167881SSean Wang	pwrap_clk: dummy40m {
55d7167881SSean Wang		compatible = "fixed-clock";
56d7167881SSean Wang		clock-frequency = <40000000>;
57d7167881SSean Wang		#clock-cells = <0>;
58d7167881SSean Wang	};
59d7167881SSean Wang
60d7167881SSean Wang	clk25m: oscillator {
61d7167881SSean Wang		compatible = "fixed-clock";
62d7167881SSean Wang		#clock-cells = <0>;
63d7167881SSean Wang		clock-frequency = <25000000>;
64d7167881SSean Wang		clock-output-names = "clkxtal";
65d7167881SSean Wang	};
66d7167881SSean Wang
67c4629c34SSean Wang	psci {
68c4629c34SSean Wang		compatible  = "arm,psci-0.2";
69c4629c34SSean Wang		method      = "smc";
70c4629c34SSean Wang	};
71c4629c34SSean Wang
72c4629c34SSean Wang	reserved-memory {
73c4629c34SSean Wang		#address-cells = <2>;
74c4629c34SSean Wang		#size-cells = <2>;
75c4629c34SSean Wang		ranges;
76c4629c34SSean Wang
77c4629c34SSean Wang		/* 192 KiB reserved for ARM Trusted Firmware (BL31) */
78c4629c34SSean Wang		secmon_reserved: secmon@43000000 {
79c4629c34SSean Wang			reg = <0 0x43000000 0 0x30000>;
80c4629c34SSean Wang			no-map;
81c4629c34SSean Wang		};
82c4629c34SSean Wang	};
83c4629c34SSean Wang
84c4629c34SSean Wang	timer {
85c4629c34SSean Wang		compatible = "arm,armv8-timer";
86c4629c34SSean Wang		interrupt-parent = <&gic>;
87c4629c34SSean Wang		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
88c4629c34SSean Wang			      IRQ_TYPE_LEVEL_HIGH)>,
89c4629c34SSean Wang			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) |
90c4629c34SSean Wang			      IRQ_TYPE_LEVEL_HIGH)>,
91c4629c34SSean Wang			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) |
92c4629c34SSean Wang			      IRQ_TYPE_LEVEL_HIGH)>,
93c4629c34SSean Wang			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) |
94c4629c34SSean Wang			      IRQ_TYPE_LEVEL_HIGH)>;
95c4629c34SSean Wang	};
96c4629c34SSean Wang
97d7167881SSean Wang	infracfg: infracfg@10000000 {
98d7167881SSean Wang		compatible = "mediatek,mt7622-infracfg",
99d7167881SSean Wang			     "syscon";
100d7167881SSean Wang		reg = <0 0x10000000 0 0x1000>;
101d7167881SSean Wang		#clock-cells = <1>;
102d7167881SSean Wang		#reset-cells = <1>;
103d7167881SSean Wang	};
104d7167881SSean Wang
105*c4ff2adeSSean Wang	pwrap: pwrap@10001000 {
106*c4ff2adeSSean Wang		compatible = "mediatek,mt7622-pwrap";
107*c4ff2adeSSean Wang		reg = <0 0x10001000 0 0x250>;
108*c4ff2adeSSean Wang		reg-names = "pwrap";
109*c4ff2adeSSean Wang		clocks = <&infracfg CLK_INFRA_PMIC_PD>, <&pwrap_clk>;
110*c4ff2adeSSean Wang		clock-names = "spi", "wrap";
111*c4ff2adeSSean Wang		resets = <&infracfg MT7622_INFRA_PMIC_WRAP_RST>;
112*c4ff2adeSSean Wang		reset-names = "pwrap";
113*c4ff2adeSSean Wang		interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
114*c4ff2adeSSean Wang		status = "disabled";
115*c4ff2adeSSean Wang	};
116*c4ff2adeSSean Wang
117d7167881SSean Wang	pericfg: pericfg@10002000 {
118d7167881SSean Wang		compatible = "mediatek,mt7622-pericfg",
119d7167881SSean Wang			     "syscon";
120d7167881SSean Wang		reg = <0 0x10002000 0 0x1000>;
121d7167881SSean Wang		#clock-cells = <1>;
122d7167881SSean Wang		#reset-cells = <1>;
123d7167881SSean Wang	};
124d7167881SSean Wang
125925bd27fSSean Wang	scpsys: scpsys@10006000 {
126925bd27fSSean Wang		compatible = "mediatek,mt7622-scpsys",
127925bd27fSSean Wang			     "syscon";
128925bd27fSSean Wang		#power-domain-cells = <1>;
129925bd27fSSean Wang		reg = <0 0x10006000 0 0x1000>;
130925bd27fSSean Wang		interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_LOW>,
131925bd27fSSean Wang			     <GIC_SPI 166 IRQ_TYPE_LEVEL_LOW>,
132925bd27fSSean Wang			     <GIC_SPI 167 IRQ_TYPE_LEVEL_LOW>,
133925bd27fSSean Wang			     <GIC_SPI 168 IRQ_TYPE_LEVEL_LOW>;
134925bd27fSSean Wang		infracfg = <&infracfg>;
135925bd27fSSean Wang		clocks = <&topckgen CLK_TOP_HIF_SEL>;
136925bd27fSSean Wang		clock-names = "hif_sel";
137925bd27fSSean Wang	};
138925bd27fSSean Wang
139c4629c34SSean Wang	sysirq: interrupt-controller@10200620 {
140c4629c34SSean Wang		compatible = "mediatek,mt7622-sysirq",
141c4629c34SSean Wang			     "mediatek,mt6577-sysirq";
142c4629c34SSean Wang		interrupt-controller;
143c4629c34SSean Wang		#interrupt-cells = <3>;
144c4629c34SSean Wang		interrupt-parent = <&gic>;
145c4629c34SSean Wang		reg = <0 0x10200620 0 0x20>;
146c4629c34SSean Wang	};
147c4629c34SSean Wang
148d7167881SSean Wang	apmixedsys: apmixedsys@10209000 {
149d7167881SSean Wang		compatible = "mediatek,mt7622-apmixedsys",
150d7167881SSean Wang			     "syscon";
151d7167881SSean Wang		reg = <0 0x10209000 0 0x1000>;
152d7167881SSean Wang		#clock-cells = <1>;
153d7167881SSean Wang	};
154d7167881SSean Wang
155d7167881SSean Wang	topckgen: topckgen@10210000 {
156d7167881SSean Wang		compatible = "mediatek,mt7622-topckgen",
157d7167881SSean Wang			     "syscon";
158d7167881SSean Wang		reg = <0 0x10210000 0 0x1000>;
159d7167881SSean Wang		#clock-cells = <1>;
160d7167881SSean Wang	};
161d7167881SSean Wang
1623725ba3fSSean Wang	pio: pinctrl@10211000 {
1633725ba3fSSean Wang		compatible = "mediatek,mt7622-pinctrl";
1643725ba3fSSean Wang		reg = <0 0x10211000 0 0x1000>;
1653725ba3fSSean Wang		gpio-controller;
1663725ba3fSSean Wang		#gpio-cells = <2>;
1673725ba3fSSean Wang	};
1683725ba3fSSean Wang
169c4629c34SSean Wang	gic: interrupt-controller@10300000 {
170c4629c34SSean Wang		compatible = "arm,gic-400";
171c4629c34SSean Wang		interrupt-controller;
172c4629c34SSean Wang		#interrupt-cells = <3>;
173c4629c34SSean Wang		interrupt-parent = <&gic>;
174c4629c34SSean Wang		reg = <0 0x10310000 0 0x1000>,
175c4629c34SSean Wang		      <0 0x10320000 0 0x1000>,
176c4629c34SSean Wang		      <0 0x10340000 0 0x2000>,
177c4629c34SSean Wang		      <0 0x10360000 0 0x2000>;
178c4629c34SSean Wang	};
179c4629c34SSean Wang
180c4629c34SSean Wang	uart0: serial@11002000 {
181c4629c34SSean Wang		compatible = "mediatek,mt7622-uart",
182c4629c34SSean Wang			     "mediatek,mt6577-uart";
183c4629c34SSean Wang		reg = <0 0x11002000 0 0x400>;
184c4629c34SSean Wang		interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
185c4629c34SSean Wang		clocks = <&uart_clk>, <&bus_clk>;
186c4629c34SSean Wang		clock-names = "baud", "bus";
187c4629c34SSean Wang		status = "disabled";
188c4629c34SSean Wang	};
189d7167881SSean Wang
190d7167881SSean Wang	ssusbsys: ssusbsys@1a000000 {
191d7167881SSean Wang		compatible = "mediatek,mt7622-ssusbsys",
192d7167881SSean Wang			     "syscon";
193d7167881SSean Wang		reg = <0 0x1a000000 0 0x1000>;
194d7167881SSean Wang		#clock-cells = <1>;
195d7167881SSean Wang		#reset-cells = <1>;
196d7167881SSean Wang	};
197d7167881SSean Wang
198d7167881SSean Wang	pciesys: pciesys@1a100800 {
199d7167881SSean Wang		compatible = "mediatek,mt7622-pciesys",
200d7167881SSean Wang			     "syscon";
201d7167881SSean Wang		reg = <0 0x1a100800 0 0x1000>;
202d7167881SSean Wang		#clock-cells = <1>;
203d7167881SSean Wang		#reset-cells = <1>;
204d7167881SSean Wang	};
205d7167881SSean Wang
206d7167881SSean Wang	ethsys: syscon@1b000000 {
207d7167881SSean Wang		compatible = "mediatek,mt7622-ethsys",
208d7167881SSean Wang			     "syscon";
209d7167881SSean Wang		reg = <0 0x1b000000 0 0x1000>;
210d7167881SSean Wang		#clock-cells = <1>;
211d7167881SSean Wang		#reset-cells = <1>;
212d7167881SSean Wang	};
213d7167881SSean Wang
214d7167881SSean Wang	sgmiisys: sgmiisys@1b128000 {
215d7167881SSean Wang		compatible = "mediatek,mt7622-sgmiisys",
216d7167881SSean Wang			     "syscon";
217d7167881SSean Wang		reg = <0 0x1b128000 0 0x1000>;
218d7167881SSean Wang		#clock-cells = <1>;
219d7167881SSean Wang	};
220c4629c34SSean Wang};
221