xref: /linux/scripts/dtc/include-prefixes/arm/mediatek/mt8135.dtsi (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Copyright (c) 2014 MediaTek Inc.
4*724ba675SRob Herring * Author: Joe.C <yingjoe.chen@mediatek.com>
5*724ba675SRob Herring *
6*724ba675SRob Herring */
7*724ba675SRob Herring
8*724ba675SRob Herring#include <dt-bindings/clock/mt8135-clk.h>
9*724ba675SRob Herring#include <dt-bindings/interrupt-controller/irq.h>
10*724ba675SRob Herring#include <dt-bindings/interrupt-controller/arm-gic.h>
11*724ba675SRob Herring#include <dt-bindings/reset/mt8135-resets.h>
12*724ba675SRob Herring#include <dt-bindings/pinctrl/mt8135-pinfunc.h>
13*724ba675SRob Herring
14*724ba675SRob Herring/ {
15*724ba675SRob Herring	#address-cells = <2>;
16*724ba675SRob Herring	#size-cells = <2>;
17*724ba675SRob Herring	compatible = "mediatek,mt8135";
18*724ba675SRob Herring	interrupt-parent = <&sysirq>;
19*724ba675SRob Herring
20*724ba675SRob Herring	cpu-map {
21*724ba675SRob Herring		cluster0 {
22*724ba675SRob Herring			core0 {
23*724ba675SRob Herring				cpu = <&cpu0>;
24*724ba675SRob Herring			};
25*724ba675SRob Herring			core1 {
26*724ba675SRob Herring				cpu = <&cpu1>;
27*724ba675SRob Herring			};
28*724ba675SRob Herring		};
29*724ba675SRob Herring
30*724ba675SRob Herring		cluster1 {
31*724ba675SRob Herring			core0 {
32*724ba675SRob Herring				cpu = <&cpu2>;
33*724ba675SRob Herring			};
34*724ba675SRob Herring			core1 {
35*724ba675SRob Herring				cpu = <&cpu3>;
36*724ba675SRob Herring			};
37*724ba675SRob Herring		};
38*724ba675SRob Herring	};
39*724ba675SRob Herring
40*724ba675SRob Herring	cpus {
41*724ba675SRob Herring		#address-cells = <1>;
42*724ba675SRob Herring		#size-cells = <0>;
43*724ba675SRob Herring		enable-method = "mediatek,mt81xx-tz-smp";
44*724ba675SRob Herring
45*724ba675SRob Herring		cpu0: cpu@0 {
46*724ba675SRob Herring			device_type = "cpu";
47*724ba675SRob Herring			compatible = "arm,cortex-a7";
48*724ba675SRob Herring			reg = <0x000>;
49*724ba675SRob Herring		};
50*724ba675SRob Herring
51*724ba675SRob Herring		cpu1: cpu@1 {
52*724ba675SRob Herring			device_type = "cpu";
53*724ba675SRob Herring			compatible = "arm,cortex-a7";
54*724ba675SRob Herring			reg = <0x001>;
55*724ba675SRob Herring		};
56*724ba675SRob Herring
57*724ba675SRob Herring		cpu2: cpu@100 {
58*724ba675SRob Herring			device_type = "cpu";
59*724ba675SRob Herring			compatible = "arm,cortex-a15";
60*724ba675SRob Herring			reg = <0x100>;
61*724ba675SRob Herring		};
62*724ba675SRob Herring
63*724ba675SRob Herring		cpu3: cpu@101 {
64*724ba675SRob Herring			device_type = "cpu";
65*724ba675SRob Herring			compatible = "arm,cortex-a15";
66*724ba675SRob Herring			reg = <0x101>;
67*724ba675SRob Herring		};
68*724ba675SRob Herring	};
69*724ba675SRob Herring
70*724ba675SRob Herring	reserved-memory {
71*724ba675SRob Herring		#address-cells = <2>;
72*724ba675SRob Herring		#size-cells = <2>;
73*724ba675SRob Herring		ranges;
74*724ba675SRob Herring
75*724ba675SRob Herring		trustzone-bootinfo@80002000 {
76*724ba675SRob Herring			compatible = "mediatek,trustzone-bootinfo";
77*724ba675SRob Herring			reg = <0 0x80002000 0 0x1000>;
78*724ba675SRob Herring		};
79*724ba675SRob Herring	};
80*724ba675SRob Herring
81*724ba675SRob Herring	clocks {
82*724ba675SRob Herring		#address-cells = <2>;
83*724ba675SRob Herring		#size-cells = <2>;
84*724ba675SRob Herring		compatible = "simple-bus";
85*724ba675SRob Herring		ranges;
86*724ba675SRob Herring
87*724ba675SRob Herring		system_clk: dummy13m {
88*724ba675SRob Herring			compatible = "fixed-clock";
89*724ba675SRob Herring			clock-frequency = <13000000>;
90*724ba675SRob Herring			#clock-cells = <0>;
91*724ba675SRob Herring		};
92*724ba675SRob Herring
93*724ba675SRob Herring		rtc_clk: dummy32k {
94*724ba675SRob Herring			compatible = "fixed-clock";
95*724ba675SRob Herring			clock-frequency = <32000>;
96*724ba675SRob Herring			#clock-cells = <0>;
97*724ba675SRob Herring		};
98*724ba675SRob Herring
99*724ba675SRob Herring		clk26m: clk26m {
100*724ba675SRob Herring			compatible = "fixed-clock";
101*724ba675SRob Herring			#clock-cells = <0>;
102*724ba675SRob Herring			clock-frequency = <26000000>;
103*724ba675SRob Herring		};
104*724ba675SRob Herring	};
105*724ba675SRob Herring
106*724ba675SRob Herring	timer {
107*724ba675SRob Herring		compatible = "arm,armv7-timer";
108*724ba675SRob Herring		interrupt-parent = <&gic>;
109*724ba675SRob Herring		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) |
110*724ba675SRob Herring					  IRQ_TYPE_LEVEL_LOW)>,
111*724ba675SRob Herring			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) |
112*724ba675SRob Herring					  IRQ_TYPE_LEVEL_LOW)>,
113*724ba675SRob Herring			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) |
114*724ba675SRob Herring					  IRQ_TYPE_LEVEL_LOW)>,
115*724ba675SRob Herring			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) |
116*724ba675SRob Herring					  IRQ_TYPE_LEVEL_LOW)>;
117*724ba675SRob Herring		clock-frequency = <13000000>;
118*724ba675SRob Herring		arm,cpu-registers-not-fw-configured;
119*724ba675SRob Herring	};
120*724ba675SRob Herring
121*724ba675SRob Herring	soc {
122*724ba675SRob Herring		#address-cells = <2>;
123*724ba675SRob Herring		#size-cells = <2>;
124*724ba675SRob Herring		compatible = "simple-bus";
125*724ba675SRob Herring		ranges;
126*724ba675SRob Herring
127*724ba675SRob Herring		topckgen: topckgen@10000000 {
128*724ba675SRob Herring			compatible = "mediatek,mt8135-topckgen";
129*724ba675SRob Herring			reg = <0 0x10000000 0 0x1000>;
130*724ba675SRob Herring			#clock-cells = <1>;
131*724ba675SRob Herring		};
132*724ba675SRob Herring
133*724ba675SRob Herring		infracfg: infracfg@10001000 {
134*724ba675SRob Herring			#reset-cells = <1>;
135*724ba675SRob Herring			#clock-cells = <1>;
136*724ba675SRob Herring			compatible = "mediatek,mt8135-infracfg", "syscon";
137*724ba675SRob Herring			reg = <0 0x10001000 0 0x1000>;
138*724ba675SRob Herring		};
139*724ba675SRob Herring
140*724ba675SRob Herring		pericfg: pericfg@10003000 {
141*724ba675SRob Herring			#reset-cells = <1>;
142*724ba675SRob Herring			#clock-cells = <1>;
143*724ba675SRob Herring			compatible = "mediatek,mt8135-pericfg", "syscon";
144*724ba675SRob Herring			reg = <0 0x10003000 0 0x1000>;
145*724ba675SRob Herring		};
146*724ba675SRob Herring
147*724ba675SRob Herring		/*
148*724ba675SRob Herring		 * Pinctrl access register at 0x10005000 and 0x1020c000 through
149*724ba675SRob Herring		 * regmap. Register 0x1000b000 is used by EINT.
150*724ba675SRob Herring		 */
151*724ba675SRob Herring		pio: pinctrl@10005000 {
152*724ba675SRob Herring			compatible = "mediatek,mt8135-pinctrl";
153*724ba675SRob Herring			reg = <0 0x1000b000 0 0x1000>;
154*724ba675SRob Herring			mediatek,pctl-regmap = <&syscfg_pctl_a &syscfg_pctl_b>;
155*724ba675SRob Herring			gpio-controller;
156*724ba675SRob Herring			#gpio-cells = <2>;
157*724ba675SRob Herring			interrupt-controller;
158*724ba675SRob Herring			#interrupt-cells = <2>;
159*724ba675SRob Herring			interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
160*724ba675SRob Herring				     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
161*724ba675SRob Herring				     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
162*724ba675SRob Herring		};
163*724ba675SRob Herring
164*724ba675SRob Herring		syscfg_pctl_a: syscfg_pctl_a@10005000 {
165*724ba675SRob Herring			compatible = "mediatek,mt8135-pctl-a-syscfg", "syscon";
166*724ba675SRob Herring			reg = <0 0x10005000 0 0x1000>;
167*724ba675SRob Herring		};
168*724ba675SRob Herring
169*724ba675SRob Herring		timer: timer@10008000 {
170*724ba675SRob Herring			compatible = "mediatek,mt8135-timer",
171*724ba675SRob Herring					"mediatek,mt6577-timer";
172*724ba675SRob Herring			reg = <0 0x10008000 0 0x80>;
173*724ba675SRob Herring			interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_LOW>;
174*724ba675SRob Herring			clocks = <&system_clk>, <&rtc_clk>;
175*724ba675SRob Herring			clock-names = "system-clk", "rtc-clk";
176*724ba675SRob Herring		};
177*724ba675SRob Herring
178*724ba675SRob Herring		pwrap: pwrap@1000f000 {
179*724ba675SRob Herring			compatible = "mediatek,mt8135-pwrap";
180*724ba675SRob Herring			reg = <0 0x1000f000 0 0x1000>,
181*724ba675SRob Herring				<0 0x11017000 0 0x1000>;
182*724ba675SRob Herring			reg-names = "pwrap", "pwrap-bridge";
183*724ba675SRob Herring			interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
184*724ba675SRob Herring			resets = <&infracfg MT8135_INFRA_PMIC_WRAP_RST>,
185*724ba675SRob Herring					<&pericfg MT8135_PERI_PWRAP_BRIDGE_SW_RST>;
186*724ba675SRob Herring			reset-names = "pwrap", "pwrap-bridge";
187*724ba675SRob Herring			clocks = <&clk26m>, <&clk26m>;
188*724ba675SRob Herring			clock-names = "spi", "wrap";
189*724ba675SRob Herring		};
190*724ba675SRob Herring
191*724ba675SRob Herring		sysirq: interrupt-controller@10200030 {
192*724ba675SRob Herring			compatible = "mediatek,mt8135-sysirq",
193*724ba675SRob Herring				     "mediatek,mt6577-sysirq";
194*724ba675SRob Herring			interrupt-controller;
195*724ba675SRob Herring			#interrupt-cells = <3>;
196*724ba675SRob Herring			interrupt-parent = <&gic>;
197*724ba675SRob Herring			reg = <0 0x10200030 0 0x1c>;
198*724ba675SRob Herring		};
199*724ba675SRob Herring
200*724ba675SRob Herring		apmixedsys: apmixedsys@10209000 {
201*724ba675SRob Herring			compatible = "mediatek,mt8135-apmixedsys";
202*724ba675SRob Herring			reg = <0 0x10209000 0 0x1000>;
203*724ba675SRob Herring			#clock-cells = <1>;
204*724ba675SRob Herring		};
205*724ba675SRob Herring
206*724ba675SRob Herring		syscfg_pctl_b: syscfg_pctl_b@1020c000 {
207*724ba675SRob Herring			compatible = "mediatek,mt8135-pctl-b-syscfg", "syscon";
208*724ba675SRob Herring			reg = <0 0x1020c000 0 0x1000>;
209*724ba675SRob Herring		};
210*724ba675SRob Herring
211*724ba675SRob Herring		gic: interrupt-controller@10211000 {
212*724ba675SRob Herring			compatible = "arm,cortex-a15-gic";
213*724ba675SRob Herring			interrupt-controller;
214*724ba675SRob Herring			#interrupt-cells = <3>;
215*724ba675SRob Herring			interrupt-parent = <&gic>;
216*724ba675SRob Herring			reg = <0 0x10211000 0 0x1000>,
217*724ba675SRob Herring			      <0 0x10212000 0 0x2000>,
218*724ba675SRob Herring			      <0 0x10214000 0 0x2000>,
219*724ba675SRob Herring			      <0 0x10216000 0 0x2000>;
220*724ba675SRob Herring		};
221*724ba675SRob Herring
222*724ba675SRob Herring		uart0: serial@11006000 {
223*724ba675SRob Herring			compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
224*724ba675SRob Herring			reg = <0 0x11006000 0 0x400>;
225*724ba675SRob Herring			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>;
226*724ba675SRob Herring			clocks = <&pericfg CLK_PERI_UART0_SEL>, <&pericfg CLK_PERI_UART0>;
227*724ba675SRob Herring			clock-names = "baud", "bus";
228*724ba675SRob Herring			status = "disabled";
229*724ba675SRob Herring		};
230*724ba675SRob Herring
231*724ba675SRob Herring		uart1: serial@11007000 {
232*724ba675SRob Herring			compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
233*724ba675SRob Herring			reg = <0 0x11007000 0 0x400>;
234*724ba675SRob Herring			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
235*724ba675SRob Herring			clocks = <&pericfg CLK_PERI_UART1_SEL>, <&pericfg CLK_PERI_UART1>;
236*724ba675SRob Herring			clock-names = "baud", "bus";
237*724ba675SRob Herring			status = "disabled";
238*724ba675SRob Herring		};
239*724ba675SRob Herring
240*724ba675SRob Herring		uart2: serial@11008000 {
241*724ba675SRob Herring			compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
242*724ba675SRob Herring			reg = <0 0x11008000 0 0x400>;
243*724ba675SRob Herring			interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>;
244*724ba675SRob Herring			clocks = <&pericfg CLK_PERI_UART2_SEL>, <&pericfg CLK_PERI_UART2>;
245*724ba675SRob Herring			clock-names = "baud", "bus";
246*724ba675SRob Herring			status = "disabled";
247*724ba675SRob Herring		};
248*724ba675SRob Herring
249*724ba675SRob Herring		uart3: serial@11009000 {
250*724ba675SRob Herring			compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
251*724ba675SRob Herring			reg = <0 0x11009000 0 0x400>;
252*724ba675SRob Herring			interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>;
253*724ba675SRob Herring			clocks = <&pericfg CLK_PERI_UART3_SEL>, <&pericfg CLK_PERI_UART3>;
254*724ba675SRob Herring			clock-names = "baud", "bus";
255*724ba675SRob Herring			status = "disabled";
256*724ba675SRob Herring		};
257*724ba675SRob Herring
258*724ba675SRob Herring	};
259*724ba675SRob Herring};
260