1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR X11) 2*f126890aSEmmanuel Vadot/* 3*f126890aSEmmanuel Vadot * Copyright 2018 Icenowy Zheng <icenowy@aosc.io> 4*f126890aSEmmanuel Vadot * Copyright 2018 Mesih Kilinc <mesihkilinc@gmail.com> 5*f126890aSEmmanuel Vadot */ 6*f126890aSEmmanuel Vadot 7*f126890aSEmmanuel Vadot#include <dt-bindings/clock/suniv-ccu-f1c100s.h> 8*f126890aSEmmanuel Vadot#include <dt-bindings/reset/suniv-ccu-f1c100s.h> 9*f126890aSEmmanuel Vadot 10*f126890aSEmmanuel Vadot/ { 11*f126890aSEmmanuel Vadot #address-cells = <1>; 12*f126890aSEmmanuel Vadot #size-cells = <1>; 13*f126890aSEmmanuel Vadot interrupt-parent = <&intc>; 14*f126890aSEmmanuel Vadot 15*f126890aSEmmanuel Vadot clocks { 16*f126890aSEmmanuel Vadot osc24M: clk-24M { 17*f126890aSEmmanuel Vadot #clock-cells = <0>; 18*f126890aSEmmanuel Vadot compatible = "fixed-clock"; 19*f126890aSEmmanuel Vadot clock-frequency = <24000000>; 20*f126890aSEmmanuel Vadot clock-output-names = "osc24M"; 21*f126890aSEmmanuel Vadot }; 22*f126890aSEmmanuel Vadot 23*f126890aSEmmanuel Vadot osc32k: clk-32k { 24*f126890aSEmmanuel Vadot #clock-cells = <0>; 25*f126890aSEmmanuel Vadot compatible = "fixed-clock"; 26*f126890aSEmmanuel Vadot clock-frequency = <32768>; 27*f126890aSEmmanuel Vadot clock-output-names = "osc32k"; 28*f126890aSEmmanuel Vadot }; 29*f126890aSEmmanuel Vadot }; 30*f126890aSEmmanuel Vadot 31*f126890aSEmmanuel Vadot cpus { 32*f126890aSEmmanuel Vadot #address-cells = <1>; 33*f126890aSEmmanuel Vadot #size-cells = <0>; 34*f126890aSEmmanuel Vadot 35*f126890aSEmmanuel Vadot cpu@0 { 36*f126890aSEmmanuel Vadot compatible = "arm,arm926ej-s"; 37*f126890aSEmmanuel Vadot device_type = "cpu"; 38*f126890aSEmmanuel Vadot reg = <0x0>; 39*f126890aSEmmanuel Vadot }; 40*f126890aSEmmanuel Vadot }; 41*f126890aSEmmanuel Vadot 42*f126890aSEmmanuel Vadot soc { 43*f126890aSEmmanuel Vadot compatible = "simple-bus"; 44*f126890aSEmmanuel Vadot #address-cells = <1>; 45*f126890aSEmmanuel Vadot #size-cells = <1>; 46*f126890aSEmmanuel Vadot ranges; 47*f126890aSEmmanuel Vadot 48*f126890aSEmmanuel Vadot sram-controller@1c00000 { 49*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-system-control", 50*f126890aSEmmanuel Vadot "allwinner,sun4i-a10-system-control"; 51*f126890aSEmmanuel Vadot reg = <0x01c00000 0x30>; 52*f126890aSEmmanuel Vadot #address-cells = <1>; 53*f126890aSEmmanuel Vadot #size-cells = <1>; 54*f126890aSEmmanuel Vadot ranges; 55*f126890aSEmmanuel Vadot 56*f126890aSEmmanuel Vadot sram_d: sram@10000 { 57*f126890aSEmmanuel Vadot compatible = "mmio-sram"; 58*f126890aSEmmanuel Vadot reg = <0x00010000 0x1000>; 59*f126890aSEmmanuel Vadot #address-cells = <1>; 60*f126890aSEmmanuel Vadot #size-cells = <1>; 61*f126890aSEmmanuel Vadot ranges = <0 0x00010000 0x1000>; 62*f126890aSEmmanuel Vadot 63*f126890aSEmmanuel Vadot otg_sram: sram-section@0 { 64*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-sram-d", 65*f126890aSEmmanuel Vadot "allwinner,sun4i-a10-sram-d"; 66*f126890aSEmmanuel Vadot reg = <0x0000 0x1000>; 67*f126890aSEmmanuel Vadot status = "disabled"; 68*f126890aSEmmanuel Vadot }; 69*f126890aSEmmanuel Vadot }; 70*f126890aSEmmanuel Vadot }; 71*f126890aSEmmanuel Vadot 72*f126890aSEmmanuel Vadot spi0: spi@1c05000 { 73*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-spi", 74*f126890aSEmmanuel Vadot "allwinner,sun8i-h3-spi"; 75*f126890aSEmmanuel Vadot reg = <0x01c05000 0x1000>; 76*f126890aSEmmanuel Vadot interrupts = <10>; 77*f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_BUS_SPI0>; 78*f126890aSEmmanuel Vadot clock-names = "ahb", "mod"; 79*f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_SPI0>; 80*f126890aSEmmanuel Vadot status = "disabled"; 81*f126890aSEmmanuel Vadot num-cs = <1>; 82*f126890aSEmmanuel Vadot #address-cells = <1>; 83*f126890aSEmmanuel Vadot #size-cells = <0>; 84*f126890aSEmmanuel Vadot }; 85*f126890aSEmmanuel Vadot 86*f126890aSEmmanuel Vadot spi1: spi@1c06000 { 87*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-spi", 88*f126890aSEmmanuel Vadot "allwinner,sun8i-h3-spi"; 89*f126890aSEmmanuel Vadot reg = <0x01c06000 0x1000>; 90*f126890aSEmmanuel Vadot interrupts = <11>; 91*f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_BUS_SPI1>; 92*f126890aSEmmanuel Vadot clock-names = "ahb", "mod"; 93*f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_SPI1>; 94*f126890aSEmmanuel Vadot status = "disabled"; 95*f126890aSEmmanuel Vadot num-cs = <1>; 96*f126890aSEmmanuel Vadot #address-cells = <1>; 97*f126890aSEmmanuel Vadot #size-cells = <0>; 98*f126890aSEmmanuel Vadot }; 99*f126890aSEmmanuel Vadot 100*f126890aSEmmanuel Vadot mmc0: mmc@1c0f000 { 101*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-mmc", 102*f126890aSEmmanuel Vadot "allwinner,sun7i-a20-mmc"; 103*f126890aSEmmanuel Vadot reg = <0x01c0f000 0x1000>; 104*f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_MMC0>, 105*f126890aSEmmanuel Vadot <&ccu CLK_MMC0>, 106*f126890aSEmmanuel Vadot <&ccu CLK_MMC0_OUTPUT>, 107*f126890aSEmmanuel Vadot <&ccu CLK_MMC0_SAMPLE>; 108*f126890aSEmmanuel Vadot clock-names = "ahb", "mmc", "output", "sample"; 109*f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_MMC0>; 110*f126890aSEmmanuel Vadot reset-names = "ahb"; 111*f126890aSEmmanuel Vadot interrupts = <23>; 112*f126890aSEmmanuel Vadot pinctrl-names = "default"; 113*f126890aSEmmanuel Vadot pinctrl-0 = <&mmc0_pins>; 114*f126890aSEmmanuel Vadot status = "disabled"; 115*f126890aSEmmanuel Vadot #address-cells = <1>; 116*f126890aSEmmanuel Vadot #size-cells = <0>; 117*f126890aSEmmanuel Vadot }; 118*f126890aSEmmanuel Vadot 119*f126890aSEmmanuel Vadot mmc1: mmc@1c10000 { 120*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-mmc", 121*f126890aSEmmanuel Vadot "allwinner,sun7i-a20-mmc"; 122*f126890aSEmmanuel Vadot reg = <0x01c10000 0x1000>; 123*f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_MMC1>, 124*f126890aSEmmanuel Vadot <&ccu CLK_MMC1>, 125*f126890aSEmmanuel Vadot <&ccu CLK_MMC1_OUTPUT>, 126*f126890aSEmmanuel Vadot <&ccu CLK_MMC1_SAMPLE>; 127*f126890aSEmmanuel Vadot clock-names = "ahb", "mmc", "output", "sample"; 128*f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_MMC1>; 129*f126890aSEmmanuel Vadot reset-names = "ahb"; 130*f126890aSEmmanuel Vadot interrupts = <24>; 131*f126890aSEmmanuel Vadot status = "disabled"; 132*f126890aSEmmanuel Vadot #address-cells = <1>; 133*f126890aSEmmanuel Vadot #size-cells = <0>; 134*f126890aSEmmanuel Vadot }; 135*f126890aSEmmanuel Vadot 136*f126890aSEmmanuel Vadot usb_otg: usb@1c13000 { 137*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-musb"; 138*f126890aSEmmanuel Vadot reg = <0x01c13000 0x0400>; 139*f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_OTG>; 140*f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_OTG>; 141*f126890aSEmmanuel Vadot interrupts = <26>; 142*f126890aSEmmanuel Vadot interrupt-names = "mc"; 143*f126890aSEmmanuel Vadot phys = <&usbphy 0>; 144*f126890aSEmmanuel Vadot phy-names = "usb"; 145*f126890aSEmmanuel Vadot extcon = <&usbphy 0>; 146*f126890aSEmmanuel Vadot allwinner,sram = <&otg_sram 1>; 147*f126890aSEmmanuel Vadot status = "disabled"; 148*f126890aSEmmanuel Vadot }; 149*f126890aSEmmanuel Vadot 150*f126890aSEmmanuel Vadot usbphy: phy@1c13400 { 151*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-usb-phy"; 152*f126890aSEmmanuel Vadot reg = <0x01c13400 0x10>; 153*f126890aSEmmanuel Vadot reg-names = "phy_ctrl"; 154*f126890aSEmmanuel Vadot clocks = <&ccu CLK_USB_PHY0>; 155*f126890aSEmmanuel Vadot clock-names = "usb0_phy"; 156*f126890aSEmmanuel Vadot resets = <&ccu RST_USB_PHY0>; 157*f126890aSEmmanuel Vadot reset-names = "usb0_reset"; 158*f126890aSEmmanuel Vadot #phy-cells = <1>; 159*f126890aSEmmanuel Vadot status = "disabled"; 160*f126890aSEmmanuel Vadot }; 161*f126890aSEmmanuel Vadot 162*f126890aSEmmanuel Vadot ccu: clock@1c20000 { 163*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-ccu"; 164*f126890aSEmmanuel Vadot reg = <0x01c20000 0x400>; 165*f126890aSEmmanuel Vadot clocks = <&osc24M>, <&osc32k>; 166*f126890aSEmmanuel Vadot clock-names = "hosc", "losc"; 167*f126890aSEmmanuel Vadot #clock-cells = <1>; 168*f126890aSEmmanuel Vadot #reset-cells = <1>; 169*f126890aSEmmanuel Vadot }; 170*f126890aSEmmanuel Vadot 171*f126890aSEmmanuel Vadot intc: interrupt-controller@1c20400 { 172*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-ic"; 173*f126890aSEmmanuel Vadot reg = <0x01c20400 0x400>; 174*f126890aSEmmanuel Vadot interrupt-controller; 175*f126890aSEmmanuel Vadot #interrupt-cells = <1>; 176*f126890aSEmmanuel Vadot }; 177*f126890aSEmmanuel Vadot 178*f126890aSEmmanuel Vadot pio: pinctrl@1c20800 { 179*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-pinctrl"; 180*f126890aSEmmanuel Vadot reg = <0x01c20800 0x400>; 181*f126890aSEmmanuel Vadot interrupts = <38>, <39>, <40>; 182*f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>; 183*f126890aSEmmanuel Vadot clock-names = "apb", "hosc", "losc"; 184*f126890aSEmmanuel Vadot gpio-controller; 185*f126890aSEmmanuel Vadot interrupt-controller; 186*f126890aSEmmanuel Vadot #interrupt-cells = <3>; 187*f126890aSEmmanuel Vadot #gpio-cells = <3>; 188*f126890aSEmmanuel Vadot 189*f126890aSEmmanuel Vadot mmc0_pins: mmc0-pins { 190*f126890aSEmmanuel Vadot pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; 191*f126890aSEmmanuel Vadot function = "mmc0"; 192*f126890aSEmmanuel Vadot drive-strength = <30>; 193*f126890aSEmmanuel Vadot }; 194*f126890aSEmmanuel Vadot 195*f126890aSEmmanuel Vadot /omit-if-no-ref/ 196*f126890aSEmmanuel Vadot i2c0_pd_pins: i2c0-pd-pins { 197*f126890aSEmmanuel Vadot pins = "PD0", "PD12"; 198*f126890aSEmmanuel Vadot function = "i2c0"; 199*f126890aSEmmanuel Vadot }; 200*f126890aSEmmanuel Vadot 201*f126890aSEmmanuel Vadot spi0_pc_pins: spi0-pc-pins { 202*f126890aSEmmanuel Vadot pins = "PC0", "PC1", "PC2", "PC3"; 203*f126890aSEmmanuel Vadot function = "spi0"; 204*f126890aSEmmanuel Vadot }; 205*f126890aSEmmanuel Vadot 206*f126890aSEmmanuel Vadot uart0_pe_pins: uart0-pe-pins { 207*f126890aSEmmanuel Vadot pins = "PE0", "PE1"; 208*f126890aSEmmanuel Vadot function = "uart0"; 209*f126890aSEmmanuel Vadot }; 210*f126890aSEmmanuel Vadot 211*f126890aSEmmanuel Vadot /omit-if-no-ref/ 212*f126890aSEmmanuel Vadot uart1_pa_pins: uart1-pa-pins { 213*f126890aSEmmanuel Vadot pins = "PA2", "PA3"; 214*f126890aSEmmanuel Vadot function = "uart1"; 215*f126890aSEmmanuel Vadot }; 216*f126890aSEmmanuel Vadot }; 217*f126890aSEmmanuel Vadot 218*f126890aSEmmanuel Vadot i2c0: i2c@1c27000 { 219*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-i2c", 220*f126890aSEmmanuel Vadot "allwinner,sun6i-a31-i2c"; 221*f126890aSEmmanuel Vadot reg = <0x01c27000 0x400>; 222*f126890aSEmmanuel Vadot interrupts = <7>; 223*f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_I2C0>; 224*f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_I2C0>; 225*f126890aSEmmanuel Vadot #address-cells = <1>; 226*f126890aSEmmanuel Vadot #size-cells = <0>; 227*f126890aSEmmanuel Vadot status = "disabled"; 228*f126890aSEmmanuel Vadot }; 229*f126890aSEmmanuel Vadot 230*f126890aSEmmanuel Vadot i2c1: i2c@1c27400 { 231*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-i2c", 232*f126890aSEmmanuel Vadot "allwinner,sun6i-a31-i2c"; 233*f126890aSEmmanuel Vadot reg = <0x01c27400 0x400>; 234*f126890aSEmmanuel Vadot interrupts = <8>; 235*f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_I2C1>; 236*f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_I2C1>; 237*f126890aSEmmanuel Vadot #address-cells = <1>; 238*f126890aSEmmanuel Vadot #size-cells = <0>; 239*f126890aSEmmanuel Vadot status = "disabled"; 240*f126890aSEmmanuel Vadot }; 241*f126890aSEmmanuel Vadot 242*f126890aSEmmanuel Vadot i2c2: i2c@1c27800 { 243*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-i2c", 244*f126890aSEmmanuel Vadot "allwinner,sun6i-a31-i2c"; 245*f126890aSEmmanuel Vadot reg = <0x01c27800 0x400>; 246*f126890aSEmmanuel Vadot interrupts = <9>; 247*f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_I2C2>; 248*f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_I2C2>; 249*f126890aSEmmanuel Vadot #address-cells = <1>; 250*f126890aSEmmanuel Vadot #size-cells = <0>; 251*f126890aSEmmanuel Vadot status = "disabled"; 252*f126890aSEmmanuel Vadot }; 253*f126890aSEmmanuel Vadot 254*f126890aSEmmanuel Vadot timer@1c20c00 { 255*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-timer"; 256*f126890aSEmmanuel Vadot reg = <0x01c20c00 0x90>; 257*f126890aSEmmanuel Vadot interrupts = <13>, <14>, <15>; 258*f126890aSEmmanuel Vadot clocks = <&osc24M>; 259*f126890aSEmmanuel Vadot }; 260*f126890aSEmmanuel Vadot 261*f126890aSEmmanuel Vadot wdt: watchdog@1c20ca0 { 262*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-wdt", 263*f126890aSEmmanuel Vadot "allwinner,sun6i-a31-wdt"; 264*f126890aSEmmanuel Vadot reg = <0x01c20ca0 0x20>; 265*f126890aSEmmanuel Vadot interrupts = <16>; 266*f126890aSEmmanuel Vadot clocks = <&osc32k>; 267*f126890aSEmmanuel Vadot }; 268*f126890aSEmmanuel Vadot 269*f126890aSEmmanuel Vadot pwm: pwm@1c21000 { 270*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-pwm", 271*f126890aSEmmanuel Vadot "allwinner,sun7i-a20-pwm"; 272*f126890aSEmmanuel Vadot reg = <0x01c21000 0x400>; 273*f126890aSEmmanuel Vadot clocks = <&osc24M>; 274*f126890aSEmmanuel Vadot #pwm-cells = <3>; 275*f126890aSEmmanuel Vadot status = "disabled"; 276*f126890aSEmmanuel Vadot }; 277*f126890aSEmmanuel Vadot 278*f126890aSEmmanuel Vadot ir: ir@1c22c00 { 279*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-ir", 280*f126890aSEmmanuel Vadot "allwinner,sun6i-a31-ir"; 281*f126890aSEmmanuel Vadot reg = <0x01c22c00 0x400>; 282*f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_IR>, <&ccu CLK_IR>; 283*f126890aSEmmanuel Vadot clock-names = "apb", "ir"; 284*f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_IR>; 285*f126890aSEmmanuel Vadot interrupts = <6>; 286*f126890aSEmmanuel Vadot status = "disabled"; 287*f126890aSEmmanuel Vadot }; 288*f126890aSEmmanuel Vadot 289*f126890aSEmmanuel Vadot lradc: lradc@1c23400 { 290*f126890aSEmmanuel Vadot compatible = "allwinner,suniv-f1c100s-lradc", 291*f126890aSEmmanuel Vadot "allwinner,sun8i-a83t-r-lradc"; 292*f126890aSEmmanuel Vadot reg = <0x01c23400 0x400>; 293*f126890aSEmmanuel Vadot interrupts = <22>; 294*f126890aSEmmanuel Vadot status = "disabled"; 295*f126890aSEmmanuel Vadot }; 296*f126890aSEmmanuel Vadot 297*f126890aSEmmanuel Vadot uart0: serial@1c25000 { 298*f126890aSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 299*f126890aSEmmanuel Vadot reg = <0x01c25000 0x400>; 300*f126890aSEmmanuel Vadot interrupts = <1>; 301*f126890aSEmmanuel Vadot reg-shift = <2>; 302*f126890aSEmmanuel Vadot reg-io-width = <4>; 303*f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_UART0>; 304*f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_UART0>; 305*f126890aSEmmanuel Vadot status = "disabled"; 306*f126890aSEmmanuel Vadot }; 307*f126890aSEmmanuel Vadot 308*f126890aSEmmanuel Vadot uart1: serial@1c25400 { 309*f126890aSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 310*f126890aSEmmanuel Vadot reg = <0x01c25400 0x400>; 311*f126890aSEmmanuel Vadot interrupts = <2>; 312*f126890aSEmmanuel Vadot reg-shift = <2>; 313*f126890aSEmmanuel Vadot reg-io-width = <4>; 314*f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_UART1>; 315*f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_UART1>; 316*f126890aSEmmanuel Vadot status = "disabled"; 317*f126890aSEmmanuel Vadot }; 318*f126890aSEmmanuel Vadot 319*f126890aSEmmanuel Vadot uart2: serial@1c25800 { 320*f126890aSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 321*f126890aSEmmanuel Vadot reg = <0x01c25800 0x400>; 322*f126890aSEmmanuel Vadot interrupts = <3>; 323*f126890aSEmmanuel Vadot reg-shift = <2>; 324*f126890aSEmmanuel Vadot reg-io-width = <4>; 325*f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_UART2>; 326*f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_UART2>; 327*f126890aSEmmanuel Vadot status = "disabled"; 328*f126890aSEmmanuel Vadot }; 329*f126890aSEmmanuel Vadot }; 330*f126890aSEmmanuel Vadot}; 331