blob: 9455d27e516eeeeeeded4d263b3fe7dac52f57af [file] [log] [blame]
Icenowy Zhengce2b6c42022-01-29 10:23:08 -05001// SPDX-License-Identifier: (GPL-2.0+ OR X11)
2/*
3 * Copyright 2018 Icenowy Zheng <icenowy@aosc.io>
4 * Copyright 2018 Mesih Kilinc <mesihkilinc@gmail.com>
5 */
6
Andre Przywarad037e792022-04-26 01:15:25 +01007#include <dt-bindings/clock/suniv-ccu-f1c100s.h>
8#include <dt-bindings/reset/suniv-ccu-f1c100s.h>
9
Icenowy Zhengce2b6c42022-01-29 10:23:08 -050010/ {
11 #address-cells = <1>;
12 #size-cells = <1>;
13 interrupt-parent = <&intc>;
14
15 clocks {
16 osc24M: clk-24M {
17 #clock-cells = <0>;
18 compatible = "fixed-clock";
19 clock-frequency = <24000000>;
20 clock-output-names = "osc24M";
21 };
22
23 osc32k: clk-32k {
24 #clock-cells = <0>;
25 compatible = "fixed-clock";
26 clock-frequency = <32768>;
27 clock-output-names = "osc32k";
28 };
29 };
30
31 cpus {
Andre Przywarad037e792022-04-26 01:15:25 +010032 #address-cells = <1>;
33 #size-cells = <0>;
34
35 cpu@0 {
Icenowy Zhengce2b6c42022-01-29 10:23:08 -050036 compatible = "arm,arm926ej-s";
37 device_type = "cpu";
Andre Przywarad037e792022-04-26 01:15:25 +010038 reg = <0x0>;
Icenowy Zhengce2b6c42022-01-29 10:23:08 -050039 };
40 };
41
42 soc {
43 compatible = "simple-bus";
44 #address-cells = <1>;
45 #size-cells = <1>;
46 ranges;
47
48 sram-controller@1c00000 {
49 compatible = "allwinner,suniv-f1c100s-system-control",
50 "allwinner,sun4i-a10-system-control";
51 reg = <0x01c00000 0x30>;
52 #address-cells = <1>;
53 #size-cells = <1>;
54 ranges;
55
56 sram_d: sram@10000 {
57 compatible = "mmio-sram";
58 reg = <0x00010000 0x1000>;
59 #address-cells = <1>;
60 #size-cells = <1>;
61 ranges = <0 0x00010000 0x1000>;
62
63 otg_sram: sram-section@0 {
64 compatible = "allwinner,suniv-f1c100s-sram-d",
65 "allwinner,sun4i-a10-sram-d";
66 reg = <0x0000 0x1000>;
67 status = "disabled";
68 };
69 };
70 };
71
Andre Przywarad037e792022-04-26 01:15:25 +010072 spi0: spi@1c05000 {
73 compatible = "allwinner,suniv-f1c100s-spi",
74 "allwinner,sun8i-h3-spi";
75 reg = <0x01c05000 0x1000>;
76 interrupts = <10>;
77 clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_BUS_SPI0>;
78 clock-names = "ahb", "mod";
79 resets = <&ccu RST_BUS_SPI0>;
80 status = "disabled";
81 num-cs = <1>;
82 #address-cells = <1>;
83 #size-cells = <0>;
84 };
85
86 spi1: spi@1c06000 {
87 compatible = "allwinner,suniv-f1c100s-spi",
88 "allwinner,sun8i-h3-spi";
89 reg = <0x01c06000 0x1000>;
90 interrupts = <11>;
91 clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_BUS_SPI1>;
92 clock-names = "ahb", "mod";
93 resets = <&ccu RST_BUS_SPI1>;
94 status = "disabled";
95 num-cs = <1>;
96 #address-cells = <1>;
97 #size-cells = <0>;
98 };
99
100 mmc0: mmc@1c0f000 {
101 compatible = "allwinner,suniv-f1c100s-mmc",
102 "allwinner,sun7i-a20-mmc";
103 reg = <0x01c0f000 0x1000>;
104 clocks = <&ccu CLK_BUS_MMC0>,
105 <&ccu CLK_MMC0>,
106 <&ccu CLK_MMC0_OUTPUT>,
107 <&ccu CLK_MMC0_SAMPLE>;
108 clock-names = "ahb", "mmc", "output", "sample";
109 resets = <&ccu RST_BUS_MMC0>;
110 reset-names = "ahb";
111 interrupts = <23>;
112 pinctrl-names = "default";
113 pinctrl-0 = <&mmc0_pins>;
114 status = "disabled";
115 #address-cells = <1>;
116 #size-cells = <0>;
117 };
118
119 mmc1: mmc@1c10000 {
120 compatible = "allwinner,suniv-f1c100s-mmc",
121 "allwinner,sun7i-a20-mmc";
122 reg = <0x01c10000 0x1000>;
123 clocks = <&ccu CLK_BUS_MMC1>,
124 <&ccu CLK_MMC1>,
125 <&ccu CLK_MMC1_OUTPUT>,
126 <&ccu CLK_MMC1_SAMPLE>;
127 clock-names = "ahb", "mmc", "output", "sample";
128 resets = <&ccu RST_BUS_MMC1>;
129 reset-names = "ahb";
130 interrupts = <24>;
131 status = "disabled";
132 #address-cells = <1>;
133 #size-cells = <0>;
134 };
135
Icenowy Zhengce2b6c42022-01-29 10:23:08 -0500136 ccu: clock@1c20000 {
137 compatible = "allwinner,suniv-f1c100s-ccu";
138 reg = <0x01c20000 0x400>;
139 clocks = <&osc24M>, <&osc32k>;
140 clock-names = "hosc", "losc";
141 #clock-cells = <1>;
142 #reset-cells = <1>;
143 };
144
145 intc: interrupt-controller@1c20400 {
146 compatible = "allwinner,suniv-f1c100s-ic";
147 reg = <0x01c20400 0x400>;
148 interrupt-controller;
149 #interrupt-cells = <1>;
150 };
151
152 pio: pinctrl@1c20800 {
153 compatible = "allwinner,suniv-f1c100s-pinctrl";
154 reg = <0x01c20800 0x400>;
155 interrupts = <38>, <39>, <40>;
Andre Przywarad037e792022-04-26 01:15:25 +0100156 clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
Icenowy Zhengce2b6c42022-01-29 10:23:08 -0500157 clock-names = "apb", "hosc", "losc";
158 gpio-controller;
159 interrupt-controller;
160 #interrupt-cells = <3>;
161 #gpio-cells = <3>;
162
Andre Przywarad037e792022-04-26 01:15:25 +0100163 mmc0_pins: mmc0-pins {
164 pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
165 function = "mmc0";
166 drive-strength = <30>;
167 };
168
Andre Przywara6621cc82023-01-12 11:18:05 +0000169 /omit-if-no-ref/
170 i2c0_pd_pins: i2c0-pd-pins {
171 pins = "PD0", "PD12";
172 function = "i2c0";
173 };
174
Andre Przywarad037e792022-04-26 01:15:25 +0100175 spi0_pc_pins: spi0-pc-pins {
176 pins = "PC0", "PC1", "PC2", "PC3";
177 function = "spi0";
178 };
179
Icenowy Zhengce2b6c42022-01-29 10:23:08 -0500180 uart0_pe_pins: uart0-pe-pins {
181 pins = "PE0", "PE1";
182 function = "uart0";
183 };
184 };
185
Andre Przywara6621cc82023-01-12 11:18:05 +0000186 i2c0: i2c@1c27000 {
187 compatible = "allwinner,suniv-f1c100s-i2c",
188 "allwinner,sun6i-a31-i2c";
189 reg = <0x01c27000 0x400>;
190 interrupts = <7>;
191 clocks = <&ccu CLK_BUS_I2C0>;
192 resets = <&ccu RST_BUS_I2C0>;
193 #address-cells = <1>;
194 #size-cells = <0>;
195 status = "disabled";
196 };
197
198 i2c1: i2c@1c27400 {
199 compatible = "allwinner,suniv-f1c100s-i2c",
200 "allwinner,sun6i-a31-i2c";
201 reg = <0x01c27400 0x400>;
202 interrupts = <8>;
203 clocks = <&ccu CLK_BUS_I2C1>;
204 resets = <&ccu RST_BUS_I2C1>;
205 #address-cells = <1>;
206 #size-cells = <0>;
207 status = "disabled";
208 };
209
210 i2c2: i2c@1c27800 {
211 compatible = "allwinner,suniv-f1c100s-i2c",
212 "allwinner,sun6i-a31-i2c";
213 reg = <0x01c27800 0x400>;
214 interrupts = <9>;
215 clocks = <&ccu CLK_BUS_I2C2>;
216 resets = <&ccu RST_BUS_I2C2>;
217 #address-cells = <1>;
218 #size-cells = <0>;
219 status = "disabled";
220 };
221
Icenowy Zhengce2b6c42022-01-29 10:23:08 -0500222 timer@1c20c00 {
223 compatible = "allwinner,suniv-f1c100s-timer";
224 reg = <0x01c20c00 0x90>;
Andre Przywarad037e792022-04-26 01:15:25 +0100225 interrupts = <13>, <14>, <15>;
Icenowy Zhengce2b6c42022-01-29 10:23:08 -0500226 clocks = <&osc24M>;
227 };
228
229 wdt: watchdog@1c20ca0 {
230 compatible = "allwinner,suniv-f1c100s-wdt",
Andre Przywarad037e792022-04-26 01:15:25 +0100231 "allwinner,sun6i-a31-wdt";
Icenowy Zhengce2b6c42022-01-29 10:23:08 -0500232 reg = <0x01c20ca0 0x20>;
Andre Przywarad037e792022-04-26 01:15:25 +0100233 interrupts = <16>;
234 clocks = <&osc32k>;
Icenowy Zhengce2b6c42022-01-29 10:23:08 -0500235 };
236
Andre Przywara6621cc82023-01-12 11:18:05 +0000237 pwm: pwm@1c21000 {
238 compatible = "allwinner,suniv-f1c100s-pwm",
239 "allwinner,sun7i-a20-pwm";
240 reg = <0x01c21000 0x400>;
241 clocks = <&osc24M>;
242 #pwm-cells = <3>;
243 status = "disabled";
244 };
245
246 ir: ir@1c22c00 {
247 compatible = "allwinner,suniv-f1c100s-ir",
248 "allwinner,sun6i-a31-ir";
249 reg = <0x01c22c00 0x400>;
250 clocks = <&ccu CLK_BUS_IR>, <&ccu CLK_IR>;
251 clock-names = "apb", "ir";
252 resets = <&ccu RST_BUS_IR>;
253 interrupts = <6>;
254 status = "disabled";
255 };
256
257 lradc: lradc@1c23400 {
258 compatible = "allwinner,suniv-f1c100s-lradc",
259 "allwinner,sun8i-a83t-r-lradc";
260 reg = <0x01c23400 0x400>;
261 interrupts = <22>;
262 status = "disabled";
263 };
264
Icenowy Zhengce2b6c42022-01-29 10:23:08 -0500265 uart0: serial@1c25000 {
266 compatible = "snps,dw-apb-uart";
267 reg = <0x01c25000 0x400>;
268 interrupts = <1>;
269 reg-shift = <2>;
270 reg-io-width = <4>;
Andre Przywarad037e792022-04-26 01:15:25 +0100271 clocks = <&ccu CLK_BUS_UART0>;
272 resets = <&ccu RST_BUS_UART0>;
Icenowy Zhengce2b6c42022-01-29 10:23:08 -0500273 status = "disabled";
274 };
275
276 uart1: serial@1c25400 {
277 compatible = "snps,dw-apb-uart";
278 reg = <0x01c25400 0x400>;
279 interrupts = <2>;
280 reg-shift = <2>;
281 reg-io-width = <4>;
Andre Przywarad037e792022-04-26 01:15:25 +0100282 clocks = <&ccu CLK_BUS_UART1>;
283 resets = <&ccu RST_BUS_UART1>;
Icenowy Zhengce2b6c42022-01-29 10:23:08 -0500284 status = "disabled";
285 };
286
287 uart2: serial@1c25800 {
288 compatible = "snps,dw-apb-uart";
289 reg = <0x01c25800 0x400>;
290 interrupts = <3>;
291 reg-shift = <2>;
292 reg-io-width = <4>;
Andre Przywarad037e792022-04-26 01:15:25 +0100293 clocks = <&ccu CLK_BUS_UART2>;
294 resets = <&ccu RST_BUS_UART2>;
Icenowy Zhengce2b6c42022-01-29 10:23:08 -0500295 status = "disabled";
296 };
297 };
298};