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