diff options
author | Icenowy Zheng <icenowy@aosc.io> | 2018-03-16 10:02:14 -0400 |
---|---|---|
committer | Maxime Ripard <maxime.ripard@bootlin.com> | 2018-03-19 17:12:21 -0400 |
commit | e54be32d0273e1b3a9b8c77c59b5c4ad73d21884 (patch) | |
tree | cc9a4af296e9c581207a8d49c5bbdc5cf2b3b727 | |
parent | b75cb68d83fd55584b96380a2274de59bb1e6406 (diff) |
arm64: allwinner: h6: add the basical Allwinner H6 DTSI file
Allwinner H6 is a new SoC with Cortex-A53 cores from Allwinner, with its
memory map fully reworked and some high-speed peripherals (PCIe, USB
3.0) introduced.
This commit adds the basical DTSI file of it, including the clock
support and UART support.
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
-rw-r--r-- | arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi new file mode 100644 index 000000000000..56563150d61a --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | |||
@@ -0,0 +1,175 @@ | |||
1 | // SPDX-License-Identifier: (GPL-2.0+ or MIT) | ||
2 | /* | ||
3 | * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io> | ||
4 | */ | ||
5 | |||
6 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
7 | |||
8 | / { | ||
9 | interrupt-parent = <&gic>; | ||
10 | #address-cells = <1>; | ||
11 | #size-cells = <1>; | ||
12 | |||
13 | cpus { | ||
14 | #address-cells = <1>; | ||
15 | #size-cells = <0>; | ||
16 | |||
17 | cpu0: cpu@0 { | ||
18 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
19 | device_type = "cpu"; | ||
20 | reg = <0>; | ||
21 | enable-method = "psci"; | ||
22 | }; | ||
23 | |||
24 | cpu1: cpu@1 { | ||
25 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
26 | device_type = "cpu"; | ||
27 | reg = <1>; | ||
28 | enable-method = "psci"; | ||
29 | }; | ||
30 | |||
31 | cpu2: cpu@2 { | ||
32 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
33 | device_type = "cpu"; | ||
34 | reg = <2>; | ||
35 | enable-method = "psci"; | ||
36 | }; | ||
37 | |||
38 | cpu3: cpu@3 { | ||
39 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
40 | device_type = "cpu"; | ||
41 | reg = <3>; | ||
42 | enable-method = "psci"; | ||
43 | }; | ||
44 | }; | ||
45 | |||
46 | iosc: internal-osc-clk { | ||
47 | #clock-cells = <0>; | ||
48 | compatible = "fixed-clock"; | ||
49 | clock-frequency = <16000000>; | ||
50 | clock-accuracy = <300000000>; | ||
51 | clock-output-names = "iosc"; | ||
52 | }; | ||
53 | |||
54 | osc24M: osc24M_clk { | ||
55 | #clock-cells = <0>; | ||
56 | compatible = "fixed-clock"; | ||
57 | clock-frequency = <24000000>; | ||
58 | clock-output-names = "osc24M"; | ||
59 | }; | ||
60 | |||
61 | osc32k: osc32k_clk { | ||
62 | #clock-cells = <0>; | ||
63 | compatible = "fixed-clock"; | ||
64 | clock-frequency = <32768>; | ||
65 | clock-output-names = "osc32k"; | ||
66 | }; | ||
67 | |||
68 | psci { | ||
69 | compatible = "arm,psci-0.2"; | ||
70 | method = "smc"; | ||
71 | }; | ||
72 | |||
73 | timer { | ||
74 | compatible = "arm,armv8-timer"; | ||
75 | interrupts = <GIC_PPI 13 | ||
76 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, | ||
77 | <GIC_PPI 14 | ||
78 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, | ||
79 | <GIC_PPI 11 | ||
80 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, | ||
81 | <GIC_PPI 10 | ||
82 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; | ||
83 | }; | ||
84 | |||
85 | soc { | ||
86 | compatible = "simple-bus"; | ||
87 | #address-cells = <1>; | ||
88 | #size-cells = <1>; | ||
89 | ranges; | ||
90 | |||
91 | ccu: clock@3001000 { | ||
92 | compatible = "allwinner,sun50i-h6-ccu"; | ||
93 | reg = <0x03001000 0x1000>; | ||
94 | clocks = <&osc24M>, <&osc32k>, <&iosc>; | ||
95 | clock-names = "hosc", "losc", "iosc"; | ||
96 | #clock-cells = <1>; | ||
97 | #reset-cells = <1>; | ||
98 | }; | ||
99 | |||
100 | gic: interrupt-controller@3021000 { | ||
101 | compatible = "arm,gic-400"; | ||
102 | reg = <0x03021000 0x1000>, | ||
103 | <0x03022000 0x2000>, | ||
104 | <0x03024000 0x2000>, | ||
105 | <0x03026000 0x2000>; | ||
106 | interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; | ||
107 | interrupt-controller; | ||
108 | #interrupt-cells = <3>; | ||
109 | }; | ||
110 | |||
111 | pio: pinctrl@300b000 { | ||
112 | compatible = "allwinner,sun50i-h6-pinctrl"; | ||
113 | reg = <0x0300b000 0x400>; | ||
114 | interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, | ||
115 | <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, | ||
116 | <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, | ||
117 | <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; | ||
118 | clocks = <&ccu 26>, <&osc24M>, <&osc32k>; | ||
119 | clock-names = "apb", "hosc", "losc"; | ||
120 | gpio-controller; | ||
121 | #gpio-cells = <3>; | ||
122 | interrupt-controller; | ||
123 | #interrupt-cells = <3>; | ||
124 | |||
125 | uart0_ph_pins: uart0-ph { | ||
126 | pins = "PH0", "PH1"; | ||
127 | function = "uart0"; | ||
128 | }; | ||
129 | }; | ||
130 | |||
131 | uart0: serial@5000000 { | ||
132 | compatible = "snps,dw-apb-uart"; | ||
133 | reg = <0x05000000 0x400>; | ||
134 | interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; | ||
135 | reg-shift = <2>; | ||
136 | reg-io-width = <4>; | ||
137 | clocks = <&ccu 70>; | ||
138 | resets = <&ccu 21>; | ||
139 | status = "disabled"; | ||
140 | }; | ||
141 | |||
142 | uart1: serial@5000400 { | ||
143 | compatible = "snps,dw-apb-uart"; | ||
144 | reg = <0x05000400 0x400>; | ||
145 | interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; | ||
146 | reg-shift = <2>; | ||
147 | reg-io-width = <4>; | ||
148 | clocks = <&ccu 71>; | ||
149 | resets = <&ccu 22>; | ||
150 | status = "disabled"; | ||
151 | }; | ||
152 | |||
153 | uart2: serial@5000800 { | ||
154 | compatible = "snps,dw-apb-uart"; | ||
155 | reg = <0x05000800 0x400>; | ||
156 | interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; | ||
157 | reg-shift = <2>; | ||
158 | reg-io-width = <4>; | ||
159 | clocks = <&ccu 72>; | ||
160 | resets = <&ccu 23>; | ||
161 | status = "disabled"; | ||
162 | }; | ||
163 | |||
164 | uart3: serial@5000c00 { | ||
165 | compatible = "snps,dw-apb-uart"; | ||
166 | reg = <0x05000c00 0x400>; | ||
167 | interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; | ||
168 | reg-shift = <2>; | ||
169 | reg-io-width = <4>; | ||
170 | clocks = <&ccu 73>; | ||
171 | resets = <&ccu 24>; | ||
172 | status = "disabled"; | ||
173 | }; | ||
174 | }; | ||
175 | }; | ||