1 // SPDX-License-Identifier: (GPL-2.0+ OR X11)
3 * Copyright 2018 Icenowy Zheng <icenowy@aosc.io>
4 * Copyright 2018 Mesih Kilinc <mesihkilinc@gmail.com>
7 #include <dt-bindings/clock/suniv-ccu-f1c100s.h>
8 #include <dt-bindings/reset/suniv-ccu-f1c100s.h>
13 interrupt-parent = <&intc>;
18 compatible = "fixed-clock";
19 clock-frequency = <24000000>;
20 clock-output-names = "osc24M";
25 compatible = "fixed-clock";
26 clock-frequency = <32768>;
27 clock-output-names = "osc32k";
36 compatible = "arm,arm926ej-s";
43 compatible = "simple-bus";
48 sram-controller@1c00000 {
49 compatible = "allwinner,suniv-f1c100s-system-control",
50 "allwinner,sun4i-a10-system-control";
51 reg = <0x01c00000 0x30>;
57 compatible = "mmio-sram";
58 reg = <0x00010000 0x1000>;
61 ranges = <0 0x00010000 0x1000>;
63 otg_sram: sram-section@0 {
64 compatible = "allwinner,suniv-f1c100s-sram-d",
65 "allwinner,sun4i-a10-sram-d";
66 reg = <0x0000 0x1000>;
73 compatible = "allwinner,suniv-f1c100s-spi",
74 "allwinner,sun8i-h3-spi";
75 reg = <0x01c05000 0x1000>;
77 clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_BUS_SPI0>;
78 clock-names = "ahb", "mod";
79 resets = <&ccu RST_BUS_SPI0>;
87 compatible = "allwinner,suniv-f1c100s-spi",
88 "allwinner,sun8i-h3-spi";
89 reg = <0x01c06000 0x1000>;
91 clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_BUS_SPI1>;
92 clock-names = "ahb", "mod";
93 resets = <&ccu RST_BUS_SPI1>;
101 compatible = "allwinner,suniv-f1c100s-mmc",
102 "allwinner,sun7i-a20-mmc";
103 reg = <0x01c0f000 0x1000>;
104 clocks = <&ccu CLK_BUS_MMC0>,
106 <&ccu CLK_MMC0_OUTPUT>,
107 <&ccu CLK_MMC0_SAMPLE>;
108 clock-names = "ahb", "mmc", "output", "sample";
109 resets = <&ccu RST_BUS_MMC0>;
112 pinctrl-names = "default";
113 pinctrl-0 = <&mmc0_pins>;
115 #address-cells = <1>;
120 compatible = "allwinner,suniv-f1c100s-mmc",
121 "allwinner,sun7i-a20-mmc";
122 reg = <0x01c10000 0x1000>;
123 clocks = <&ccu CLK_BUS_MMC1>,
125 <&ccu CLK_MMC1_OUTPUT>,
126 <&ccu CLK_MMC1_SAMPLE>;
127 clock-names = "ahb", "mmc", "output", "sample";
128 resets = <&ccu RST_BUS_MMC1>;
132 #address-cells = <1>;
136 usb_otg: usb@1c13000 {
137 compatible = "allwinner,suniv-f1c100s-musb";
138 reg = <0x01c13000 0x0400>;
139 clocks = <&ccu CLK_BUS_OTG>;
140 resets = <&ccu RST_BUS_OTG>;
142 interrupt-names = "mc";
145 extcon = <&usbphy 0>;
146 allwinner,sram = <&otg_sram 1>;
150 usbphy: phy@1c13400 {
151 compatible = "allwinner,suniv-f1c100s-usb-phy";
152 reg = <0x01c13400 0x10>;
153 reg-names = "phy_ctrl";
154 clocks = <&ccu CLK_USB_PHY0>;
155 clock-names = "usb0_phy";
156 resets = <&ccu RST_USB_PHY0>;
157 reset-names = "usb0_reset";
163 compatible = "allwinner,suniv-f1c100s-ccu";
164 reg = <0x01c20000 0x400>;
165 clocks = <&osc24M>, <&osc32k>;
166 clock-names = "hosc", "losc";
171 intc: interrupt-controller@1c20400 {
172 compatible = "allwinner,suniv-f1c100s-ic";
173 reg = <0x01c20400 0x400>;
174 interrupt-controller;
175 #interrupt-cells = <1>;
178 pio: pinctrl@1c20800 {
179 compatible = "allwinner,suniv-f1c100s-pinctrl";
180 reg = <0x01c20800 0x400>;
181 interrupts = <38>, <39>, <40>;
182 clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
183 clock-names = "apb", "hosc", "losc";
185 interrupt-controller;
186 #interrupt-cells = <3>;
189 mmc0_pins: mmc0-pins {
190 pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
192 drive-strength = <30>;
196 i2c0_pd_pins: i2c0-pd-pins {
197 pins = "PD0", "PD12";
201 spi0_pc_pins: spi0-pc-pins {
202 pins = "PC0", "PC1", "PC2", "PC3";
206 uart0_pe_pins: uart0-pe-pins {
212 uart1_pa_pins: uart1-pa-pins {
219 compatible = "allwinner,suniv-f1c100s-i2c",
220 "allwinner,sun6i-a31-i2c";
221 reg = <0x01c27000 0x400>;
223 clocks = <&ccu CLK_BUS_I2C0>;
224 resets = <&ccu RST_BUS_I2C0>;
225 #address-cells = <1>;
231 compatible = "allwinner,suniv-f1c100s-i2c",
232 "allwinner,sun6i-a31-i2c";
233 reg = <0x01c27400 0x400>;
235 clocks = <&ccu CLK_BUS_I2C1>;
236 resets = <&ccu RST_BUS_I2C1>;
237 #address-cells = <1>;
243 compatible = "allwinner,suniv-f1c100s-i2c",
244 "allwinner,sun6i-a31-i2c";
245 reg = <0x01c27800 0x400>;
247 clocks = <&ccu CLK_BUS_I2C2>;
248 resets = <&ccu RST_BUS_I2C2>;
249 #address-cells = <1>;
255 compatible = "allwinner,suniv-f1c100s-timer";
256 reg = <0x01c20c00 0x90>;
257 interrupts = <13>, <14>, <15>;
261 wdt: watchdog@1c20ca0 {
262 compatible = "allwinner,suniv-f1c100s-wdt",
263 "allwinner,sun6i-a31-wdt";
264 reg = <0x01c20ca0 0x20>;
270 compatible = "allwinner,suniv-f1c100s-pwm",
271 "allwinner,sun7i-a20-pwm";
272 reg = <0x01c21000 0x400>;
279 compatible = "allwinner,suniv-f1c100s-ir",
280 "allwinner,sun6i-a31-ir";
281 reg = <0x01c22c00 0x400>;
282 clocks = <&ccu CLK_BUS_IR>, <&ccu CLK_IR>;
283 clock-names = "apb", "ir";
284 resets = <&ccu RST_BUS_IR>;
289 lradc: lradc@1c23400 {
290 compatible = "allwinner,suniv-f1c100s-lradc",
291 "allwinner,sun8i-a83t-r-lradc";
292 reg = <0x01c23400 0x400>;
297 uart0: serial@1c25000 {
298 compatible = "snps,dw-apb-uart";
299 reg = <0x01c25000 0x400>;
303 clocks = <&ccu CLK_BUS_UART0>;
304 resets = <&ccu RST_BUS_UART0>;
308 uart1: serial@1c25400 {
309 compatible = "snps,dw-apb-uart";
310 reg = <0x01c25400 0x400>;
314 clocks = <&ccu CLK_BUS_UART1>;
315 resets = <&ccu RST_BUS_UART1>;
319 uart2: serial@1c25800 {
320 compatible = "snps,dw-apb-uart";
321 reg = <0x01c25800 0x400>;
325 clocks = <&ccu CLK_BUS_UART2>;
326 resets = <&ccu RST_BUS_UART2>;