xref: /linux/arch/arm/boot/dts/allwinner/suniv-f1c100s.dtsi (revision 1260ed77798502de9c98020040d2995008de10cc)
14ba16d17SMesih Kilinc// SPDX-License-Identifier: (GPL-2.0+ OR X11)
24ba16d17SMesih Kilinc/*
34ba16d17SMesih Kilinc * Copyright 2018 Icenowy Zheng <icenowy@aosc.io>
44ba16d17SMesih Kilinc * Copyright 2018 Mesih Kilinc <mesihkilinc@gmail.com>
54ba16d17SMesih Kilinc */
64ba16d17SMesih Kilinc
71aba2af5SJesse Taube#include <dt-bindings/clock/suniv-ccu-f1c100s.h>
81aba2af5SJesse Taube#include <dt-bindings/reset/suniv-ccu-f1c100s.h>
97336701fSMesih Kilinc#include <dt-bindings/dma/sun4i-a10.h>
101aba2af5SJesse Taube
114ba16d17SMesih Kilinc/ {
124ba16d17SMesih Kilinc	#address-cells = <1>;
134ba16d17SMesih Kilinc	#size-cells = <1>;
144ba16d17SMesih Kilinc	interrupt-parent = <&intc>;
154ba16d17SMesih Kilinc
164ba16d17SMesih Kilinc	clocks {
174ba16d17SMesih Kilinc		osc24M: clk-24M {
184ba16d17SMesih Kilinc			#clock-cells = <0>;
194ba16d17SMesih Kilinc			compatible = "fixed-clock";
204ba16d17SMesih Kilinc			clock-frequency = <24000000>;
214ba16d17SMesih Kilinc			clock-output-names = "osc24M";
224ba16d17SMesih Kilinc		};
234ba16d17SMesih Kilinc
244ba16d17SMesih Kilinc		osc32k: clk-32k {
254ba16d17SMesih Kilinc			#clock-cells = <0>;
264ba16d17SMesih Kilinc			compatible = "fixed-clock";
274ba16d17SMesih Kilinc			clock-frequency = <32768>;
284ba16d17SMesih Kilinc			clock-output-names = "osc32k";
294ba16d17SMesih Kilinc		};
304ba16d17SMesih Kilinc	};
314ba16d17SMesih Kilinc
324ba16d17SMesih Kilinc	cpus {
33a6d9efb6SAndre Przywara		#address-cells = <1>;
34a6d9efb6SAndre Przywara		#size-cells = <0>;
35a6d9efb6SAndre Przywara
36a6d9efb6SAndre Przywara		cpu@0 {
374ba16d17SMesih Kilinc			compatible = "arm,arm926ej-s";
384ba16d17SMesih Kilinc			device_type = "cpu";
39a6d9efb6SAndre Przywara			reg = <0x0>;
404ba16d17SMesih Kilinc		};
414ba16d17SMesih Kilinc	};
424ba16d17SMesih Kilinc
434ba16d17SMesih Kilinc	soc {
444ba16d17SMesih Kilinc		compatible = "simple-bus";
454ba16d17SMesih Kilinc		#address-cells = <1>;
464ba16d17SMesih Kilinc		#size-cells = <1>;
474ba16d17SMesih Kilinc		ranges;
484ba16d17SMesih Kilinc
494ba16d17SMesih Kilinc		sram-controller@1c00000 {
504ba16d17SMesih Kilinc			compatible = "allwinner,suniv-f1c100s-system-control",
514ba16d17SMesih Kilinc				     "allwinner,sun4i-a10-system-control";
524ba16d17SMesih Kilinc			reg = <0x01c00000 0x30>;
534ba16d17SMesih Kilinc			#address-cells = <1>;
544ba16d17SMesih Kilinc			#size-cells = <1>;
554ba16d17SMesih Kilinc			ranges;
564ba16d17SMesih Kilinc
574ba16d17SMesih Kilinc			sram_d: sram@10000 {
584ba16d17SMesih Kilinc				compatible = "mmio-sram";
594ba16d17SMesih Kilinc				reg = <0x00010000 0x1000>;
604ba16d17SMesih Kilinc				#address-cells = <1>;
614ba16d17SMesih Kilinc				#size-cells = <1>;
624ba16d17SMesih Kilinc				ranges = <0 0x00010000 0x1000>;
634ba16d17SMesih Kilinc
644ba16d17SMesih Kilinc				otg_sram: sram-section@0 {
654ba16d17SMesih Kilinc					compatible = "allwinner,suniv-f1c100s-sram-d",
664ba16d17SMesih Kilinc						     "allwinner,sun4i-a10-sram-d";
674ba16d17SMesih Kilinc					reg = <0x0000 0x1000>;
684ba16d17SMesih Kilinc					status = "disabled";
694ba16d17SMesih Kilinc				};
704ba16d17SMesih Kilinc			};
714ba16d17SMesih Kilinc		};
724ba16d17SMesih Kilinc
73335f5750SAndre Przywara		spi0: spi@1c05000 {
74335f5750SAndre Przywara			compatible = "allwinner,suniv-f1c100s-spi",
75335f5750SAndre Przywara				     "allwinner,sun8i-h3-spi";
76335f5750SAndre Przywara			reg = <0x01c05000 0x1000>;
77335f5750SAndre Przywara			interrupts = <10>;
78335f5750SAndre Przywara			clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_BUS_SPI0>;
79335f5750SAndre Przywara			clock-names = "ahb", "mod";
80335f5750SAndre Przywara			resets = <&ccu RST_BUS_SPI0>;
81335f5750SAndre Przywara			status = "disabled";
82335f5750SAndre Przywara			num-cs = <1>;
83335f5750SAndre Przywara			#address-cells = <1>;
84335f5750SAndre Przywara			#size-cells = <0>;
85335f5750SAndre Przywara		};
86335f5750SAndre Przywara
87335f5750SAndre Przywara		spi1: spi@1c06000 {
88335f5750SAndre Przywara			compatible = "allwinner,suniv-f1c100s-spi",
89335f5750SAndre Przywara				     "allwinner,sun8i-h3-spi";
90335f5750SAndre Przywara			reg = <0x01c06000 0x1000>;
91335f5750SAndre Przywara			interrupts = <11>;
92335f5750SAndre Przywara			clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_BUS_SPI1>;
93335f5750SAndre Przywara			clock-names = "ahb", "mod";
94335f5750SAndre Przywara			resets = <&ccu RST_BUS_SPI1>;
95335f5750SAndre Przywara			status = "disabled";
96335f5750SAndre Przywara			num-cs = <1>;
97335f5750SAndre Przywara			#address-cells = <1>;
98335f5750SAndre Przywara			#size-cells = <0>;
99335f5750SAndre Przywara		};
100335f5750SAndre Przywara
101a672a3f2SJesse Taube		mmc0: mmc@1c0f000 {
102a672a3f2SJesse Taube			compatible = "allwinner,suniv-f1c100s-mmc",
103a672a3f2SJesse Taube				     "allwinner,sun7i-a20-mmc";
104a672a3f2SJesse Taube			reg = <0x01c0f000 0x1000>;
105a672a3f2SJesse Taube			clocks = <&ccu CLK_BUS_MMC0>,
106a672a3f2SJesse Taube				 <&ccu CLK_MMC0>,
107a672a3f2SJesse Taube				 <&ccu CLK_MMC0_OUTPUT>,
108a672a3f2SJesse Taube				 <&ccu CLK_MMC0_SAMPLE>;
109a672a3f2SJesse Taube			clock-names = "ahb", "mmc", "output", "sample";
110a672a3f2SJesse Taube			resets = <&ccu RST_BUS_MMC0>;
111a672a3f2SJesse Taube			reset-names = "ahb";
112a672a3f2SJesse Taube			interrupts = <23>;
113a672a3f2SJesse Taube			pinctrl-names = "default";
114a672a3f2SJesse Taube			pinctrl-0 = <&mmc0_pins>;
115a672a3f2SJesse Taube			status = "disabled";
116a672a3f2SJesse Taube			#address-cells = <1>;
117a672a3f2SJesse Taube			#size-cells = <0>;
118a672a3f2SJesse Taube		};
119a672a3f2SJesse Taube
120a672a3f2SJesse Taube		mmc1: mmc@1c10000 {
121a672a3f2SJesse Taube			compatible = "allwinner,suniv-f1c100s-mmc",
122a672a3f2SJesse Taube				     "allwinner,sun7i-a20-mmc";
123a672a3f2SJesse Taube			reg = <0x01c10000 0x1000>;
124a672a3f2SJesse Taube			clocks = <&ccu CLK_BUS_MMC1>,
125a672a3f2SJesse Taube				 <&ccu CLK_MMC1>,
126a672a3f2SJesse Taube				 <&ccu CLK_MMC1_OUTPUT>,
127a672a3f2SJesse Taube				 <&ccu CLK_MMC1_SAMPLE>;
128a672a3f2SJesse Taube			clock-names = "ahb", "mmc", "output", "sample";
129a672a3f2SJesse Taube			resets = <&ccu RST_BUS_MMC1>;
130a672a3f2SJesse Taube			reset-names = "ahb";
131a672a3f2SJesse Taube			interrupts = <24>;
132a672a3f2SJesse Taube			status = "disabled";
133a672a3f2SJesse Taube			#address-cells = <1>;
134a672a3f2SJesse Taube			#size-cells = <0>;
135a672a3f2SJesse Taube		};
136a672a3f2SJesse Taube
137f23ba46eSIcenowy Zheng		usb_otg: usb@1c13000 {
138f23ba46eSIcenowy Zheng			compatible = "allwinner,suniv-f1c100s-musb";
139f23ba46eSIcenowy Zheng			reg = <0x01c13000 0x0400>;
140f23ba46eSIcenowy Zheng			clocks = <&ccu CLK_BUS_OTG>;
141f23ba46eSIcenowy Zheng			resets = <&ccu RST_BUS_OTG>;
142f23ba46eSIcenowy Zheng			interrupts = <26>;
143f23ba46eSIcenowy Zheng			interrupt-names = "mc";
144f23ba46eSIcenowy Zheng			phys = <&usbphy 0>;
145f23ba46eSIcenowy Zheng			phy-names = "usb";
146f23ba46eSIcenowy Zheng			extcon = <&usbphy 0>;
147f23ba46eSIcenowy Zheng			allwinner,sram = <&otg_sram 1>;
148f23ba46eSIcenowy Zheng			status = "disabled";
149f23ba46eSIcenowy Zheng		};
150f23ba46eSIcenowy Zheng
151f23ba46eSIcenowy Zheng		usbphy: phy@1c13400 {
152f23ba46eSIcenowy Zheng			compatible = "allwinner,suniv-f1c100s-usb-phy";
153f23ba46eSIcenowy Zheng			reg = <0x01c13400 0x10>;
154f23ba46eSIcenowy Zheng			reg-names = "phy_ctrl";
155f23ba46eSIcenowy Zheng			clocks = <&ccu CLK_USB_PHY0>;
156f23ba46eSIcenowy Zheng			clock-names = "usb0_phy";
157f23ba46eSIcenowy Zheng			resets = <&ccu RST_USB_PHY0>;
158f23ba46eSIcenowy Zheng			reset-names = "usb0_reset";
159f23ba46eSIcenowy Zheng			#phy-cells = <1>;
160f23ba46eSIcenowy Zheng			status = "disabled";
161f23ba46eSIcenowy Zheng		};
162f23ba46eSIcenowy Zheng
1637336701fSMesih Kilinc		dma: dma-controller@1c02000 {
1647336701fSMesih Kilinc			compatible = "allwinner,suniv-f1c100s-dma";
1657336701fSMesih Kilinc			reg = <0x01c02000 0x1000>;
1667336701fSMesih Kilinc			interrupts = <18>;
1677336701fSMesih Kilinc			clocks = <&ccu CLK_BUS_DMA>;
1687336701fSMesih Kilinc			resets = <&ccu RST_BUS_DMA>;
1697336701fSMesih Kilinc			#dma-cells = <2>;
1707336701fSMesih Kilinc		};
1717336701fSMesih Kilinc
1724ba16d17SMesih Kilinc		ccu: clock@1c20000 {
1734ba16d17SMesih Kilinc			compatible = "allwinner,suniv-f1c100s-ccu";
1744ba16d17SMesih Kilinc			reg = <0x01c20000 0x400>;
1754ba16d17SMesih Kilinc			clocks = <&osc24M>, <&osc32k>;
1764ba16d17SMesih Kilinc			clock-names = "hosc", "losc";
1774ba16d17SMesih Kilinc			#clock-cells = <1>;
1784ba16d17SMesih Kilinc			#reset-cells = <1>;
1794ba16d17SMesih Kilinc		};
1804ba16d17SMesih Kilinc
1814ba16d17SMesih Kilinc		intc: interrupt-controller@1c20400 {
1824ba16d17SMesih Kilinc			compatible = "allwinner,suniv-f1c100s-ic";
1834ba16d17SMesih Kilinc			reg = <0x01c20400 0x400>;
1844ba16d17SMesih Kilinc			interrupt-controller;
1854ba16d17SMesih Kilinc			#interrupt-cells = <1>;
1864ba16d17SMesih Kilinc		};
1874ba16d17SMesih Kilinc
1884ba16d17SMesih Kilinc		pio: pinctrl@1c20800 {
1894ba16d17SMesih Kilinc			compatible = "allwinner,suniv-f1c100s-pinctrl";
1904ba16d17SMesih Kilinc			reg = <0x01c20800 0x400>;
1914ba16d17SMesih Kilinc			interrupts = <38>, <39>, <40>;
1921aba2af5SJesse Taube			clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
1934ba16d17SMesih Kilinc			clock-names = "apb", "hosc", "losc";
1944ba16d17SMesih Kilinc			gpio-controller;
1954ba16d17SMesih Kilinc			interrupt-controller;
1964ba16d17SMesih Kilinc			#interrupt-cells = <3>;
1974ba16d17SMesih Kilinc			#gpio-cells = <3>;
1984ba16d17SMesih Kilinc
199a672a3f2SJesse Taube			mmc0_pins: mmc0-pins {
200a672a3f2SJesse Taube				pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
201a672a3f2SJesse Taube				function = "mmc0";
202a672a3f2SJesse Taube				drive-strength = <30>;
203a672a3f2SJesse Taube			};
204a672a3f2SJesse Taube
20516245374SAndre Przywara			/omit-if-no-ref/
20616245374SAndre Przywara			i2c0_pd_pins: i2c0-pd-pins {
20716245374SAndre Przywara				pins = "PD0", "PD12";
20816245374SAndre Przywara				function = "i2c0";
20916245374SAndre Przywara			};
21016245374SAndre Przywara
211335f5750SAndre Przywara			spi0_pc_pins: spi0-pc-pins {
212335f5750SAndre Przywara				pins = "PC0", "PC1", "PC2", "PC3";
213335f5750SAndre Przywara				function = "spi0";
214335f5750SAndre Przywara			};
215335f5750SAndre Przywara
2164ba16d17SMesih Kilinc			uart0_pe_pins: uart0-pe-pins {
2174ba16d17SMesih Kilinc				pins = "PE0", "PE1";
2184ba16d17SMesih Kilinc				function = "uart0";
2194ba16d17SMesih Kilinc			};
220cc185861SAndre Przywara
221cc185861SAndre Przywara			/omit-if-no-ref/
222cc185861SAndre Przywara			uart1_pa_pins: uart1-pa-pins {
223cc185861SAndre Przywara				pins = "PA2", "PA3";
224cc185861SAndre Przywara				function = "uart1";
225cc185861SAndre Przywara			};
2264ba16d17SMesih Kilinc		};
2274ba16d17SMesih Kilinc
22816245374SAndre Przywara		i2c0: i2c@1c27000 {
22916245374SAndre Przywara			compatible = "allwinner,suniv-f1c100s-i2c",
23016245374SAndre Przywara				     "allwinner,sun6i-a31-i2c";
23116245374SAndre Przywara			reg = <0x01c27000 0x400>;
23216245374SAndre Przywara			interrupts = <7>;
23316245374SAndre Przywara			clocks = <&ccu CLK_BUS_I2C0>;
23416245374SAndre Przywara			resets = <&ccu RST_BUS_I2C0>;
23516245374SAndre Przywara			#address-cells = <1>;
23616245374SAndre Przywara			#size-cells = <0>;
23716245374SAndre Przywara			status = "disabled";
23816245374SAndre Przywara		};
23916245374SAndre Przywara
24016245374SAndre Przywara		i2c1: i2c@1c27400 {
24116245374SAndre Przywara			compatible = "allwinner,suniv-f1c100s-i2c",
24216245374SAndre Przywara				     "allwinner,sun6i-a31-i2c";
24316245374SAndre Przywara			reg = <0x01c27400 0x400>;
24416245374SAndre Przywara			interrupts = <8>;
24516245374SAndre Przywara			clocks = <&ccu CLK_BUS_I2C1>;
24616245374SAndre Przywara			resets = <&ccu RST_BUS_I2C1>;
24716245374SAndre Przywara			#address-cells = <1>;
24816245374SAndre Przywara			#size-cells = <0>;
24916245374SAndre Przywara			status = "disabled";
25016245374SAndre Przywara		};
25116245374SAndre Przywara
25216245374SAndre Przywara		i2c2: i2c@1c27800 {
25316245374SAndre Przywara			compatible = "allwinner,suniv-f1c100s-i2c",
25416245374SAndre Przywara				     "allwinner,sun6i-a31-i2c";
25516245374SAndre Przywara			reg = <0x01c27800 0x400>;
25616245374SAndre Przywara			interrupts = <9>;
25716245374SAndre Przywara			clocks = <&ccu CLK_BUS_I2C2>;
25816245374SAndre Przywara			resets = <&ccu RST_BUS_I2C2>;
25916245374SAndre Przywara			#address-cells = <1>;
26016245374SAndre Przywara			#size-cells = <0>;
26116245374SAndre Przywara			status = "disabled";
26216245374SAndre Przywara		};
26316245374SAndre Przywara
2644ba16d17SMesih Kilinc		timer@1c20c00 {
2654ba16d17SMesih Kilinc			compatible = "allwinner,suniv-f1c100s-timer";
2664ba16d17SMesih Kilinc			reg = <0x01c20c00 0x90>;
267a26123f3SAndre Przywara			interrupts = <13>, <14>, <15>;
2684ba16d17SMesih Kilinc			clocks = <&osc24M>;
2694ba16d17SMesih Kilinc		};
2704ba16d17SMesih Kilinc
2714ba16d17SMesih Kilinc		wdt: watchdog@1c20ca0 {
2724ba16d17SMesih Kilinc			compatible = "allwinner,suniv-f1c100s-wdt",
27301a850eeSAndre Przywara				     "allwinner,sun6i-a31-wdt";
2744ba16d17SMesih Kilinc			reg = <0x01c20ca0 0x20>;
27501a850eeSAndre Przywara			interrupts = <16>;
27601a850eeSAndre Przywara			clocks = <&osc32k>;
2774ba16d17SMesih Kilinc		};
2784ba16d17SMesih Kilinc
27977eac2b9SAndre Przywara		pwm: pwm@1c21000 {
28077eac2b9SAndre Przywara			compatible = "allwinner,suniv-f1c100s-pwm",
28177eac2b9SAndre Przywara				     "allwinner,sun7i-a20-pwm";
28277eac2b9SAndre Przywara			reg = <0x01c21000 0x400>;
28377eac2b9SAndre Przywara			clocks = <&osc24M>;
28477eac2b9SAndre Przywara			#pwm-cells = <3>;
28577eac2b9SAndre Przywara			status = "disabled";
28677eac2b9SAndre Przywara		};
28777eac2b9SAndre Przywara
288e1d7dc52SAndre Przywara		ir: ir@1c22c00 {
289e1d7dc52SAndre Przywara			compatible = "allwinner,suniv-f1c100s-ir",
290e1d7dc52SAndre Przywara				     "allwinner,sun6i-a31-ir";
291e1d7dc52SAndre Przywara			reg = <0x01c22c00 0x400>;
292e1d7dc52SAndre Przywara			clocks = <&ccu CLK_BUS_IR>, <&ccu CLK_IR>;
293e1d7dc52SAndre Przywara			clock-names = "apb", "ir";
294e1d7dc52SAndre Przywara			resets = <&ccu RST_BUS_IR>;
295e1d7dc52SAndre Przywara			interrupts = <6>;
296e1d7dc52SAndre Przywara			status = "disabled";
297e1d7dc52SAndre Przywara		};
298e1d7dc52SAndre Przywara
299dee02035SAndre Przywara		lradc: lradc@1c23400 {
300dee02035SAndre Przywara			compatible = "allwinner,suniv-f1c100s-lradc",
301dee02035SAndre Przywara				     "allwinner,sun8i-a83t-r-lradc";
302dee02035SAndre Przywara			reg = <0x01c23400 0x400>;
303dee02035SAndre Przywara			interrupts = <22>;
304dee02035SAndre Przywara			status = "disabled";
305dee02035SAndre Przywara		};
306dee02035SAndre Przywara
3074ba16d17SMesih Kilinc		uart0: serial@1c25000 {
3084ba16d17SMesih Kilinc			compatible = "snps,dw-apb-uart";
3094ba16d17SMesih Kilinc			reg = <0x01c25000 0x400>;
3104ba16d17SMesih Kilinc			interrupts = <1>;
3114ba16d17SMesih Kilinc			reg-shift = <2>;
3124ba16d17SMesih Kilinc			reg-io-width = <4>;
3131aba2af5SJesse Taube			clocks = <&ccu CLK_BUS_UART0>;
3141aba2af5SJesse Taube			resets = <&ccu RST_BUS_UART0>;
3154ba16d17SMesih Kilinc			status = "disabled";
3164ba16d17SMesih Kilinc		};
3174ba16d17SMesih Kilinc
3184ba16d17SMesih Kilinc		uart1: serial@1c25400 {
3194ba16d17SMesih Kilinc			compatible = "snps,dw-apb-uart";
3204ba16d17SMesih Kilinc			reg = <0x01c25400 0x400>;
3214ba16d17SMesih Kilinc			interrupts = <2>;
3224ba16d17SMesih Kilinc			reg-shift = <2>;
3234ba16d17SMesih Kilinc			reg-io-width = <4>;
3241aba2af5SJesse Taube			clocks = <&ccu CLK_BUS_UART1>;
3251aba2af5SJesse Taube			resets = <&ccu RST_BUS_UART1>;
3264ba16d17SMesih Kilinc			status = "disabled";
3274ba16d17SMesih Kilinc		};
3284ba16d17SMesih Kilinc
3294ba16d17SMesih Kilinc		uart2: serial@1c25800 {
3304ba16d17SMesih Kilinc			compatible = "snps,dw-apb-uart";
3314ba16d17SMesih Kilinc			reg = <0x01c25800 0x400>;
3324ba16d17SMesih Kilinc			interrupts = <3>;
3334ba16d17SMesih Kilinc			reg-shift = <2>;
3344ba16d17SMesih Kilinc			reg-io-width = <4>;
3351aba2af5SJesse Taube			clocks = <&ccu CLK_BUS_UART2>;
3361aba2af5SJesse Taube			resets = <&ccu RST_BUS_UART2>;
3374ba16d17SMesih Kilinc			status = "disabled";
3384ba16d17SMesih Kilinc		};
339*95b570f7SMesih Kilinc
340*95b570f7SMesih Kilinc		codec: codec@1c23c00 {
341*95b570f7SMesih Kilinc			#sound-dai-cells = <0>;
342*95b570f7SMesih Kilinc			compatible = "allwinner,suniv-f1c100s-codec";
343*95b570f7SMesih Kilinc			reg = <0x01c23c00 0x400>;
344*95b570f7SMesih Kilinc			interrupts = <21>;
345*95b570f7SMesih Kilinc			clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_CODEC>;
346*95b570f7SMesih Kilinc			clock-names = "apb", "codec";
347*95b570f7SMesih Kilinc			dmas = <&dma SUN4I_DMA_NORMAL 12>,
348*95b570f7SMesih Kilinc			       <&dma SUN4I_DMA_NORMAL 12>;
349*95b570f7SMesih Kilinc			dma-names = "rx", "tx";
350*95b570f7SMesih Kilinc			resets = <&ccu RST_BUS_CODEC>;
351*95b570f7SMesih Kilinc			status = "disabled";
352*95b570f7SMesih Kilinc		};
3534ba16d17SMesih Kilinc	};
3544ba16d17SMesih Kilinc};
355