1464c510fSMars Cheng/*
2464c510fSMars Cheng * Copyright (c) 2017 MediaTek Inc.
3464c510fSMars Cheng * Author: Mars.C <mars.cheng@mediatek.com>
4464c510fSMars Cheng *
5464c510fSMars Cheng * This program is free software; you can redistribute it and/or modify
6464c510fSMars Cheng * it under the terms of the GNU General Public License version 2 as
7464c510fSMars Cheng * published by the Free Software Foundation.
8464c510fSMars Cheng *
9464c510fSMars Cheng * This program is distributed in the hope that it will be useful,
10464c510fSMars Cheng * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11464c510fSMars Cheng * GNU General Public License for more details.
12464c510fSMars Cheng */
13464c510fSMars Cheng
14464c510fSMars Cheng#include <dt-bindings/interrupt-controller/irq.h>
15464c510fSMars Cheng#include <dt-bindings/interrupt-controller/arm-gic.h>
16464c510fSMars Cheng
17464c510fSMars Cheng/ {
18464c510fSMars Cheng	compatible = "mediatek,mt6797";
19464c510fSMars Cheng	interrupt-parent = <&sysirq>;
20464c510fSMars Cheng	#address-cells = <2>;
21464c510fSMars Cheng	#size-cells = <2>;
22464c510fSMars Cheng
23464c510fSMars Cheng	psci {
24464c510fSMars Cheng		compatible = "arm,psci-0.2";
25464c510fSMars Cheng		method = "smc";
26464c510fSMars Cheng	};
27464c510fSMars Cheng
28464c510fSMars Cheng	cpus {
29464c510fSMars Cheng		#address-cells = <1>;
30464c510fSMars Cheng		#size-cells = <0>;
31464c510fSMars Cheng
32464c510fSMars Cheng		cpu0: cpu@0 {
33464c510fSMars Cheng			device_type = "cpu";
34464c510fSMars Cheng			compatible = "arm,cortex-a53";
35464c510fSMars Cheng			enable-method = "psci";
36464c510fSMars Cheng			reg = <0x000>;
37464c510fSMars Cheng		};
38464c510fSMars Cheng
39464c510fSMars Cheng		cpu1: cpu@1 {
40464c510fSMars Cheng			device_type = "cpu";
41464c510fSMars Cheng			compatible = "arm,cortex-a53";
42464c510fSMars Cheng			enable-method = "psci";
43464c510fSMars Cheng			reg = <0x001>;
44464c510fSMars Cheng		};
45464c510fSMars Cheng
46464c510fSMars Cheng		cpu2: cpu@2 {
47464c510fSMars Cheng			device_type = "cpu";
48464c510fSMars Cheng			compatible = "arm,cortex-a53";
49464c510fSMars Cheng			enable-method = "psci";
50464c510fSMars Cheng			reg = <0x002>;
51464c510fSMars Cheng		};
52464c510fSMars Cheng
53464c510fSMars Cheng		cpu3: cpu@3 {
54464c510fSMars Cheng			device_type = "cpu";
55464c510fSMars Cheng			compatible = "arm,cortex-a53";
56464c510fSMars Cheng			enable-method = "psci";
57464c510fSMars Cheng			reg = <0x003>;
58464c510fSMars Cheng		};
59464c510fSMars Cheng
60464c510fSMars Cheng		cpu4: cpu@100 {
61464c510fSMars Cheng			device_type = "cpu";
62464c510fSMars Cheng			compatible = "arm,cortex-a53";
63464c510fSMars Cheng			enable-method = "psci";
64464c510fSMars Cheng			reg = <0x100>;
65464c510fSMars Cheng		};
66464c510fSMars Cheng
67464c510fSMars Cheng		cpu5: cpu@101 {
68464c510fSMars Cheng			device_type = "cpu";
69464c510fSMars Cheng			compatible = "arm,cortex-a53";
70464c510fSMars Cheng			enable-method = "psci";
71464c510fSMars Cheng			reg = <0x101>;
72464c510fSMars Cheng		};
73464c510fSMars Cheng
74464c510fSMars Cheng		cpu6: cpu@102 {
75464c510fSMars Cheng			device_type = "cpu";
76464c510fSMars Cheng			compatible = "arm,cortex-a53";
77464c510fSMars Cheng			enable-method = "psci";
78464c510fSMars Cheng			reg = <0x102>;
79464c510fSMars Cheng		};
80464c510fSMars Cheng
81464c510fSMars Cheng		cpu7: cpu@103 {
82464c510fSMars Cheng			device_type = "cpu";
83464c510fSMars Cheng			compatible = "arm,cortex-a53";
84464c510fSMars Cheng			enable-method = "psci";
85464c510fSMars Cheng			reg = <0x103>;
86464c510fSMars Cheng		};
87464c510fSMars Cheng
88464c510fSMars Cheng		cpu8: cpu@200 {
89464c510fSMars Cheng			device_type = "cpu";
90464c510fSMars Cheng			compatible = "arm,cortex-a72";
91464c510fSMars Cheng			enable-method = "psci";
92464c510fSMars Cheng			reg = <0x200>;
93464c510fSMars Cheng		};
94464c510fSMars Cheng
95464c510fSMars Cheng		cpu9: cpu@201 {
96464c510fSMars Cheng			device_type = "cpu";
97464c510fSMars Cheng			compatible = "arm,cortex-a72";
98464c510fSMars Cheng			enable-method = "psci";
99464c510fSMars Cheng			reg = <0x201>;
100464c510fSMars Cheng		};
101464c510fSMars Cheng	};
102464c510fSMars Cheng
103464c510fSMars Cheng	clk26m: oscillator@0 {
104464c510fSMars Cheng		compatible = "fixed-clock";
105464c510fSMars Cheng		#clock-cells = <0>;
106464c510fSMars Cheng		clock-frequency = <26000000>;
107464c510fSMars Cheng		clock-output-names = "clk26m";
108464c510fSMars Cheng	};
109464c510fSMars Cheng
110464c510fSMars Cheng	clk32k: oscillator@1 {
111464c510fSMars Cheng		compatible = "fixed-clock";
112464c510fSMars Cheng		#clock-cells = <0>;
113464c510fSMars Cheng		clock-frequency = <32000>;
114464c510fSMars Cheng		clock-output-names = "clk32k";
115464c510fSMars Cheng	};
116464c510fSMars Cheng
117464c510fSMars Cheng	timer {
118464c510fSMars Cheng		compatible = "arm,armv8-timer";
119464c510fSMars Cheng		interrupt-parent = <&gic>;
120464c510fSMars Cheng		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
121464c510fSMars Cheng			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
122464c510fSMars Cheng			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
123464c510fSMars Cheng			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
124464c510fSMars Cheng	};
125464c510fSMars Cheng
126464c510fSMars Cheng	sysirq: intpol-controller@10200620 {
127464c510fSMars Cheng		compatible = "mediatek,mt6797-sysirq",
128464c510fSMars Cheng			     "mediatek,mt6577-sysirq";
129464c510fSMars Cheng		interrupt-controller;
130464c510fSMars Cheng		#interrupt-cells = <3>;
131464c510fSMars Cheng		interrupt-parent = <&gic>;
132464c510fSMars Cheng		reg = <0 0x10220620 0 0x20>,
133464c510fSMars Cheng		      <0 0x10220690 0 0x10>;
134464c510fSMars Cheng	};
135464c510fSMars Cheng
136464c510fSMars Cheng	uart0: serial@11002000 {
137464c510fSMars Cheng		compatible = "mediatek,mt6797-uart",
138464c510fSMars Cheng			     "mediatek,mt6577-uart";
139464c510fSMars Cheng		reg = <0 0x11002000 0 0x400>;
140464c510fSMars Cheng		interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
141464c510fSMars Cheng		clocks = <&clk26m>;
142464c510fSMars Cheng		status = "disabled";
143464c510fSMars Cheng	};
144464c510fSMars Cheng
145464c510fSMars Cheng	uart1: serial@11003000 {
146464c510fSMars Cheng		compatible = "mediatek,mt6797-uart",
147464c510fSMars Cheng			     "mediatek,mt6577-uart";
148464c510fSMars Cheng		reg = <0 0x11003000 0 0x400>;
149464c510fSMars Cheng		interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
150464c510fSMars Cheng		clocks = <&clk26m>;
151464c510fSMars Cheng		status = "disabled";
152464c510fSMars Cheng	};
153464c510fSMars Cheng
154464c510fSMars Cheng	uart2: serial@11004000 {
155464c510fSMars Cheng		compatible = "mediatek,mt6797-uart",
156464c510fSMars Cheng			     "mediatek,mt6577-uart";
157464c510fSMars Cheng		reg = <0 0x11004000 0 0x400>;
158464c510fSMars Cheng		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
159464c510fSMars Cheng		clocks = <&clk26m>;
160464c510fSMars Cheng		status = "disabled";
161464c510fSMars Cheng	};
162464c510fSMars Cheng
163464c510fSMars Cheng	uart3: serial@11005000 {
164464c510fSMars Cheng		compatible = "mediatek,mt6797-uart",
165464c510fSMars Cheng			     "mediatek,mt6577-uart";
166464c510fSMars Cheng		reg = <0 0x11005000 0 0x400>;
167464c510fSMars Cheng		interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_LOW>;
168464c510fSMars Cheng		clocks = <&clk26m>;
169464c510fSMars Cheng		status = "disabled";
170464c510fSMars Cheng	};
171464c510fSMars Cheng
172464c510fSMars Cheng	gic: interrupt-controller@19000000 {
173464c510fSMars Cheng		compatible = "arm,gic-v3";
174464c510fSMars Cheng		#interrupt-cells = <3>;
175464c510fSMars Cheng		interrupt-parent = <&gic>;
176464c510fSMars Cheng		interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
177464c510fSMars Cheng		interrupt-controller;
178464c510fSMars Cheng		reg = <0 0x19000000 0 0x10000>,    /* GICD */
179464c510fSMars Cheng		      <0 0x19200000 0 0x200000>,   /* GICR */
180464c510fSMars Cheng		      <0 0x10240000 0 0x2000>;     /* GICC */
181464c510fSMars Cheng	};
182464c510fSMars Cheng};
183