blob: 4538345dda04f4bfcfd2cba032fef0b5e5ad599d [file] [log] [blame]
Jim Liu147c0002022-09-27 16:45:15 +08001// SPDX-License-Identifier: GPL-2.0
2// Copyright (c) 2021 Nuvoton Technology tomer.maimon@nuvoton.com
3
4#include <dt-bindings/clock/nuvoton,npcm845-clk.h>
5#include <dt-bindings/interrupt-controller/arm-gic.h>
6#include <dt-bindings/interrupt-controller/irq.h>
Jim Liu89b26542022-11-28 10:32:44 +08007#include <dt-bindings/gpio/gpio.h>
Jim Liu147c0002022-09-27 16:45:15 +08008
9/ {
10 #address-cells = <2>;
11 #size-cells = <2>;
12 interrupt-parent = <&gic>;
13
14 soc {
15 #address-cells = <2>;
16 #size-cells = <2>;
17 compatible = "simple-bus";
18 interrupt-parent = <&gic>;
19 ranges;
20
21 gcr: system-controller@f0800000 {
22 compatible = "nuvoton,npcm845-gcr", "syscon";
23 reg = <0x0 0xf0800000 0x0 0x1000>;
24 };
25
26 gic: interrupt-controller@dfff9000 {
27 compatible = "arm,gic-400";
28 reg = <0x0 0xdfff9000 0x0 0x1000>,
29 <0x0 0xdfffa000 0x0 0x2000>,
30 <0x0 0xdfffc000 0x0 0x2000>,
31 <0x0 0xdfffe000 0x0 0x2000>;
32 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
33 #interrupt-cells = <3>;
34 interrupt-controller;
35 #address-cells = <0>;
36 ppi-partitions {
37 ppi_cluster0: interrupt-partition-0 {
38 affinity = <&cpu0 &cpu1 &cpu2 &cpu3>;
39 };
40 };
41 };
42 };
43
44 ahb {
45 #address-cells = <2>;
46 #size-cells = <2>;
47 compatible = "simple-bus";
48 interrupt-parent = <&gic>;
49 ranges;
50
51 rstc: reset-controller@f0801000 {
52 compatible = "nuvoton,npcm845-reset";
53 reg = <0x0 0xf0801000 0x0 0x78>;
54 #reset-cells = <2>;
55 nuvoton,sysgcr = <&gcr>;
56 };
57
58 clk: clock-controller@f0801000 {
59 compatible = "nuvoton,npcm845-clk";
60 #clock-cells = <1>;
61 reg = <0x0 0xf0801000 0x0 0x1000>;
62 };
63
Jim Liu89b26542022-11-28 10:32:44 +080064 sdhci0: sdhci@f0842000 {
65 compatible = "nuvoton,npcm845-sdhci";
66 reg = <0x0 0xf0842000 0x0 0x100>;
67 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
68 clocks = <&clk NPCM8XX_CLK_AHB>;
69 clock-names = "clk_mmc";
70 pinctrl-names = "default";
71 pinctrl-0 = <&mmc8_pins
72 &mmc_pins>;
73 status = "disabled";
74 };
75
76 fiu0: spi@fb000000 {
77 compatible = "nuvoton,npcm845-fiu";
78 #address-cells = <1>;
79 #size-cells = <0>;
80 reg = <0x0 0xfb000000 0x0 0x1000>,
81 <0x0 0x80000000 0x0 0x10000000>;
82 reg-names = "control", "memory";
83 clocks = <&clk NPCM8XX_CLK_SPI0>;
84 clock-names = "clk_ahb";
85 status = "disabled";
86 };
87
88 fiu1: spi@fb002000 {
89 compatible = "nuvoton,npcm845-fiu";
90 #address-cells = <1>;
91 #size-cells = <0>;
92 reg = <0x0 0xfb002000 0x0 0x1000>,
93 <0x0 0x90000000 0x0 0x4000000>;
94 reg-names = "control", "memory";
95 clocks = <&clk NPCM8XX_CLK_SPI1>;
96 clock-names = "clk_spi1";
97 pinctrl-names = "default";
98 pinctrl-0 = <&spi1_pins>;
99 status = "disabled";
100 };
101
102 fiu3: spi@c0000000 {
103 compatible = "nuvoton,npcm845-fiu";
104 #address-cells = <1>;
105 #size-cells = <0>;
106 reg = <0x0 0xc0000000 0x0 0x1000>,
107 <0x0 0xA0000000 0x0 0x20000000>;
108 reg-names = "control", "memory";
109 clocks = <&clk NPCM8XX_CLK_SPI3>;
110 clock-names = "clk_spi3";
111 pinctrl-names = "default";
112 pinctrl-0 = <&spi3_pins>;
113 status = "disabled";
114 };
115
116 fiux: spi@fb001000 {
117 compatible = "nuvoton,npcm845-fiu";
118 #address-cells = <1>;
119 #size-cells = <0>;
120 reg = <0x0 0xfb001000 0x0 0x1000>,
121 <0x0 0xf8000000 0x0 0x2000000>;
122 reg-names = "control", "memory";
123 clocks = <&clk NPCM8XX_CLK_SPIX>;
124 clock-names = "clk_ahb";
125 status = "disabled";
126 };
127
Jim Liu147c0002022-09-27 16:45:15 +0800128 apb {
129 #address-cells = <1>;
130 #size-cells = <1>;
131 compatible = "simple-bus";
132 interrupt-parent = <&gic>;
133 ranges = <0x0 0x0 0xf0000000 0x00300000>,
134 <0xfff00000 0x0 0xfff00000 0x00016000>;
135
Jim Liu89b26542022-11-28 10:32:44 +0800136 spi1: spi@201000 {
137 compatible = "nuvoton,npcm845-pspi";
138 reg = <0x201000 0x1000>;
139 pinctrl-names = "default";
140 pinctrl-0 = <&pspi_pins>;
141 #address-cells = <1>;
142 #size-cells = <0>;
143 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
144 clocks = <&clk NPCM8XX_CLK_APB5>;
145 clock-names = "clk_apb5";
146 status = "disabled";
147 };
148
Jim Liu147c0002022-09-27 16:45:15 +0800149 timer0: timer@8000 {
150 compatible = "nuvoton,npcm845-timer";
151 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
152 reg = <0x8000 0x1C>;
153 clocks = <&clk NPCM8XX_CLK_REFCLK>;
154 clock-names = "refclk";
155 };
156
157 serial0: serial@0 {
158 compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart";
159 reg = <0x0 0x1000>;
160 clocks = <&clk NPCM8XX_CLK_UART>;
161 interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
162 reg-shift = <2>;
163 status = "disabled";
164 };
165
166 serial1: serial@1000 {
167 compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart";
168 reg = <0x1000 0x1000>;
169 clocks = <&clk NPCM8XX_CLK_UART>;
170 interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
171 reg-shift = <2>;
172 status = "disabled";
173 };
174
175 serial2: serial@2000 {
176 compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart";
177 reg = <0x2000 0x1000>;
178 clocks = <&clk NPCM8XX_CLK_UART>;
179 interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
180 reg-shift = <2>;
181 status = "disabled";
182 };
183
184 serial3: serial@3000 {
185 compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart";
186 reg = <0x3000 0x1000>;
187 clocks = <&clk NPCM8XX_CLK_UART>;
188 interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
189 reg-shift = <2>;
190 status = "disabled";
191 };
192
193 serial4: serial@4000 {
194 compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart";
195 reg = <0x4000 0x1000>;
196 clocks = <&clk NPCM8XX_CLK_UART>;
197 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
198 reg-shift = <2>;
199 status = "disabled";
200 };
201
202 serial5: serial@5000 {
203 compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart";
204 reg = <0x5000 0x1000>;
205 clocks = <&clk NPCM8XX_CLK_UART>;
206 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
207 reg-shift = <2>;
208 status = "disabled";
209 };
210
211 serial6: serial@6000 {
212 compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart";
213 reg = <0x6000 0x1000>;
214 clocks = <&clk NPCM8XX_CLK_UART>;
215 interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
216 reg-shift = <2>;
217 status = "disabled";
218 };
219
220 watchdog0: watchdog@801c {
221 compatible = "nuvoton,npcm845-wdt", "nuvoton,npcm750-wdt";
222 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
223 reg = <0x801c 0x4>;
224 status = "disabled";
225 clocks = <&clk NPCM8XX_CLK_REFCLK>;
226 syscon = <&gcr>;
227 };
228
229 watchdog1: watchdog@901c {
230 compatible = "nuvoton,npcm845-wdt", "nuvoton,npcm750-wdt";
231 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
232 reg = <0x901c 0x4>;
233 status = "disabled";
234 clocks = <&clk NPCM8XX_CLK_REFCLK>;
235 syscon = <&gcr>;
236 };
237
238 watchdog2: watchdog@a01c {
239 compatible = "nuvoton,npcm845-wdt", "nuvoton,npcm750-wdt";
240 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
241 reg = <0xa01c 0x4>;
242 status = "disabled";
243 clocks = <&clk NPCM8XX_CLK_REFCLK>;
244 syscon = <&gcr>;
245 };
Jim Liu89b26542022-11-28 10:32:44 +0800246
247 i2c0: i2c@80000 {
248 compatible = "nuvoton,npcm845-i2c";
249 reg = <0x80000 0x1000>;
250 #address-cells = <1>;
251 #size-cells = <0>;
252 clocks = <&clk NPCM8XX_CLK_APB2>;
253 clock-frequency = <100000>;
254 interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
255 pinctrl-names = "default";
256 pinctrl-0 = <&smb0_pins>;
257 syscon = <&gcr>;
258 status = "disabled";
259 };
Jim Liu147c0002022-09-27 16:45:15 +0800260 };
261 };
262};