162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR X11) 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright 2018 Icenowy Zheng <icenowy@aosc.io> 462306a36Sopenharmony_ci * Copyright 2018 Mesih Kilinc <mesihkilinc@gmail.com> 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#include <dt-bindings/clock/suniv-ccu-f1c100s.h> 862306a36Sopenharmony_ci#include <dt-bindings/reset/suniv-ccu-f1c100s.h> 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci/ { 1162306a36Sopenharmony_ci #address-cells = <1>; 1262306a36Sopenharmony_ci #size-cells = <1>; 1362306a36Sopenharmony_ci interrupt-parent = <&intc>; 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci clocks { 1662306a36Sopenharmony_ci osc24M: clk-24M { 1762306a36Sopenharmony_ci #clock-cells = <0>; 1862306a36Sopenharmony_ci compatible = "fixed-clock"; 1962306a36Sopenharmony_ci clock-frequency = <24000000>; 2062306a36Sopenharmony_ci clock-output-names = "osc24M"; 2162306a36Sopenharmony_ci }; 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci osc32k: clk-32k { 2462306a36Sopenharmony_ci #clock-cells = <0>; 2562306a36Sopenharmony_ci compatible = "fixed-clock"; 2662306a36Sopenharmony_ci clock-frequency = <32768>; 2762306a36Sopenharmony_ci clock-output-names = "osc32k"; 2862306a36Sopenharmony_ci }; 2962306a36Sopenharmony_ci }; 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci cpus { 3262306a36Sopenharmony_ci #address-cells = <1>; 3362306a36Sopenharmony_ci #size-cells = <0>; 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci cpu@0 { 3662306a36Sopenharmony_ci compatible = "arm,arm926ej-s"; 3762306a36Sopenharmony_ci device_type = "cpu"; 3862306a36Sopenharmony_ci reg = <0x0>; 3962306a36Sopenharmony_ci }; 4062306a36Sopenharmony_ci }; 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci soc { 4362306a36Sopenharmony_ci compatible = "simple-bus"; 4462306a36Sopenharmony_ci #address-cells = <1>; 4562306a36Sopenharmony_ci #size-cells = <1>; 4662306a36Sopenharmony_ci ranges; 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci sram-controller@1c00000 { 4962306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-system-control", 5062306a36Sopenharmony_ci "allwinner,sun4i-a10-system-control"; 5162306a36Sopenharmony_ci reg = <0x01c00000 0x30>; 5262306a36Sopenharmony_ci #address-cells = <1>; 5362306a36Sopenharmony_ci #size-cells = <1>; 5462306a36Sopenharmony_ci ranges; 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci sram_d: sram@10000 { 5762306a36Sopenharmony_ci compatible = "mmio-sram"; 5862306a36Sopenharmony_ci reg = <0x00010000 0x1000>; 5962306a36Sopenharmony_ci #address-cells = <1>; 6062306a36Sopenharmony_ci #size-cells = <1>; 6162306a36Sopenharmony_ci ranges = <0 0x00010000 0x1000>; 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci otg_sram: sram-section@0 { 6462306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-sram-d", 6562306a36Sopenharmony_ci "allwinner,sun4i-a10-sram-d"; 6662306a36Sopenharmony_ci reg = <0x0000 0x1000>; 6762306a36Sopenharmony_ci status = "disabled"; 6862306a36Sopenharmony_ci }; 6962306a36Sopenharmony_ci }; 7062306a36Sopenharmony_ci }; 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci spi0: spi@1c05000 { 7362306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-spi", 7462306a36Sopenharmony_ci "allwinner,sun8i-h3-spi"; 7562306a36Sopenharmony_ci reg = <0x01c05000 0x1000>; 7662306a36Sopenharmony_ci interrupts = <10>; 7762306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_BUS_SPI0>; 7862306a36Sopenharmony_ci clock-names = "ahb", "mod"; 7962306a36Sopenharmony_ci resets = <&ccu RST_BUS_SPI0>; 8062306a36Sopenharmony_ci status = "disabled"; 8162306a36Sopenharmony_ci num-cs = <1>; 8262306a36Sopenharmony_ci #address-cells = <1>; 8362306a36Sopenharmony_ci #size-cells = <0>; 8462306a36Sopenharmony_ci }; 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci spi1: spi@1c06000 { 8762306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-spi", 8862306a36Sopenharmony_ci "allwinner,sun8i-h3-spi"; 8962306a36Sopenharmony_ci reg = <0x01c06000 0x1000>; 9062306a36Sopenharmony_ci interrupts = <11>; 9162306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_BUS_SPI1>; 9262306a36Sopenharmony_ci clock-names = "ahb", "mod"; 9362306a36Sopenharmony_ci resets = <&ccu RST_BUS_SPI1>; 9462306a36Sopenharmony_ci status = "disabled"; 9562306a36Sopenharmony_ci num-cs = <1>; 9662306a36Sopenharmony_ci #address-cells = <1>; 9762306a36Sopenharmony_ci #size-cells = <0>; 9862306a36Sopenharmony_ci }; 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci mmc0: mmc@1c0f000 { 10162306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-mmc", 10262306a36Sopenharmony_ci "allwinner,sun7i-a20-mmc"; 10362306a36Sopenharmony_ci reg = <0x01c0f000 0x1000>; 10462306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_MMC0>, 10562306a36Sopenharmony_ci <&ccu CLK_MMC0>, 10662306a36Sopenharmony_ci <&ccu CLK_MMC0_OUTPUT>, 10762306a36Sopenharmony_ci <&ccu CLK_MMC0_SAMPLE>; 10862306a36Sopenharmony_ci clock-names = "ahb", "mmc", "output", "sample"; 10962306a36Sopenharmony_ci resets = <&ccu RST_BUS_MMC0>; 11062306a36Sopenharmony_ci reset-names = "ahb"; 11162306a36Sopenharmony_ci interrupts = <23>; 11262306a36Sopenharmony_ci pinctrl-names = "default"; 11362306a36Sopenharmony_ci pinctrl-0 = <&mmc0_pins>; 11462306a36Sopenharmony_ci status = "disabled"; 11562306a36Sopenharmony_ci #address-cells = <1>; 11662306a36Sopenharmony_ci #size-cells = <0>; 11762306a36Sopenharmony_ci }; 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ci mmc1: mmc@1c10000 { 12062306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-mmc", 12162306a36Sopenharmony_ci "allwinner,sun7i-a20-mmc"; 12262306a36Sopenharmony_ci reg = <0x01c10000 0x1000>; 12362306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_MMC1>, 12462306a36Sopenharmony_ci <&ccu CLK_MMC1>, 12562306a36Sopenharmony_ci <&ccu CLK_MMC1_OUTPUT>, 12662306a36Sopenharmony_ci <&ccu CLK_MMC1_SAMPLE>; 12762306a36Sopenharmony_ci clock-names = "ahb", "mmc", "output", "sample"; 12862306a36Sopenharmony_ci resets = <&ccu RST_BUS_MMC1>; 12962306a36Sopenharmony_ci reset-names = "ahb"; 13062306a36Sopenharmony_ci interrupts = <24>; 13162306a36Sopenharmony_ci status = "disabled"; 13262306a36Sopenharmony_ci #address-cells = <1>; 13362306a36Sopenharmony_ci #size-cells = <0>; 13462306a36Sopenharmony_ci }; 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ci usb_otg: usb@1c13000 { 13762306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-musb"; 13862306a36Sopenharmony_ci reg = <0x01c13000 0x0400>; 13962306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_OTG>; 14062306a36Sopenharmony_ci resets = <&ccu RST_BUS_OTG>; 14162306a36Sopenharmony_ci interrupts = <26>; 14262306a36Sopenharmony_ci interrupt-names = "mc"; 14362306a36Sopenharmony_ci phys = <&usbphy 0>; 14462306a36Sopenharmony_ci phy-names = "usb"; 14562306a36Sopenharmony_ci extcon = <&usbphy 0>; 14662306a36Sopenharmony_ci allwinner,sram = <&otg_sram 1>; 14762306a36Sopenharmony_ci status = "disabled"; 14862306a36Sopenharmony_ci }; 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci usbphy: phy@1c13400 { 15162306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-usb-phy"; 15262306a36Sopenharmony_ci reg = <0x01c13400 0x10>; 15362306a36Sopenharmony_ci reg-names = "phy_ctrl"; 15462306a36Sopenharmony_ci clocks = <&ccu CLK_USB_PHY0>; 15562306a36Sopenharmony_ci clock-names = "usb0_phy"; 15662306a36Sopenharmony_ci resets = <&ccu RST_USB_PHY0>; 15762306a36Sopenharmony_ci reset-names = "usb0_reset"; 15862306a36Sopenharmony_ci #phy-cells = <1>; 15962306a36Sopenharmony_ci status = "disabled"; 16062306a36Sopenharmony_ci }; 16162306a36Sopenharmony_ci 16262306a36Sopenharmony_ci ccu: clock@1c20000 { 16362306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-ccu"; 16462306a36Sopenharmony_ci reg = <0x01c20000 0x400>; 16562306a36Sopenharmony_ci clocks = <&osc24M>, <&osc32k>; 16662306a36Sopenharmony_ci clock-names = "hosc", "losc"; 16762306a36Sopenharmony_ci #clock-cells = <1>; 16862306a36Sopenharmony_ci #reset-cells = <1>; 16962306a36Sopenharmony_ci }; 17062306a36Sopenharmony_ci 17162306a36Sopenharmony_ci intc: interrupt-controller@1c20400 { 17262306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-ic"; 17362306a36Sopenharmony_ci reg = <0x01c20400 0x400>; 17462306a36Sopenharmony_ci interrupt-controller; 17562306a36Sopenharmony_ci #interrupt-cells = <1>; 17662306a36Sopenharmony_ci }; 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ci pio: pinctrl@1c20800 { 17962306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-pinctrl"; 18062306a36Sopenharmony_ci reg = <0x01c20800 0x400>; 18162306a36Sopenharmony_ci interrupts = <38>, <39>, <40>; 18262306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>; 18362306a36Sopenharmony_ci clock-names = "apb", "hosc", "losc"; 18462306a36Sopenharmony_ci gpio-controller; 18562306a36Sopenharmony_ci interrupt-controller; 18662306a36Sopenharmony_ci #interrupt-cells = <3>; 18762306a36Sopenharmony_ci #gpio-cells = <3>; 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ci mmc0_pins: mmc0-pins { 19062306a36Sopenharmony_ci pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; 19162306a36Sopenharmony_ci function = "mmc0"; 19262306a36Sopenharmony_ci drive-strength = <30>; 19362306a36Sopenharmony_ci }; 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_ci /omit-if-no-ref/ 19662306a36Sopenharmony_ci i2c0_pd_pins: i2c0-pd-pins { 19762306a36Sopenharmony_ci pins = "PD0", "PD12"; 19862306a36Sopenharmony_ci function = "i2c0"; 19962306a36Sopenharmony_ci }; 20062306a36Sopenharmony_ci 20162306a36Sopenharmony_ci spi0_pc_pins: spi0-pc-pins { 20262306a36Sopenharmony_ci pins = "PC0", "PC1", "PC2", "PC3"; 20362306a36Sopenharmony_ci function = "spi0"; 20462306a36Sopenharmony_ci }; 20562306a36Sopenharmony_ci 20662306a36Sopenharmony_ci uart0_pe_pins: uart0-pe-pins { 20762306a36Sopenharmony_ci pins = "PE0", "PE1"; 20862306a36Sopenharmony_ci function = "uart0"; 20962306a36Sopenharmony_ci }; 21062306a36Sopenharmony_ci 21162306a36Sopenharmony_ci /omit-if-no-ref/ 21262306a36Sopenharmony_ci uart1_pa_pins: uart1-pa-pins { 21362306a36Sopenharmony_ci pins = "PA2", "PA3"; 21462306a36Sopenharmony_ci function = "uart1"; 21562306a36Sopenharmony_ci }; 21662306a36Sopenharmony_ci }; 21762306a36Sopenharmony_ci 21862306a36Sopenharmony_ci i2c0: i2c@1c27000 { 21962306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-i2c", 22062306a36Sopenharmony_ci "allwinner,sun6i-a31-i2c"; 22162306a36Sopenharmony_ci reg = <0x01c27000 0x400>; 22262306a36Sopenharmony_ci interrupts = <7>; 22362306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_I2C0>; 22462306a36Sopenharmony_ci resets = <&ccu RST_BUS_I2C0>; 22562306a36Sopenharmony_ci #address-cells = <1>; 22662306a36Sopenharmony_ci #size-cells = <0>; 22762306a36Sopenharmony_ci status = "disabled"; 22862306a36Sopenharmony_ci }; 22962306a36Sopenharmony_ci 23062306a36Sopenharmony_ci i2c1: i2c@1c27400 { 23162306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-i2c", 23262306a36Sopenharmony_ci "allwinner,sun6i-a31-i2c"; 23362306a36Sopenharmony_ci reg = <0x01c27400 0x400>; 23462306a36Sopenharmony_ci interrupts = <8>; 23562306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_I2C1>; 23662306a36Sopenharmony_ci resets = <&ccu RST_BUS_I2C1>; 23762306a36Sopenharmony_ci #address-cells = <1>; 23862306a36Sopenharmony_ci #size-cells = <0>; 23962306a36Sopenharmony_ci status = "disabled"; 24062306a36Sopenharmony_ci }; 24162306a36Sopenharmony_ci 24262306a36Sopenharmony_ci i2c2: i2c@1c27800 { 24362306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-i2c", 24462306a36Sopenharmony_ci "allwinner,sun6i-a31-i2c"; 24562306a36Sopenharmony_ci reg = <0x01c27800 0x400>; 24662306a36Sopenharmony_ci interrupts = <9>; 24762306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_I2C2>; 24862306a36Sopenharmony_ci resets = <&ccu RST_BUS_I2C2>; 24962306a36Sopenharmony_ci #address-cells = <1>; 25062306a36Sopenharmony_ci #size-cells = <0>; 25162306a36Sopenharmony_ci status = "disabled"; 25262306a36Sopenharmony_ci }; 25362306a36Sopenharmony_ci 25462306a36Sopenharmony_ci timer@1c20c00 { 25562306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-timer"; 25662306a36Sopenharmony_ci reg = <0x01c20c00 0x90>; 25762306a36Sopenharmony_ci interrupts = <13>, <14>, <15>; 25862306a36Sopenharmony_ci clocks = <&osc24M>; 25962306a36Sopenharmony_ci }; 26062306a36Sopenharmony_ci 26162306a36Sopenharmony_ci wdt: watchdog@1c20ca0 { 26262306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-wdt", 26362306a36Sopenharmony_ci "allwinner,sun6i-a31-wdt"; 26462306a36Sopenharmony_ci reg = <0x01c20ca0 0x20>; 26562306a36Sopenharmony_ci interrupts = <16>; 26662306a36Sopenharmony_ci clocks = <&osc32k>; 26762306a36Sopenharmony_ci }; 26862306a36Sopenharmony_ci 26962306a36Sopenharmony_ci pwm: pwm@1c21000 { 27062306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-pwm", 27162306a36Sopenharmony_ci "allwinner,sun7i-a20-pwm"; 27262306a36Sopenharmony_ci reg = <0x01c21000 0x400>; 27362306a36Sopenharmony_ci clocks = <&osc24M>; 27462306a36Sopenharmony_ci #pwm-cells = <3>; 27562306a36Sopenharmony_ci status = "disabled"; 27662306a36Sopenharmony_ci }; 27762306a36Sopenharmony_ci 27862306a36Sopenharmony_ci ir: ir@1c22c00 { 27962306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-ir", 28062306a36Sopenharmony_ci "allwinner,sun6i-a31-ir"; 28162306a36Sopenharmony_ci reg = <0x01c22c00 0x400>; 28262306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_IR>, <&ccu CLK_IR>; 28362306a36Sopenharmony_ci clock-names = "apb", "ir"; 28462306a36Sopenharmony_ci resets = <&ccu RST_BUS_IR>; 28562306a36Sopenharmony_ci interrupts = <6>; 28662306a36Sopenharmony_ci status = "disabled"; 28762306a36Sopenharmony_ci }; 28862306a36Sopenharmony_ci 28962306a36Sopenharmony_ci lradc: lradc@1c23400 { 29062306a36Sopenharmony_ci compatible = "allwinner,suniv-f1c100s-lradc", 29162306a36Sopenharmony_ci "allwinner,sun8i-a83t-r-lradc"; 29262306a36Sopenharmony_ci reg = <0x01c23400 0x400>; 29362306a36Sopenharmony_ci interrupts = <22>; 29462306a36Sopenharmony_ci status = "disabled"; 29562306a36Sopenharmony_ci }; 29662306a36Sopenharmony_ci 29762306a36Sopenharmony_ci uart0: serial@1c25000 { 29862306a36Sopenharmony_ci compatible = "snps,dw-apb-uart"; 29962306a36Sopenharmony_ci reg = <0x01c25000 0x400>; 30062306a36Sopenharmony_ci interrupts = <1>; 30162306a36Sopenharmony_ci reg-shift = <2>; 30262306a36Sopenharmony_ci reg-io-width = <4>; 30362306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_UART0>; 30462306a36Sopenharmony_ci resets = <&ccu RST_BUS_UART0>; 30562306a36Sopenharmony_ci status = "disabled"; 30662306a36Sopenharmony_ci }; 30762306a36Sopenharmony_ci 30862306a36Sopenharmony_ci uart1: serial@1c25400 { 30962306a36Sopenharmony_ci compatible = "snps,dw-apb-uart"; 31062306a36Sopenharmony_ci reg = <0x01c25400 0x400>; 31162306a36Sopenharmony_ci interrupts = <2>; 31262306a36Sopenharmony_ci reg-shift = <2>; 31362306a36Sopenharmony_ci reg-io-width = <4>; 31462306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_UART1>; 31562306a36Sopenharmony_ci resets = <&ccu RST_BUS_UART1>; 31662306a36Sopenharmony_ci status = "disabled"; 31762306a36Sopenharmony_ci }; 31862306a36Sopenharmony_ci 31962306a36Sopenharmony_ci uart2: serial@1c25800 { 32062306a36Sopenharmony_ci compatible = "snps,dw-apb-uart"; 32162306a36Sopenharmony_ci reg = <0x01c25800 0x400>; 32262306a36Sopenharmony_ci interrupts = <3>; 32362306a36Sopenharmony_ci reg-shift = <2>; 32462306a36Sopenharmony_ci reg-io-width = <4>; 32562306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_UART2>; 32662306a36Sopenharmony_ci resets = <&ccu RST_BUS_UART2>; 32762306a36Sopenharmony_ci status = "disabled"; 32862306a36Sopenharmony_ci }; 32962306a36Sopenharmony_ci }; 33062306a36Sopenharmony_ci}; 331