1*94c0ded7SThomas Gleixner// SPDX-License-Identifier: GPL-2.0-only
2aea1c315SMars Cheng/*
3aea1c315SMars Cheng * Copyright (c) 2016 MediaTek Inc.
4aea1c315SMars Cheng * Author: Mars.C <mars.cheng@mediatek.com>
5aea1c315SMars Cheng */
6aea1c315SMars Cheng
7aea1c315SMars Cheng#include <dt-bindings/interrupt-controller/irq.h>
8aea1c315SMars Cheng#include <dt-bindings/interrupt-controller/arm-gic.h>
9aea1c315SMars Cheng
10aea1c315SMars Cheng/ {
11aea1c315SMars Cheng	compatible = "mediatek,mt6755";
12aea1c315SMars Cheng	interrupt-parent = <&sysirq>;
13aea1c315SMars Cheng	#address-cells = <2>;
14aea1c315SMars Cheng	#size-cells = <2>;
15aea1c315SMars Cheng
16aea1c315SMars Cheng	psci {
17aea1c315SMars Cheng		compatible = "arm,psci-0.2";
18aea1c315SMars Cheng		method = "smc";
19aea1c315SMars Cheng	};
20aea1c315SMars Cheng
21aea1c315SMars Cheng	cpus {
22aea1c315SMars Cheng		#address-cells = <1>;
23aea1c315SMars Cheng		#size-cells = <0>;
24aea1c315SMars Cheng
25aea1c315SMars Cheng		cpu0: cpu@0 {
26aea1c315SMars Cheng			device_type = "cpu";
27aea1c315SMars Cheng			compatible = "arm,cortex-a53";
28aea1c315SMars Cheng			enable-method = "psci";
29aea1c315SMars Cheng			reg = <0x000>;
30aea1c315SMars Cheng		};
31aea1c315SMars Cheng
32aea1c315SMars Cheng		cpu1: cpu@1 {
33aea1c315SMars Cheng			device_type = "cpu";
34aea1c315SMars Cheng			compatible = "arm,cortex-a53";
35aea1c315SMars Cheng			enable-method = "psci";
36aea1c315SMars Cheng			reg = <0x001>;
37aea1c315SMars Cheng		};
38aea1c315SMars Cheng
39aea1c315SMars Cheng		cpu2: cpu@2 {
40aea1c315SMars Cheng			device_type = "cpu";
41aea1c315SMars Cheng			compatible = "arm,cortex-a53";
42aea1c315SMars Cheng			enable-method = "psci";
43aea1c315SMars Cheng			reg = <0x002>;
44aea1c315SMars Cheng		};
45aea1c315SMars Cheng
46aea1c315SMars Cheng		cpu3: cpu@3 {
47aea1c315SMars Cheng			device_type = "cpu";
48aea1c315SMars Cheng			compatible = "arm,cortex-a53";
49aea1c315SMars Cheng			enable-method = "psci";
50aea1c315SMars Cheng			reg = <0x003>;
51aea1c315SMars Cheng		};
52aea1c315SMars Cheng
53aea1c315SMars Cheng		cpu4: cpu@100 {
54aea1c315SMars Cheng			device_type = "cpu";
55aea1c315SMars Cheng			compatible = "arm,cortex-a53";
56aea1c315SMars Cheng			enable-method = "psci";
57aea1c315SMars Cheng			reg = <0x100>;
58aea1c315SMars Cheng		};
59aea1c315SMars Cheng
60aea1c315SMars Cheng		cpu5: cpu@101 {
61aea1c315SMars Cheng			device_type = "cpu";
62aea1c315SMars Cheng			compatible = "arm,cortex-a53";
63aea1c315SMars Cheng			enable-method = "psci";
64aea1c315SMars Cheng			reg = <0x101>;
65aea1c315SMars Cheng		};
66aea1c315SMars Cheng
67aea1c315SMars Cheng		cpu6: cpu@102 {
68aea1c315SMars Cheng			device_type = "cpu";
69aea1c315SMars Cheng			compatible = "arm,cortex-a53";
70aea1c315SMars Cheng			enable-method = "psci";
71aea1c315SMars Cheng			reg = <0x102>;
72aea1c315SMars Cheng		};
73aea1c315SMars Cheng
74aea1c315SMars Cheng		cpu7: cpu@103 {
75aea1c315SMars Cheng			device_type = "cpu";
76aea1c315SMars Cheng			compatible = "arm,cortex-a53";
77aea1c315SMars Cheng			enable-method = "psci";
78aea1c315SMars Cheng			reg = <0x103>;
79aea1c315SMars Cheng		};
80aea1c315SMars Cheng	};
81aea1c315SMars Cheng
82aea1c315SMars Cheng	uart_clk: dummy26m {
83aea1c315SMars Cheng		compatible = "fixed-clock";
84aea1c315SMars Cheng		clock-frequency = <26000000>;
85aea1c315SMars Cheng		#clock-cells = <0>;
86aea1c315SMars Cheng	};
87aea1c315SMars Cheng
88aea1c315SMars Cheng	timer {
89aea1c315SMars Cheng		compatible = "arm,armv8-timer";
90aea1c315SMars Cheng		interrupt-parent = <&gic>;
91aea1c315SMars Cheng		interrupts = <GIC_PPI 13
92aea1c315SMars Cheng			     (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
93aea1c315SMars Cheng			     <GIC_PPI 14
94aea1c315SMars Cheng			     (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
95aea1c315SMars Cheng			     <GIC_PPI 11
96aea1c315SMars Cheng			     (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
97aea1c315SMars Cheng			     <GIC_PPI 10
98aea1c315SMars Cheng			     (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
99aea1c315SMars Cheng	};
100aea1c315SMars Cheng
101aea1c315SMars Cheng	sysirq: intpol-controller@10200620 {
102aea1c315SMars Cheng		compatible = "mediatek,mt6755-sysirq",
103aea1c315SMars Cheng			     "mediatek,mt6577-sysirq";
104aea1c315SMars Cheng		interrupt-controller;
105aea1c315SMars Cheng		#interrupt-cells = <3>;
106aea1c315SMars Cheng		interrupt-parent = <&gic>;
107aea1c315SMars Cheng		reg = <0 0x10200620 0 0x20>;
108aea1c315SMars Cheng	};
109aea1c315SMars Cheng
110aea1c315SMars Cheng	gic: interrupt-controller@10231000 {
111aea1c315SMars Cheng		compatible = "arm,gic-400";
112aea1c315SMars Cheng		#interrupt-cells = <3>;
113aea1c315SMars Cheng		interrupt-parent = <&gic>;
114aea1c315SMars Cheng		interrupt-controller;
115aea1c315SMars Cheng		reg = <0 0x10231000 0 0x1000>,
116aea1c315SMars Cheng		      <0 0x10232000 0 0x2000>,
117aea1c315SMars Cheng		      <0 0x10234000 0 0x2000>,
118aea1c315SMars Cheng		      <0 0x10236000 0 0x2000>;
119aea1c315SMars Cheng	};
120aea1c315SMars Cheng
121aea1c315SMars Cheng	uart0: serial@11002000 {
122aea1c315SMars Cheng		compatible = "mediatek,mt6755-uart",
123aea1c315SMars Cheng			     "mediatek,mt6577-uart";
124aea1c315SMars Cheng		reg = <0 0x11002000 0 0x400>;
125aea1c315SMars Cheng		interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
126aea1c315SMars Cheng		clocks = <&uart_clk>;
127aea1c315SMars Cheng		status = "disabled";
128aea1c315SMars Cheng	};
129aea1c315SMars Cheng
130aea1c315SMars Cheng	uart1: serial@11003000 {
131aea1c315SMars Cheng		compatible = "mediatek,mt6755-uart",
132aea1c315SMars Cheng			     "mediatek,mt6577-uart";
133aea1c315SMars Cheng		reg = <0 0x11003000 0 0x400>;
134aea1c315SMars Cheng		interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
135aea1c315SMars Cheng		clocks = <&uart_clk>;
136aea1c315SMars Cheng		status = "disabled";
137aea1c315SMars Cheng	};
138aea1c315SMars Cheng};
139