1*0d17c865SAndre Przywara// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*0d17c865SAndre Przywara// Copyright (C) 2020 Arm Ltd. 3*0d17c865SAndre Przywara// based on the H6 dtsi, which is: 4*0d17c865SAndre Przywara// Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io> 5*0d17c865SAndre Przywara 6*0d17c865SAndre Przywara#include <dt-bindings/interrupt-controller/arm-gic.h> 7*0d17c865SAndre Przywara#include <dt-bindings/clock/sun50i-h616-ccu.h> 8*0d17c865SAndre Przywara#include <dt-bindings/clock/sun50i-h6-r-ccu.h> 9*0d17c865SAndre Przywara#include <dt-bindings/clock/sun6i-rtc.h> 10*0d17c865SAndre Przywara#include <dt-bindings/reset/sun50i-h616-ccu.h> 11*0d17c865SAndre Przywara#include <dt-bindings/reset/sun50i-h6-r-ccu.h> 12*0d17c865SAndre Przywara 13*0d17c865SAndre Przywara/ { 14*0d17c865SAndre Przywara interrupt-parent = <&gic>; 15*0d17c865SAndre Przywara #address-cells = <2>; 16*0d17c865SAndre Przywara #size-cells = <2>; 17*0d17c865SAndre Przywara 18*0d17c865SAndre Przywara cpus { 19*0d17c865SAndre Przywara #address-cells = <1>; 20*0d17c865SAndre Przywara #size-cells = <0>; 21*0d17c865SAndre Przywara 22*0d17c865SAndre Przywara cpu0: cpu@0 { 23*0d17c865SAndre Przywara compatible = "arm,cortex-a53"; 24*0d17c865SAndre Przywara device_type = "cpu"; 25*0d17c865SAndre Przywara reg = <0>; 26*0d17c865SAndre Przywara enable-method = "psci"; 27*0d17c865SAndre Przywara clocks = <&ccu CLK_CPUX>; 28*0d17c865SAndre Przywara }; 29*0d17c865SAndre Przywara 30*0d17c865SAndre Przywara cpu1: cpu@1 { 31*0d17c865SAndre Przywara compatible = "arm,cortex-a53"; 32*0d17c865SAndre Przywara device_type = "cpu"; 33*0d17c865SAndre Przywara reg = <1>; 34*0d17c865SAndre Przywara enable-method = "psci"; 35*0d17c865SAndre Przywara clocks = <&ccu CLK_CPUX>; 36*0d17c865SAndre Przywara }; 37*0d17c865SAndre Przywara 38*0d17c865SAndre Przywara cpu2: cpu@2 { 39*0d17c865SAndre Przywara compatible = "arm,cortex-a53"; 40*0d17c865SAndre Przywara device_type = "cpu"; 41*0d17c865SAndre Przywara reg = <2>; 42*0d17c865SAndre Przywara enable-method = "psci"; 43*0d17c865SAndre Przywara clocks = <&ccu CLK_CPUX>; 44*0d17c865SAndre Przywara }; 45*0d17c865SAndre Przywara 46*0d17c865SAndre Przywara cpu3: cpu@3 { 47*0d17c865SAndre Przywara compatible = "arm,cortex-a53"; 48*0d17c865SAndre Przywara device_type = "cpu"; 49*0d17c865SAndre Przywara reg = <3>; 50*0d17c865SAndre Przywara enable-method = "psci"; 51*0d17c865SAndre Przywara clocks = <&ccu CLK_CPUX>; 52*0d17c865SAndre Przywara }; 53*0d17c865SAndre Przywara }; 54*0d17c865SAndre Przywara 55*0d17c865SAndre Przywara reserved-memory { 56*0d17c865SAndre Przywara #address-cells = <2>; 57*0d17c865SAndre Przywara #size-cells = <2>; 58*0d17c865SAndre Przywara ranges; 59*0d17c865SAndre Przywara 60*0d17c865SAndre Przywara /* 61*0d17c865SAndre Przywara * 256 KiB reserved for Trusted Firmware-A (BL31). 62*0d17c865SAndre Przywara * This is added by BL31 itself, but some bootloaders fail 63*0d17c865SAndre Przywara * to propagate this into the DTB handed to kernels. 64*0d17c865SAndre Przywara */ 65*0d17c865SAndre Przywara secmon@40000000 { 66*0d17c865SAndre Przywara reg = <0x0 0x40000000 0x0 0x40000>; 67*0d17c865SAndre Przywara no-map; 68*0d17c865SAndre Przywara }; 69*0d17c865SAndre Przywara }; 70*0d17c865SAndre Przywara 71*0d17c865SAndre Przywara osc24M: osc24M-clk { 72*0d17c865SAndre Przywara #clock-cells = <0>; 73*0d17c865SAndre Przywara compatible = "fixed-clock"; 74*0d17c865SAndre Przywara clock-frequency = <24000000>; 75*0d17c865SAndre Przywara clock-output-names = "osc24M"; 76*0d17c865SAndre Przywara }; 77*0d17c865SAndre Przywara 78*0d17c865SAndre Przywara pmu { 79*0d17c865SAndre Przywara compatible = "arm,cortex-a53-pmu"; 80*0d17c865SAndre Przywara interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>, 81*0d17c865SAndre Przywara <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>, 82*0d17c865SAndre Przywara <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, 83*0d17c865SAndre Przywara <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; 84*0d17c865SAndre Przywara interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 85*0d17c865SAndre Przywara }; 86*0d17c865SAndre Przywara 87*0d17c865SAndre Przywara psci { 88*0d17c865SAndre Przywara compatible = "arm,psci-0.2"; 89*0d17c865SAndre Przywara method = "smc"; 90*0d17c865SAndre Przywara }; 91*0d17c865SAndre Przywara 92*0d17c865SAndre Przywara timer { 93*0d17c865SAndre Przywara compatible = "arm,armv8-timer"; 94*0d17c865SAndre Przywara arm,no-tick-in-suspend; 95*0d17c865SAndre Przywara interrupts = <GIC_PPI 13 96*0d17c865SAndre Przywara (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 97*0d17c865SAndre Przywara <GIC_PPI 14 98*0d17c865SAndre Przywara (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 99*0d17c865SAndre Przywara <GIC_PPI 11 100*0d17c865SAndre Przywara (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, 101*0d17c865SAndre Przywara <GIC_PPI 10 102*0d17c865SAndre Przywara (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 103*0d17c865SAndre Przywara }; 104*0d17c865SAndre Przywara 105*0d17c865SAndre Przywara soc { 106*0d17c865SAndre Przywara compatible = "simple-bus"; 107*0d17c865SAndre Przywara #address-cells = <1>; 108*0d17c865SAndre Przywara #size-cells = <1>; 109*0d17c865SAndre Przywara ranges = <0x0 0x0 0x0 0x40000000>; 110*0d17c865SAndre Przywara 111*0d17c865SAndre Przywara syscon: syscon@3000000 { 112*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-system-control"; 113*0d17c865SAndre Przywara reg = <0x03000000 0x1000>; 114*0d17c865SAndre Przywara #address-cells = <1>; 115*0d17c865SAndre Przywara #size-cells = <1>; 116*0d17c865SAndre Przywara ranges; 117*0d17c865SAndre Przywara 118*0d17c865SAndre Przywara sram_c: sram@28000 { 119*0d17c865SAndre Przywara compatible = "mmio-sram"; 120*0d17c865SAndre Przywara reg = <0x00028000 0x30000>; 121*0d17c865SAndre Przywara #address-cells = <1>; 122*0d17c865SAndre Przywara #size-cells = <1>; 123*0d17c865SAndre Przywara ranges = <0 0x00028000 0x30000>; 124*0d17c865SAndre Przywara }; 125*0d17c865SAndre Przywara }; 126*0d17c865SAndre Przywara 127*0d17c865SAndre Przywara ccu: clock@3001000 { 128*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-ccu"; 129*0d17c865SAndre Przywara reg = <0x03001000 0x1000>; 130*0d17c865SAndre Przywara clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>; 131*0d17c865SAndre Przywara clock-names = "hosc", "losc", "iosc"; 132*0d17c865SAndre Przywara #clock-cells = <1>; 133*0d17c865SAndre Przywara #reset-cells = <1>; 134*0d17c865SAndre Przywara }; 135*0d17c865SAndre Przywara 136*0d17c865SAndre Przywara watchdog: watchdog@30090a0 { 137*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-wdt", 138*0d17c865SAndre Przywara "allwinner,sun6i-a31-wdt"; 139*0d17c865SAndre Przywara reg = <0x030090a0 0x20>; 140*0d17c865SAndre Przywara interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 141*0d17c865SAndre Przywara clocks = <&osc24M>; 142*0d17c865SAndre Przywara }; 143*0d17c865SAndre Przywara 144*0d17c865SAndre Przywara pio: pinctrl@300b000 { 145*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-pinctrl"; 146*0d17c865SAndre Przywara reg = <0x0300b000 0x400>; 147*0d17c865SAndre Przywara interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 148*0d17c865SAndre Przywara <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 149*0d17c865SAndre Przywara <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 150*0d17c865SAndre Przywara <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, 151*0d17c865SAndre Przywara <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 152*0d17c865SAndre Przywara <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 153*0d17c865SAndre Przywara <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 154*0d17c865SAndre Przywara <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; 155*0d17c865SAndre Przywara clocks = <&ccu CLK_APB1>, <&osc24M>, <&rtc CLK_OSC32K>; 156*0d17c865SAndre Przywara clock-names = "apb", "hosc", "losc"; 157*0d17c865SAndre Przywara gpio-controller; 158*0d17c865SAndre Przywara #gpio-cells = <3>; 159*0d17c865SAndre Przywara interrupt-controller; 160*0d17c865SAndre Przywara #interrupt-cells = <3>; 161*0d17c865SAndre Przywara 162*0d17c865SAndre Przywara ext_rgmii_pins: rgmii-pins { 163*0d17c865SAndre Przywara pins = "PI0", "PI1", "PI2", "PI3", "PI4", 164*0d17c865SAndre Przywara "PI5", "PI7", "PI8", "PI9", "PI10", 165*0d17c865SAndre Przywara "PI11", "PI12", "PI13", "PI14", "PI15", 166*0d17c865SAndre Przywara "PI16"; 167*0d17c865SAndre Przywara function = "emac0"; 168*0d17c865SAndre Przywara drive-strength = <40>; 169*0d17c865SAndre Przywara }; 170*0d17c865SAndre Przywara 171*0d17c865SAndre Przywara i2c0_pins: i2c0-pins { 172*0d17c865SAndre Przywara pins = "PI6", "PI7"; 173*0d17c865SAndre Przywara function = "i2c0"; 174*0d17c865SAndre Przywara }; 175*0d17c865SAndre Przywara 176*0d17c865SAndre Przywara i2c3_ph_pins: i2c3-ph-pins { 177*0d17c865SAndre Przywara pins = "PH4", "PH5"; 178*0d17c865SAndre Przywara function = "i2c3"; 179*0d17c865SAndre Przywara }; 180*0d17c865SAndre Przywara 181*0d17c865SAndre Przywara ir_rx_pin: ir-rx-pin { 182*0d17c865SAndre Przywara pins = "PH10"; 183*0d17c865SAndre Przywara function = "ir_rx"; 184*0d17c865SAndre Przywara }; 185*0d17c865SAndre Przywara 186*0d17c865SAndre Przywara mmc0_pins: mmc0-pins { 187*0d17c865SAndre Przywara pins = "PF0", "PF1", "PF2", "PF3", 188*0d17c865SAndre Przywara "PF4", "PF5"; 189*0d17c865SAndre Przywara function = "mmc0"; 190*0d17c865SAndre Przywara drive-strength = <30>; 191*0d17c865SAndre Przywara bias-pull-up; 192*0d17c865SAndre Przywara }; 193*0d17c865SAndre Przywara 194*0d17c865SAndre Przywara /omit-if-no-ref/ 195*0d17c865SAndre Przywara mmc1_pins: mmc1-pins { 196*0d17c865SAndre Przywara pins = "PG0", "PG1", "PG2", "PG3", 197*0d17c865SAndre Przywara "PG4", "PG5"; 198*0d17c865SAndre Przywara function = "mmc1"; 199*0d17c865SAndre Przywara drive-strength = <30>; 200*0d17c865SAndre Przywara bias-pull-up; 201*0d17c865SAndre Przywara }; 202*0d17c865SAndre Przywara 203*0d17c865SAndre Przywara mmc2_pins: mmc2-pins { 204*0d17c865SAndre Przywara pins = "PC0", "PC1", "PC5", "PC6", 205*0d17c865SAndre Przywara "PC8", "PC9", "PC10", "PC11", 206*0d17c865SAndre Przywara "PC13", "PC14", "PC15", "PC16"; 207*0d17c865SAndre Przywara function = "mmc2"; 208*0d17c865SAndre Przywara drive-strength = <30>; 209*0d17c865SAndre Przywara bias-pull-up; 210*0d17c865SAndre Przywara }; 211*0d17c865SAndre Przywara 212*0d17c865SAndre Przywara /omit-if-no-ref/ 213*0d17c865SAndre Przywara spi0_pins: spi0-pins { 214*0d17c865SAndre Przywara pins = "PC0", "PC2", "PC4"; 215*0d17c865SAndre Przywara function = "spi0"; 216*0d17c865SAndre Przywara }; 217*0d17c865SAndre Przywara 218*0d17c865SAndre Przywara /omit-if-no-ref/ 219*0d17c865SAndre Przywara spi0_cs0_pin: spi0-cs0-pin { 220*0d17c865SAndre Przywara pins = "PC3"; 221*0d17c865SAndre Przywara function = "spi0"; 222*0d17c865SAndre Przywara }; 223*0d17c865SAndre Przywara 224*0d17c865SAndre Przywara /omit-if-no-ref/ 225*0d17c865SAndre Przywara spi1_pins: spi1-pins { 226*0d17c865SAndre Przywara pins = "PH6", "PH7", "PH8"; 227*0d17c865SAndre Przywara function = "spi1"; 228*0d17c865SAndre Przywara }; 229*0d17c865SAndre Przywara 230*0d17c865SAndre Przywara /omit-if-no-ref/ 231*0d17c865SAndre Przywara spi1_cs0_pin: spi1-cs0-pin { 232*0d17c865SAndre Przywara pins = "PH5"; 233*0d17c865SAndre Przywara function = "spi1"; 234*0d17c865SAndre Przywara }; 235*0d17c865SAndre Przywara 236*0d17c865SAndre Przywara uart0_ph_pins: uart0-ph-pins { 237*0d17c865SAndre Przywara pins = "PH0", "PH1"; 238*0d17c865SAndre Przywara function = "uart0"; 239*0d17c865SAndre Przywara }; 240*0d17c865SAndre Przywara 241*0d17c865SAndre Przywara /omit-if-no-ref/ 242*0d17c865SAndre Przywara uart1_pins: uart1-pins { 243*0d17c865SAndre Przywara pins = "PG6", "PG7"; 244*0d17c865SAndre Przywara function = "uart1"; 245*0d17c865SAndre Przywara }; 246*0d17c865SAndre Przywara 247*0d17c865SAndre Przywara /omit-if-no-ref/ 248*0d17c865SAndre Przywara uart1_rts_cts_pins: uart1-rts-cts-pins { 249*0d17c865SAndre Przywara pins = "PG8", "PG9"; 250*0d17c865SAndre Przywara function = "uart1"; 251*0d17c865SAndre Przywara }; 252*0d17c865SAndre Przywara }; 253*0d17c865SAndre Przywara 254*0d17c865SAndre Przywara gic: interrupt-controller@3021000 { 255*0d17c865SAndre Przywara compatible = "arm,gic-400"; 256*0d17c865SAndre Przywara reg = <0x03021000 0x1000>, 257*0d17c865SAndre Przywara <0x03022000 0x2000>, 258*0d17c865SAndre Przywara <0x03024000 0x2000>, 259*0d17c865SAndre Przywara <0x03026000 0x2000>; 260*0d17c865SAndre Przywara interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 261*0d17c865SAndre Przywara interrupt-controller; 262*0d17c865SAndre Przywara #interrupt-cells = <3>; 263*0d17c865SAndre Przywara }; 264*0d17c865SAndre Przywara 265*0d17c865SAndre Przywara mmc0: mmc@4020000 { 266*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-mmc", 267*0d17c865SAndre Przywara "allwinner,sun50i-a100-mmc"; 268*0d17c865SAndre Przywara reg = <0x04020000 0x1000>; 269*0d17c865SAndre Przywara clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>; 270*0d17c865SAndre Przywara clock-names = "ahb", "mmc"; 271*0d17c865SAndre Przywara resets = <&ccu RST_BUS_MMC0>; 272*0d17c865SAndre Przywara reset-names = "ahb"; 273*0d17c865SAndre Przywara interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 274*0d17c865SAndre Przywara pinctrl-names = "default"; 275*0d17c865SAndre Przywara pinctrl-0 = <&mmc0_pins>; 276*0d17c865SAndre Przywara status = "disabled"; 277*0d17c865SAndre Przywara max-frequency = <150000000>; 278*0d17c865SAndre Przywara cap-sd-highspeed; 279*0d17c865SAndre Przywara cap-mmc-highspeed; 280*0d17c865SAndre Przywara mmc-ddr-3_3v; 281*0d17c865SAndre Przywara cap-sdio-irq; 282*0d17c865SAndre Przywara #address-cells = <1>; 283*0d17c865SAndre Przywara #size-cells = <0>; 284*0d17c865SAndre Przywara }; 285*0d17c865SAndre Przywara 286*0d17c865SAndre Przywara mmc1: mmc@4021000 { 287*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-mmc", 288*0d17c865SAndre Przywara "allwinner,sun50i-a100-mmc"; 289*0d17c865SAndre Przywara reg = <0x04021000 0x1000>; 290*0d17c865SAndre Przywara clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>; 291*0d17c865SAndre Przywara clock-names = "ahb", "mmc"; 292*0d17c865SAndre Przywara resets = <&ccu RST_BUS_MMC1>; 293*0d17c865SAndre Przywara reset-names = "ahb"; 294*0d17c865SAndre Przywara interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 295*0d17c865SAndre Przywara pinctrl-names = "default"; 296*0d17c865SAndre Przywara pinctrl-0 = <&mmc1_pins>; 297*0d17c865SAndre Przywara status = "disabled"; 298*0d17c865SAndre Przywara max-frequency = <150000000>; 299*0d17c865SAndre Przywara cap-sd-highspeed; 300*0d17c865SAndre Przywara cap-mmc-highspeed; 301*0d17c865SAndre Przywara mmc-ddr-3_3v; 302*0d17c865SAndre Przywara cap-sdio-irq; 303*0d17c865SAndre Przywara #address-cells = <1>; 304*0d17c865SAndre Przywara #size-cells = <0>; 305*0d17c865SAndre Przywara }; 306*0d17c865SAndre Przywara 307*0d17c865SAndre Przywara mmc2: mmc@4022000 { 308*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-emmc", 309*0d17c865SAndre Przywara "allwinner,sun50i-a100-emmc"; 310*0d17c865SAndre Przywara reg = <0x04022000 0x1000>; 311*0d17c865SAndre Przywara clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>; 312*0d17c865SAndre Przywara clock-names = "ahb", "mmc"; 313*0d17c865SAndre Przywara resets = <&ccu RST_BUS_MMC2>; 314*0d17c865SAndre Przywara reset-names = "ahb"; 315*0d17c865SAndre Przywara interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 316*0d17c865SAndre Przywara pinctrl-names = "default"; 317*0d17c865SAndre Przywara pinctrl-0 = <&mmc2_pins>; 318*0d17c865SAndre Przywara status = "disabled"; 319*0d17c865SAndre Przywara max-frequency = <150000000>; 320*0d17c865SAndre Przywara cap-sd-highspeed; 321*0d17c865SAndre Przywara cap-mmc-highspeed; 322*0d17c865SAndre Przywara mmc-ddr-3_3v; 323*0d17c865SAndre Przywara cap-sdio-irq; 324*0d17c865SAndre Przywara #address-cells = <1>; 325*0d17c865SAndre Przywara #size-cells = <0>; 326*0d17c865SAndre Przywara }; 327*0d17c865SAndre Przywara 328*0d17c865SAndre Przywara uart0: serial@5000000 { 329*0d17c865SAndre Przywara compatible = "snps,dw-apb-uart"; 330*0d17c865SAndre Przywara reg = <0x05000000 0x400>; 331*0d17c865SAndre Przywara interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 332*0d17c865SAndre Przywara reg-shift = <2>; 333*0d17c865SAndre Przywara reg-io-width = <4>; 334*0d17c865SAndre Przywara clocks = <&ccu CLK_BUS_UART0>; 335*0d17c865SAndre Przywara resets = <&ccu RST_BUS_UART0>; 336*0d17c865SAndre Przywara status = "disabled"; 337*0d17c865SAndre Przywara }; 338*0d17c865SAndre Przywara 339*0d17c865SAndre Przywara uart1: serial@5000400 { 340*0d17c865SAndre Przywara compatible = "snps,dw-apb-uart"; 341*0d17c865SAndre Przywara reg = <0x05000400 0x400>; 342*0d17c865SAndre Przywara interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 343*0d17c865SAndre Przywara reg-shift = <2>; 344*0d17c865SAndre Przywara reg-io-width = <4>; 345*0d17c865SAndre Przywara clocks = <&ccu CLK_BUS_UART1>; 346*0d17c865SAndre Przywara resets = <&ccu RST_BUS_UART1>; 347*0d17c865SAndre Przywara status = "disabled"; 348*0d17c865SAndre Przywara }; 349*0d17c865SAndre Przywara 350*0d17c865SAndre Przywara uart2: serial@5000800 { 351*0d17c865SAndre Przywara compatible = "snps,dw-apb-uart"; 352*0d17c865SAndre Przywara reg = <0x05000800 0x400>; 353*0d17c865SAndre Przywara interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 354*0d17c865SAndre Przywara reg-shift = <2>; 355*0d17c865SAndre Przywara reg-io-width = <4>; 356*0d17c865SAndre Przywara clocks = <&ccu CLK_BUS_UART2>; 357*0d17c865SAndre Przywara resets = <&ccu RST_BUS_UART2>; 358*0d17c865SAndre Przywara status = "disabled"; 359*0d17c865SAndre Przywara }; 360*0d17c865SAndre Przywara 361*0d17c865SAndre Przywara uart3: serial@5000c00 { 362*0d17c865SAndre Przywara compatible = "snps,dw-apb-uart"; 363*0d17c865SAndre Przywara reg = <0x05000c00 0x400>; 364*0d17c865SAndre Przywara interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 365*0d17c865SAndre Przywara reg-shift = <2>; 366*0d17c865SAndre Przywara reg-io-width = <4>; 367*0d17c865SAndre Przywara clocks = <&ccu CLK_BUS_UART3>; 368*0d17c865SAndre Przywara resets = <&ccu RST_BUS_UART3>; 369*0d17c865SAndre Przywara status = "disabled"; 370*0d17c865SAndre Przywara }; 371*0d17c865SAndre Przywara 372*0d17c865SAndre Przywara uart4: serial@5001000 { 373*0d17c865SAndre Przywara compatible = "snps,dw-apb-uart"; 374*0d17c865SAndre Przywara reg = <0x05001000 0x400>; 375*0d17c865SAndre Przywara interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 376*0d17c865SAndre Przywara reg-shift = <2>; 377*0d17c865SAndre Przywara reg-io-width = <4>; 378*0d17c865SAndre Przywara clocks = <&ccu CLK_BUS_UART4>; 379*0d17c865SAndre Przywara resets = <&ccu RST_BUS_UART4>; 380*0d17c865SAndre Przywara status = "disabled"; 381*0d17c865SAndre Przywara }; 382*0d17c865SAndre Przywara 383*0d17c865SAndre Przywara uart5: serial@5001400 { 384*0d17c865SAndre Przywara compatible = "snps,dw-apb-uart"; 385*0d17c865SAndre Przywara reg = <0x05001400 0x400>; 386*0d17c865SAndre Przywara interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 387*0d17c865SAndre Przywara reg-shift = <2>; 388*0d17c865SAndre Przywara reg-io-width = <4>; 389*0d17c865SAndre Przywara clocks = <&ccu CLK_BUS_UART5>; 390*0d17c865SAndre Przywara resets = <&ccu RST_BUS_UART5>; 391*0d17c865SAndre Przywara status = "disabled"; 392*0d17c865SAndre Przywara }; 393*0d17c865SAndre Przywara 394*0d17c865SAndre Przywara i2c0: i2c@5002000 { 395*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-i2c", 396*0d17c865SAndre Przywara "allwinner,sun8i-v536-i2c", 397*0d17c865SAndre Przywara "allwinner,sun6i-a31-i2c"; 398*0d17c865SAndre Przywara reg = <0x05002000 0x400>; 399*0d17c865SAndre Przywara interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 400*0d17c865SAndre Przywara clocks = <&ccu CLK_BUS_I2C0>; 401*0d17c865SAndre Przywara resets = <&ccu RST_BUS_I2C0>; 402*0d17c865SAndre Przywara pinctrl-names = "default"; 403*0d17c865SAndre Przywara pinctrl-0 = <&i2c0_pins>; 404*0d17c865SAndre Przywara status = "disabled"; 405*0d17c865SAndre Przywara #address-cells = <1>; 406*0d17c865SAndre Przywara #size-cells = <0>; 407*0d17c865SAndre Przywara }; 408*0d17c865SAndre Przywara 409*0d17c865SAndre Przywara i2c1: i2c@5002400 { 410*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-i2c", 411*0d17c865SAndre Przywara "allwinner,sun8i-v536-i2c", 412*0d17c865SAndre Przywara "allwinner,sun6i-a31-i2c"; 413*0d17c865SAndre Przywara reg = <0x05002400 0x400>; 414*0d17c865SAndre Przywara interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 415*0d17c865SAndre Przywara clocks = <&ccu CLK_BUS_I2C1>; 416*0d17c865SAndre Przywara resets = <&ccu RST_BUS_I2C1>; 417*0d17c865SAndre Przywara status = "disabled"; 418*0d17c865SAndre Przywara #address-cells = <1>; 419*0d17c865SAndre Przywara #size-cells = <0>; 420*0d17c865SAndre Przywara }; 421*0d17c865SAndre Przywara 422*0d17c865SAndre Przywara i2c2: i2c@5002800 { 423*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-i2c", 424*0d17c865SAndre Przywara "allwinner,sun8i-v536-i2c", 425*0d17c865SAndre Przywara "allwinner,sun6i-a31-i2c"; 426*0d17c865SAndre Przywara reg = <0x05002800 0x400>; 427*0d17c865SAndre Przywara interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 428*0d17c865SAndre Przywara clocks = <&ccu CLK_BUS_I2C2>; 429*0d17c865SAndre Przywara resets = <&ccu RST_BUS_I2C2>; 430*0d17c865SAndre Przywara status = "disabled"; 431*0d17c865SAndre Przywara #address-cells = <1>; 432*0d17c865SAndre Przywara #size-cells = <0>; 433*0d17c865SAndre Przywara }; 434*0d17c865SAndre Przywara 435*0d17c865SAndre Przywara i2c3: i2c@5002c00 { 436*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-i2c", 437*0d17c865SAndre Przywara "allwinner,sun8i-v536-i2c", 438*0d17c865SAndre Przywara "allwinner,sun6i-a31-i2c"; 439*0d17c865SAndre Przywara reg = <0x05002c00 0x400>; 440*0d17c865SAndre Przywara interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 441*0d17c865SAndre Przywara clocks = <&ccu CLK_BUS_I2C3>; 442*0d17c865SAndre Przywara resets = <&ccu RST_BUS_I2C3>; 443*0d17c865SAndre Przywara status = "disabled"; 444*0d17c865SAndre Przywara #address-cells = <1>; 445*0d17c865SAndre Przywara #size-cells = <0>; 446*0d17c865SAndre Przywara }; 447*0d17c865SAndre Przywara 448*0d17c865SAndre Przywara i2c4: i2c@5003000 { 449*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-i2c", 450*0d17c865SAndre Przywara "allwinner,sun8i-v536-i2c", 451*0d17c865SAndre Przywara "allwinner,sun6i-a31-i2c"; 452*0d17c865SAndre Przywara reg = <0x05003000 0x400>; 453*0d17c865SAndre Przywara interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 454*0d17c865SAndre Przywara clocks = <&ccu CLK_BUS_I2C4>; 455*0d17c865SAndre Przywara resets = <&ccu RST_BUS_I2C4>; 456*0d17c865SAndre Przywara status = "disabled"; 457*0d17c865SAndre Przywara #address-cells = <1>; 458*0d17c865SAndre Przywara #size-cells = <0>; 459*0d17c865SAndre Przywara }; 460*0d17c865SAndre Przywara 461*0d17c865SAndre Przywara spi0: spi@5010000 { 462*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-spi", 463*0d17c865SAndre Przywara "allwinner,sun8i-h3-spi"; 464*0d17c865SAndre Przywara reg = <0x05010000 0x1000>; 465*0d17c865SAndre Przywara interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 466*0d17c865SAndre Przywara clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>; 467*0d17c865SAndre Przywara clock-names = "ahb", "mod"; 468*0d17c865SAndre Przywara resets = <&ccu RST_BUS_SPI0>; 469*0d17c865SAndre Przywara status = "disabled"; 470*0d17c865SAndre Przywara #address-cells = <1>; 471*0d17c865SAndre Przywara #size-cells = <0>; 472*0d17c865SAndre Przywara }; 473*0d17c865SAndre Przywara 474*0d17c865SAndre Przywara spi1: spi@5011000 { 475*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-spi", 476*0d17c865SAndre Przywara "allwinner,sun8i-h3-spi"; 477*0d17c865SAndre Przywara reg = <0x05011000 0x1000>; 478*0d17c865SAndre Przywara interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 479*0d17c865SAndre Przywara clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>; 480*0d17c865SAndre Przywara clock-names = "ahb", "mod"; 481*0d17c865SAndre Przywara resets = <&ccu RST_BUS_SPI1>; 482*0d17c865SAndre Przywara status = "disabled"; 483*0d17c865SAndre Przywara #address-cells = <1>; 484*0d17c865SAndre Przywara #size-cells = <0>; 485*0d17c865SAndre Przywara }; 486*0d17c865SAndre Przywara 487*0d17c865SAndre Przywara emac0: ethernet@5020000 { 488*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-emac0", 489*0d17c865SAndre Przywara "allwinner,sun50i-a64-emac"; 490*0d17c865SAndre Przywara reg = <0x05020000 0x10000>; 491*0d17c865SAndre Przywara interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 492*0d17c865SAndre Przywara interrupt-names = "macirq"; 493*0d17c865SAndre Przywara clocks = <&ccu CLK_BUS_EMAC0>; 494*0d17c865SAndre Przywara clock-names = "stmmaceth"; 495*0d17c865SAndre Przywara resets = <&ccu RST_BUS_EMAC0>; 496*0d17c865SAndre Przywara reset-names = "stmmaceth"; 497*0d17c865SAndre Przywara syscon = <&syscon>; 498*0d17c865SAndre Przywara status = "disabled"; 499*0d17c865SAndre Przywara 500*0d17c865SAndre Przywara mdio0: mdio { 501*0d17c865SAndre Przywara compatible = "snps,dwmac-mdio"; 502*0d17c865SAndre Przywara #address-cells = <1>; 503*0d17c865SAndre Przywara #size-cells = <0>; 504*0d17c865SAndre Przywara }; 505*0d17c865SAndre Przywara }; 506*0d17c865SAndre Przywara 507*0d17c865SAndre Przywara rtc: rtc@7000000 { 508*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-rtc"; 509*0d17c865SAndre Przywara reg = <0x07000000 0x400>; 510*0d17c865SAndre Przywara interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; 511*0d17c865SAndre Przywara clocks = <&r_ccu CLK_R_APB1_RTC>, <&osc24M>, 512*0d17c865SAndre Przywara <&ccu CLK_PLL_SYSTEM_32K>; 513*0d17c865SAndre Przywara clock-names = "bus", "hosc", 514*0d17c865SAndre Przywara "pll-32k"; 515*0d17c865SAndre Przywara #clock-cells = <1>; 516*0d17c865SAndre Przywara }; 517*0d17c865SAndre Przywara 518*0d17c865SAndre Przywara r_ccu: clock@7010000 { 519*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-r-ccu"; 520*0d17c865SAndre Przywara reg = <0x07010000 0x210>; 521*0d17c865SAndre Przywara clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>, 522*0d17c865SAndre Przywara <&ccu CLK_PLL_PERIPH0>; 523*0d17c865SAndre Przywara clock-names = "hosc", "losc", "iosc", "pll-periph"; 524*0d17c865SAndre Przywara #clock-cells = <1>; 525*0d17c865SAndre Przywara #reset-cells = <1>; 526*0d17c865SAndre Przywara }; 527*0d17c865SAndre Przywara 528*0d17c865SAndre Przywara r_pio: pinctrl@7022000 { 529*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-r-pinctrl"; 530*0d17c865SAndre Przywara reg = <0x07022000 0x400>; 531*0d17c865SAndre Przywara clocks = <&r_ccu CLK_R_APB1>, <&osc24M>, 532*0d17c865SAndre Przywara <&rtc CLK_OSC32K>; 533*0d17c865SAndre Przywara clock-names = "apb", "hosc", "losc"; 534*0d17c865SAndre Przywara gpio-controller; 535*0d17c865SAndre Przywara #gpio-cells = <3>; 536*0d17c865SAndre Przywara 537*0d17c865SAndre Przywara /omit-if-no-ref/ 538*0d17c865SAndre Przywara r_i2c_pins: r-i2c-pins { 539*0d17c865SAndre Przywara pins = "PL0", "PL1"; 540*0d17c865SAndre Przywara function = "s_i2c"; 541*0d17c865SAndre Przywara }; 542*0d17c865SAndre Przywara 543*0d17c865SAndre Przywara r_rsb_pins: r-rsb-pins { 544*0d17c865SAndre Przywara pins = "PL0", "PL1"; 545*0d17c865SAndre Przywara function = "s_rsb"; 546*0d17c865SAndre Przywara }; 547*0d17c865SAndre Przywara }; 548*0d17c865SAndre Przywara 549*0d17c865SAndre Przywara ir: ir@7040000 { 550*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-ir", 551*0d17c865SAndre Przywara "allwinner,sun6i-a31-ir"; 552*0d17c865SAndre Przywara reg = <0x07040000 0x400>; 553*0d17c865SAndre Przywara interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; 554*0d17c865SAndre Przywara clocks = <&r_ccu CLK_R_APB1_IR>, 555*0d17c865SAndre Przywara <&r_ccu CLK_IR>; 556*0d17c865SAndre Przywara clock-names = "apb", "ir"; 557*0d17c865SAndre Przywara resets = <&r_ccu RST_R_APB1_IR>; 558*0d17c865SAndre Przywara pinctrl-names = "default"; 559*0d17c865SAndre Przywara pinctrl-0 = <&ir_rx_pin>; 560*0d17c865SAndre Przywara status = "disabled"; 561*0d17c865SAndre Przywara }; 562*0d17c865SAndre Przywara 563*0d17c865SAndre Przywara r_i2c: i2c@7081400 { 564*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-i2c", 565*0d17c865SAndre Przywara "allwinner,sun8i-v536-i2c", 566*0d17c865SAndre Przywara "allwinner,sun6i-a31-i2c"; 567*0d17c865SAndre Przywara reg = <0x07081400 0x400>; 568*0d17c865SAndre Przywara interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 569*0d17c865SAndre Przywara clocks = <&r_ccu CLK_R_APB2_I2C>; 570*0d17c865SAndre Przywara resets = <&r_ccu RST_R_APB2_I2C>; 571*0d17c865SAndre Przywara status = "disabled"; 572*0d17c865SAndre Przywara #address-cells = <1>; 573*0d17c865SAndre Przywara #size-cells = <0>; 574*0d17c865SAndre Przywara }; 575*0d17c865SAndre Przywara 576*0d17c865SAndre Przywara r_rsb: rsb@7083000 { 577*0d17c865SAndre Przywara compatible = "allwinner,sun50i-h616-rsb", 578*0d17c865SAndre Przywara "allwinner,sun8i-a23-rsb"; 579*0d17c865SAndre Przywara reg = <0x07083000 0x400>; 580*0d17c865SAndre Przywara interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 581*0d17c865SAndre Przywara clocks = <&r_ccu CLK_R_APB2_RSB>; 582*0d17c865SAndre Przywara clock-frequency = <3000000>; 583*0d17c865SAndre Przywara resets = <&r_ccu RST_R_APB2_RSB>; 584*0d17c865SAndre Przywara pinctrl-names = "default"; 585*0d17c865SAndre Przywara pinctrl-0 = <&r_rsb_pins>; 586*0d17c865SAndre Przywara status = "disabled"; 587*0d17c865SAndre Przywara #address-cells = <1>; 588*0d17c865SAndre Przywara #size-cells = <0>; 589*0d17c865SAndre Przywara }; 590*0d17c865SAndre Przywara }; 591*0d17c865SAndre Przywara}; 592