xref: /openbmc/linux/arch/arm64/boot/dts/mediatek/mt7622.dtsi (revision 3725ba3f55749987cf6f4294459dc9141255f540)
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
105d7167881SSean Wang	pericfg: pericfg@10002000 {
106d7167881SSean Wang		compatible = "mediatek,mt7622-pericfg",
107d7167881SSean Wang			     "syscon";
108d7167881SSean Wang		reg = <0 0x10002000 0 0x1000>;
109d7167881SSean Wang		#clock-cells = <1>;
110d7167881SSean Wang		#reset-cells = <1>;
111d7167881SSean Wang	};
112d7167881SSean Wang
113925bd27fSSean Wang	scpsys: scpsys@10006000 {
114925bd27fSSean Wang		compatible = "mediatek,mt7622-scpsys",
115925bd27fSSean Wang			     "syscon";
116925bd27fSSean Wang		#power-domain-cells = <1>;
117925bd27fSSean Wang		reg = <0 0x10006000 0 0x1000>;
118925bd27fSSean Wang		interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_LOW>,
119925bd27fSSean Wang			     <GIC_SPI 166 IRQ_TYPE_LEVEL_LOW>,
120925bd27fSSean Wang			     <GIC_SPI 167 IRQ_TYPE_LEVEL_LOW>,
121925bd27fSSean Wang			     <GIC_SPI 168 IRQ_TYPE_LEVEL_LOW>;
122925bd27fSSean Wang		infracfg = <&infracfg>;
123925bd27fSSean Wang		clocks = <&topckgen CLK_TOP_HIF_SEL>;
124925bd27fSSean Wang		clock-names = "hif_sel";
125925bd27fSSean Wang	};
126925bd27fSSean Wang
127c4629c34SSean Wang	sysirq: interrupt-controller@10200620 {
128c4629c34SSean Wang		compatible = "mediatek,mt7622-sysirq",
129c4629c34SSean Wang			     "mediatek,mt6577-sysirq";
130c4629c34SSean Wang		interrupt-controller;
131c4629c34SSean Wang		#interrupt-cells = <3>;
132c4629c34SSean Wang		interrupt-parent = <&gic>;
133c4629c34SSean Wang		reg = <0 0x10200620 0 0x20>;
134c4629c34SSean Wang	};
135c4629c34SSean Wang
136d7167881SSean Wang	apmixedsys: apmixedsys@10209000 {
137d7167881SSean Wang		compatible = "mediatek,mt7622-apmixedsys",
138d7167881SSean Wang			     "syscon";
139d7167881SSean Wang		reg = <0 0x10209000 0 0x1000>;
140d7167881SSean Wang		#clock-cells = <1>;
141d7167881SSean Wang	};
142d7167881SSean Wang
143d7167881SSean Wang	topckgen: topckgen@10210000 {
144d7167881SSean Wang		compatible = "mediatek,mt7622-topckgen",
145d7167881SSean Wang			     "syscon";
146d7167881SSean Wang		reg = <0 0x10210000 0 0x1000>;
147d7167881SSean Wang		#clock-cells = <1>;
148d7167881SSean Wang	};
149d7167881SSean Wang
150*3725ba3fSSean Wang	pio: pinctrl@10211000 {
151*3725ba3fSSean Wang		compatible = "mediatek,mt7622-pinctrl";
152*3725ba3fSSean Wang		reg = <0 0x10211000 0 0x1000>;
153*3725ba3fSSean Wang		gpio-controller;
154*3725ba3fSSean Wang		#gpio-cells = <2>;
155*3725ba3fSSean Wang	};
156*3725ba3fSSean Wang
157c4629c34SSean Wang	gic: interrupt-controller@10300000 {
158c4629c34SSean Wang		compatible = "arm,gic-400";
159c4629c34SSean Wang		interrupt-controller;
160c4629c34SSean Wang		#interrupt-cells = <3>;
161c4629c34SSean Wang		interrupt-parent = <&gic>;
162c4629c34SSean Wang		reg = <0 0x10310000 0 0x1000>,
163c4629c34SSean Wang		      <0 0x10320000 0 0x1000>,
164c4629c34SSean Wang		      <0 0x10340000 0 0x2000>,
165c4629c34SSean Wang		      <0 0x10360000 0 0x2000>;
166c4629c34SSean Wang	};
167c4629c34SSean Wang
168c4629c34SSean Wang	uart0: serial@11002000 {
169c4629c34SSean Wang		compatible = "mediatek,mt7622-uart",
170c4629c34SSean Wang			     "mediatek,mt6577-uart";
171c4629c34SSean Wang		reg = <0 0x11002000 0 0x400>;
172c4629c34SSean Wang		interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
173c4629c34SSean Wang		clocks = <&uart_clk>, <&bus_clk>;
174c4629c34SSean Wang		clock-names = "baud", "bus";
175c4629c34SSean Wang		status = "disabled";
176c4629c34SSean Wang	};
177d7167881SSean Wang
178d7167881SSean Wang	ssusbsys: ssusbsys@1a000000 {
179d7167881SSean Wang		compatible = "mediatek,mt7622-ssusbsys",
180d7167881SSean Wang			     "syscon";
181d7167881SSean Wang		reg = <0 0x1a000000 0 0x1000>;
182d7167881SSean Wang		#clock-cells = <1>;
183d7167881SSean Wang		#reset-cells = <1>;
184d7167881SSean Wang	};
185d7167881SSean Wang
186d7167881SSean Wang	pciesys: pciesys@1a100800 {
187d7167881SSean Wang		compatible = "mediatek,mt7622-pciesys",
188d7167881SSean Wang			     "syscon";
189d7167881SSean Wang		reg = <0 0x1a100800 0 0x1000>;
190d7167881SSean Wang		#clock-cells = <1>;
191d7167881SSean Wang		#reset-cells = <1>;
192d7167881SSean Wang	};
193d7167881SSean Wang
194d7167881SSean Wang	ethsys: syscon@1b000000 {
195d7167881SSean Wang		compatible = "mediatek,mt7622-ethsys",
196d7167881SSean Wang			     "syscon";
197d7167881SSean Wang		reg = <0 0x1b000000 0 0x1000>;
198d7167881SSean Wang		#clock-cells = <1>;
199d7167881SSean Wang		#reset-cells = <1>;
200d7167881SSean Wang	};
201d7167881SSean Wang
202d7167881SSean Wang	sgmiisys: sgmiisys@1b128000 {
203d7167881SSean Wang		compatible = "mediatek,mt7622-sgmiisys",
204d7167881SSean Wang			     "syscon";
205d7167881SSean Wang		reg = <0 0x1b128000 0 0x1000>;
206d7167881SSean Wang		#clock-cells = <1>;
207d7167881SSean Wang	};
208c4629c34SSean Wang};
209