1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Device Tree Include file for Marvell Armada 1500 (Berlin BG2) SoC 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * based on GPL'ed 2.6 kernel sources 8*4882a593Smuzhiyun * (c) Marvell International Ltd. 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun#include <dt-bindings/clock/berlin2.h> 12*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun/ { 15*4882a593Smuzhiyun model = "Marvell Armada 1500 (BG2) SoC"; 16*4882a593Smuzhiyun compatible = "marvell,berlin2", "marvell,berlin"; 17*4882a593Smuzhiyun #address-cells = <1>; 18*4882a593Smuzhiyun #size-cells = <1>; 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun aliases { 21*4882a593Smuzhiyun serial0 = &uart0; 22*4882a593Smuzhiyun serial1 = &uart1; 23*4882a593Smuzhiyun serial2 = &uart2; 24*4882a593Smuzhiyun }; 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun cpus { 27*4882a593Smuzhiyun #address-cells = <1>; 28*4882a593Smuzhiyun #size-cells = <0>; 29*4882a593Smuzhiyun enable-method = "marvell,berlin-smp"; 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun cpu@0 { 32*4882a593Smuzhiyun compatible = "marvell,pj4b"; 33*4882a593Smuzhiyun device_type = "cpu"; 34*4882a593Smuzhiyun next-level-cache = <&l2>; 35*4882a593Smuzhiyun reg = <0>; 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun clocks = <&chip_clk CLKID_CPU>; 38*4882a593Smuzhiyun clock-latency = <100000>; 39*4882a593Smuzhiyun operating-points = < 40*4882a593Smuzhiyun /* kHz uV */ 41*4882a593Smuzhiyun 1200000 1200000 42*4882a593Smuzhiyun 1000000 1200000 43*4882a593Smuzhiyun 800000 1200000 44*4882a593Smuzhiyun 600000 1200000 45*4882a593Smuzhiyun >; 46*4882a593Smuzhiyun }; 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun cpu@1 { 49*4882a593Smuzhiyun compatible = "marvell,pj4b"; 50*4882a593Smuzhiyun device_type = "cpu"; 51*4882a593Smuzhiyun next-level-cache = <&l2>; 52*4882a593Smuzhiyun reg = <1>; 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun clocks = <&chip_clk CLKID_CPU>; 55*4882a593Smuzhiyun clock-latency = <100000>; 56*4882a593Smuzhiyun operating-points = < 57*4882a593Smuzhiyun /* kHz uV */ 58*4882a593Smuzhiyun 1200000 1200000 59*4882a593Smuzhiyun 1000000 1200000 60*4882a593Smuzhiyun 800000 1200000 61*4882a593Smuzhiyun 600000 1200000 62*4882a593Smuzhiyun >; 63*4882a593Smuzhiyun }; 64*4882a593Smuzhiyun }; 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun refclk: oscillator { 67*4882a593Smuzhiyun compatible = "fixed-clock"; 68*4882a593Smuzhiyun #clock-cells = <0>; 69*4882a593Smuzhiyun clock-frequency = <25000000>; 70*4882a593Smuzhiyun }; 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun soc@f7000000 { 73*4882a593Smuzhiyun compatible = "simple-bus"; 74*4882a593Smuzhiyun #address-cells = <1>; 75*4882a593Smuzhiyun #size-cells = <1>; 76*4882a593Smuzhiyun interrupt-parent = <&gic>; 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun ranges = <0 0xf7000000 0x1000000>; 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun sdhci0: mmc@ab0000 { 81*4882a593Smuzhiyun compatible = "mrvl,pxav3-mmc"; 82*4882a593Smuzhiyun reg = <0xab0000 0x200>; 83*4882a593Smuzhiyun clocks = <&chip_clk CLKID_SDIO0XIN>, <&chip_clk CLKID_SDIO0>; 84*4882a593Smuzhiyun clock-names = "io", "core"; 85*4882a593Smuzhiyun interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 86*4882a593Smuzhiyun status = "disabled"; 87*4882a593Smuzhiyun }; 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun sdhci1: mmc@ab0800 { 90*4882a593Smuzhiyun compatible = "mrvl,pxav3-mmc"; 91*4882a593Smuzhiyun reg = <0xab0800 0x200>; 92*4882a593Smuzhiyun clocks = <&chip_clk CLKID_SDIO1XIN>, <&chip_clk CLKID_SDIO1>; 93*4882a593Smuzhiyun clock-names = "io", "core"; 94*4882a593Smuzhiyun interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 95*4882a593Smuzhiyun status = "disabled"; 96*4882a593Smuzhiyun }; 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun sdhci2: mmc@ab1000 { 99*4882a593Smuzhiyun compatible = "mrvl,pxav3-mmc"; 100*4882a593Smuzhiyun reg = <0xab1000 0x200>; 101*4882a593Smuzhiyun interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 102*4882a593Smuzhiyun clocks = <&chip_clk CLKID_NFC_ECC>, <&chip_clk CLKID_NFC>; 103*4882a593Smuzhiyun clock-names = "io", "core"; 104*4882a593Smuzhiyun pinctrl-0 = <&emmc_pmux>; 105*4882a593Smuzhiyun pinctrl-names = "default"; 106*4882a593Smuzhiyun status = "disabled"; 107*4882a593Smuzhiyun }; 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun l2: cache-controller@ac0000 { 110*4882a593Smuzhiyun compatible = "marvell,tauros3-cache", "arm,pl310-cache"; 111*4882a593Smuzhiyun reg = <0xac0000 0x1000>; 112*4882a593Smuzhiyun cache-unified; 113*4882a593Smuzhiyun cache-level = <2>; 114*4882a593Smuzhiyun }; 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun scu: snoop-control-unit@ad0000 { 117*4882a593Smuzhiyun compatible = "arm,cortex-a9-scu"; 118*4882a593Smuzhiyun reg = <0xad0000 0x58>; 119*4882a593Smuzhiyun }; 120*4882a593Smuzhiyun 121*4882a593Smuzhiyun gic: interrupt-controller@ad1000 { 122*4882a593Smuzhiyun compatible = "arm,cortex-a9-gic"; 123*4882a593Smuzhiyun reg = <0xad1000 0x1000>, <0xad0100 0x0100>; 124*4882a593Smuzhiyun interrupt-controller; 125*4882a593Smuzhiyun #interrupt-cells = <3>; 126*4882a593Smuzhiyun }; 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun local-timer@ad0600 { 129*4882a593Smuzhiyun compatible = "arm,cortex-a9-twd-timer"; 130*4882a593Smuzhiyun reg = <0xad0600 0x20>; 131*4882a593Smuzhiyun interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>; 132*4882a593Smuzhiyun clocks = <&chip_clk CLKID_TWD>; 133*4882a593Smuzhiyun }; 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun eth1: ethernet@b90000 { 136*4882a593Smuzhiyun compatible = "marvell,pxa168-eth"; 137*4882a593Smuzhiyun reg = <0xb90000 0x10000>; 138*4882a593Smuzhiyun clocks = <&chip_clk CLKID_GETH1>; 139*4882a593Smuzhiyun interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 140*4882a593Smuzhiyun /* set by bootloader */ 141*4882a593Smuzhiyun local-mac-address = [00 00 00 00 00 00]; 142*4882a593Smuzhiyun #address-cells = <1>; 143*4882a593Smuzhiyun #size-cells = <0>; 144*4882a593Smuzhiyun phy-connection-type = "mii"; 145*4882a593Smuzhiyun phy-handle = <ðphy1>; 146*4882a593Smuzhiyun status = "disabled"; 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun ethphy1: ethernet-phy@0 { 149*4882a593Smuzhiyun reg = <0>; 150*4882a593Smuzhiyun }; 151*4882a593Smuzhiyun }; 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun cpu-ctrl@dd0000 { 154*4882a593Smuzhiyun compatible = "marvell,berlin-cpu-ctrl"; 155*4882a593Smuzhiyun reg = <0xdd0000 0x10000>; 156*4882a593Smuzhiyun }; 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun eth0: ethernet@e50000 { 159*4882a593Smuzhiyun compatible = "marvell,pxa168-eth"; 160*4882a593Smuzhiyun reg = <0xe50000 0x10000>; 161*4882a593Smuzhiyun clocks = <&chip_clk CLKID_GETH0>; 162*4882a593Smuzhiyun interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 163*4882a593Smuzhiyun /* set by bootloader */ 164*4882a593Smuzhiyun local-mac-address = [00 00 00 00 00 00]; 165*4882a593Smuzhiyun #address-cells = <1>; 166*4882a593Smuzhiyun #size-cells = <0>; 167*4882a593Smuzhiyun phy-connection-type = "mii"; 168*4882a593Smuzhiyun phy-handle = <ðphy0>; 169*4882a593Smuzhiyun status = "disabled"; 170*4882a593Smuzhiyun 171*4882a593Smuzhiyun ethphy0: ethernet-phy@0 { 172*4882a593Smuzhiyun reg = <0>; 173*4882a593Smuzhiyun }; 174*4882a593Smuzhiyun }; 175*4882a593Smuzhiyun 176*4882a593Smuzhiyun apb@e80000 { 177*4882a593Smuzhiyun compatible = "simple-bus"; 178*4882a593Smuzhiyun #address-cells = <1>; 179*4882a593Smuzhiyun #size-cells = <1>; 180*4882a593Smuzhiyun 181*4882a593Smuzhiyun ranges = <0 0xe80000 0x10000>; 182*4882a593Smuzhiyun interrupt-parent = <&aic>; 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun gpio0: gpio@400 { 185*4882a593Smuzhiyun compatible = "snps,dw-apb-gpio"; 186*4882a593Smuzhiyun reg = <0x0400 0x400>; 187*4882a593Smuzhiyun #address-cells = <1>; 188*4882a593Smuzhiyun #size-cells = <0>; 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun porta: gpio-port@0 { 191*4882a593Smuzhiyun compatible = "snps,dw-apb-gpio-port"; 192*4882a593Smuzhiyun gpio-controller; 193*4882a593Smuzhiyun #gpio-cells = <2>; 194*4882a593Smuzhiyun snps,nr-gpios = <8>; 195*4882a593Smuzhiyun reg = <0>; 196*4882a593Smuzhiyun interrupt-controller; 197*4882a593Smuzhiyun #interrupt-cells = <2>; 198*4882a593Smuzhiyun interrupts = <0>; 199*4882a593Smuzhiyun }; 200*4882a593Smuzhiyun }; 201*4882a593Smuzhiyun 202*4882a593Smuzhiyun gpio1: gpio@800 { 203*4882a593Smuzhiyun compatible = "snps,dw-apb-gpio"; 204*4882a593Smuzhiyun reg = <0x0800 0x400>; 205*4882a593Smuzhiyun #address-cells = <1>; 206*4882a593Smuzhiyun #size-cells = <0>; 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun portb: gpio-port@1 { 209*4882a593Smuzhiyun compatible = "snps,dw-apb-gpio-port"; 210*4882a593Smuzhiyun gpio-controller; 211*4882a593Smuzhiyun #gpio-cells = <2>; 212*4882a593Smuzhiyun snps,nr-gpios = <8>; 213*4882a593Smuzhiyun reg = <0>; 214*4882a593Smuzhiyun interrupt-controller; 215*4882a593Smuzhiyun #interrupt-cells = <2>; 216*4882a593Smuzhiyun interrupts = <1>; 217*4882a593Smuzhiyun }; 218*4882a593Smuzhiyun }; 219*4882a593Smuzhiyun 220*4882a593Smuzhiyun gpio2: gpio@c00 { 221*4882a593Smuzhiyun compatible = "snps,dw-apb-gpio"; 222*4882a593Smuzhiyun reg = <0x0c00 0x400>; 223*4882a593Smuzhiyun #address-cells = <1>; 224*4882a593Smuzhiyun #size-cells = <0>; 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun portc: gpio-port@2 { 227*4882a593Smuzhiyun compatible = "snps,dw-apb-gpio-port"; 228*4882a593Smuzhiyun gpio-controller; 229*4882a593Smuzhiyun #gpio-cells = <2>; 230*4882a593Smuzhiyun snps,nr-gpios = <8>; 231*4882a593Smuzhiyun reg = <0>; 232*4882a593Smuzhiyun interrupt-controller; 233*4882a593Smuzhiyun #interrupt-cells = <2>; 234*4882a593Smuzhiyun interrupts = <2>; 235*4882a593Smuzhiyun }; 236*4882a593Smuzhiyun }; 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun gpio3: gpio@1000 { 239*4882a593Smuzhiyun compatible = "snps,dw-apb-gpio"; 240*4882a593Smuzhiyun reg = <0x1000 0x400>; 241*4882a593Smuzhiyun #address-cells = <1>; 242*4882a593Smuzhiyun #size-cells = <0>; 243*4882a593Smuzhiyun 244*4882a593Smuzhiyun portd: gpio-port@3 { 245*4882a593Smuzhiyun compatible = "snps,dw-apb-gpio-port"; 246*4882a593Smuzhiyun gpio-controller; 247*4882a593Smuzhiyun #gpio-cells = <2>; 248*4882a593Smuzhiyun snps,nr-gpios = <8>; 249*4882a593Smuzhiyun reg = <0>; 250*4882a593Smuzhiyun interrupt-controller; 251*4882a593Smuzhiyun #interrupt-cells = <2>; 252*4882a593Smuzhiyun interrupts = <3>; 253*4882a593Smuzhiyun }; 254*4882a593Smuzhiyun }; 255*4882a593Smuzhiyun 256*4882a593Smuzhiyun timer0: timer@2c00 { 257*4882a593Smuzhiyun compatible = "snps,dw-apb-timer"; 258*4882a593Smuzhiyun reg = <0x2c00 0x14>; 259*4882a593Smuzhiyun interrupts = <8>; 260*4882a593Smuzhiyun clocks = <&chip_clk CLKID_CFG>; 261*4882a593Smuzhiyun clock-names = "timer"; 262*4882a593Smuzhiyun status = "okay"; 263*4882a593Smuzhiyun }; 264*4882a593Smuzhiyun 265*4882a593Smuzhiyun timer1: timer@2c14 { 266*4882a593Smuzhiyun compatible = "snps,dw-apb-timer"; 267*4882a593Smuzhiyun reg = <0x2c14 0x14>; 268*4882a593Smuzhiyun interrupts = <9>; 269*4882a593Smuzhiyun clocks = <&chip_clk CLKID_CFG>; 270*4882a593Smuzhiyun clock-names = "timer"; 271*4882a593Smuzhiyun status = "okay"; 272*4882a593Smuzhiyun }; 273*4882a593Smuzhiyun 274*4882a593Smuzhiyun timer2: timer@2c28 { 275*4882a593Smuzhiyun compatible = "snps,dw-apb-timer"; 276*4882a593Smuzhiyun reg = <0x2c28 0x14>; 277*4882a593Smuzhiyun interrupts = <10>; 278*4882a593Smuzhiyun clocks = <&chip_clk CLKID_CFG>; 279*4882a593Smuzhiyun clock-names = "timer"; 280*4882a593Smuzhiyun status = "disabled"; 281*4882a593Smuzhiyun }; 282*4882a593Smuzhiyun 283*4882a593Smuzhiyun timer3: timer@2c3c { 284*4882a593Smuzhiyun compatible = "snps,dw-apb-timer"; 285*4882a593Smuzhiyun reg = <0x2c3c 0x14>; 286*4882a593Smuzhiyun interrupts = <11>; 287*4882a593Smuzhiyun clocks = <&chip_clk CLKID_CFG>; 288*4882a593Smuzhiyun clock-names = "timer"; 289*4882a593Smuzhiyun status = "disabled"; 290*4882a593Smuzhiyun }; 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun timer4: timer@2c50 { 293*4882a593Smuzhiyun compatible = "snps,dw-apb-timer"; 294*4882a593Smuzhiyun reg = <0x2c50 0x14>; 295*4882a593Smuzhiyun interrupts = <12>; 296*4882a593Smuzhiyun clocks = <&chip_clk CLKID_CFG>; 297*4882a593Smuzhiyun clock-names = "timer"; 298*4882a593Smuzhiyun status = "disabled"; 299*4882a593Smuzhiyun }; 300*4882a593Smuzhiyun 301*4882a593Smuzhiyun timer5: timer@2c64 { 302*4882a593Smuzhiyun compatible = "snps,dw-apb-timer"; 303*4882a593Smuzhiyun reg = <0x2c64 0x14>; 304*4882a593Smuzhiyun interrupts = <13>; 305*4882a593Smuzhiyun clocks = <&chip_clk CLKID_CFG>; 306*4882a593Smuzhiyun clock-names = "timer"; 307*4882a593Smuzhiyun status = "disabled"; 308*4882a593Smuzhiyun }; 309*4882a593Smuzhiyun 310*4882a593Smuzhiyun timer6: timer@2c78 { 311*4882a593Smuzhiyun compatible = "snps,dw-apb-timer"; 312*4882a593Smuzhiyun reg = <0x2c78 0x14>; 313*4882a593Smuzhiyun interrupts = <14>; 314*4882a593Smuzhiyun clocks = <&chip_clk CLKID_CFG>; 315*4882a593Smuzhiyun clock-names = "timer"; 316*4882a593Smuzhiyun status = "disabled"; 317*4882a593Smuzhiyun }; 318*4882a593Smuzhiyun 319*4882a593Smuzhiyun timer7: timer@2c8c { 320*4882a593Smuzhiyun compatible = "snps,dw-apb-timer"; 321*4882a593Smuzhiyun reg = <0x2c8c 0x14>; 322*4882a593Smuzhiyun interrupts = <15>; 323*4882a593Smuzhiyun clocks = <&chip_clk CLKID_CFG>; 324*4882a593Smuzhiyun clock-names = "timer"; 325*4882a593Smuzhiyun status = "disabled"; 326*4882a593Smuzhiyun }; 327*4882a593Smuzhiyun 328*4882a593Smuzhiyun aic: interrupt-controller@3000 { 329*4882a593Smuzhiyun compatible = "snps,dw-apb-ictl"; 330*4882a593Smuzhiyun reg = <0x3000 0xc00>; 331*4882a593Smuzhiyun interrupt-controller; 332*4882a593Smuzhiyun #interrupt-cells = <1>; 333*4882a593Smuzhiyun interrupt-parent = <&gic>; 334*4882a593Smuzhiyun interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 335*4882a593Smuzhiyun }; 336*4882a593Smuzhiyun }; 337*4882a593Smuzhiyun 338*4882a593Smuzhiyun ahci: sata@e90000 { 339*4882a593Smuzhiyun compatible = "marvell,berlin2-ahci", "generic-ahci"; 340*4882a593Smuzhiyun reg = <0xe90000 0x1000>; 341*4882a593Smuzhiyun interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 342*4882a593Smuzhiyun clocks = <&chip_clk CLKID_SATA>; 343*4882a593Smuzhiyun #address-cells = <1>; 344*4882a593Smuzhiyun #size-cells = <0>; 345*4882a593Smuzhiyun 346*4882a593Smuzhiyun sata0: sata-port@0 { 347*4882a593Smuzhiyun reg = <0>; 348*4882a593Smuzhiyun phys = <&sata_phy 0>; 349*4882a593Smuzhiyun status = "disabled"; 350*4882a593Smuzhiyun }; 351*4882a593Smuzhiyun 352*4882a593Smuzhiyun sata1: sata-port@1 { 353*4882a593Smuzhiyun reg = <1>; 354*4882a593Smuzhiyun phys = <&sata_phy 1>; 355*4882a593Smuzhiyun status = "disabled"; 356*4882a593Smuzhiyun }; 357*4882a593Smuzhiyun }; 358*4882a593Smuzhiyun 359*4882a593Smuzhiyun sata_phy: phy@e900a0 { 360*4882a593Smuzhiyun compatible = "marvell,berlin2-sata-phy"; 361*4882a593Smuzhiyun reg = <0xe900a0 0x200>; 362*4882a593Smuzhiyun clocks = <&chip_clk CLKID_SATA>; 363*4882a593Smuzhiyun #address-cells = <1>; 364*4882a593Smuzhiyun #size-cells = <0>; 365*4882a593Smuzhiyun #phy-cells = <1>; 366*4882a593Smuzhiyun status = "disabled"; 367*4882a593Smuzhiyun 368*4882a593Smuzhiyun sata-phy@0 { 369*4882a593Smuzhiyun reg = <0>; 370*4882a593Smuzhiyun }; 371*4882a593Smuzhiyun 372*4882a593Smuzhiyun sata-phy@1 { 373*4882a593Smuzhiyun reg = <1>; 374*4882a593Smuzhiyun }; 375*4882a593Smuzhiyun }; 376*4882a593Smuzhiyun 377*4882a593Smuzhiyun chip: chip-control@ea0000 { 378*4882a593Smuzhiyun compatible = "simple-mfd", "syscon"; 379*4882a593Smuzhiyun reg = <0xea0000 0x400>; 380*4882a593Smuzhiyun 381*4882a593Smuzhiyun chip_clk: clock { 382*4882a593Smuzhiyun compatible = "marvell,berlin2-clk"; 383*4882a593Smuzhiyun #clock-cells = <1>; 384*4882a593Smuzhiyun clocks = <&refclk>; 385*4882a593Smuzhiyun clock-names = "refclk"; 386*4882a593Smuzhiyun }; 387*4882a593Smuzhiyun 388*4882a593Smuzhiyun soc_pinctrl: pin-controller { 389*4882a593Smuzhiyun compatible = "marvell,berlin2-soc-pinctrl"; 390*4882a593Smuzhiyun 391*4882a593Smuzhiyun emmc_pmux: emmc-pmux { 392*4882a593Smuzhiyun groups = "G26"; 393*4882a593Smuzhiyun function = "emmc"; 394*4882a593Smuzhiyun }; 395*4882a593Smuzhiyun }; 396*4882a593Smuzhiyun 397*4882a593Smuzhiyun chip_rst: reset { 398*4882a593Smuzhiyun compatible = "marvell,berlin2-reset"; 399*4882a593Smuzhiyun #reset-cells = <2>; 400*4882a593Smuzhiyun }; 401*4882a593Smuzhiyun }; 402*4882a593Smuzhiyun 403*4882a593Smuzhiyun pwm: pwm@f20000 { 404*4882a593Smuzhiyun compatible = "marvell,berlin-pwm"; 405*4882a593Smuzhiyun reg = <0xf20000 0x40>; 406*4882a593Smuzhiyun clocks = <&chip_clk CLKID_CFG>; 407*4882a593Smuzhiyun #pwm-cells = <3>; 408*4882a593Smuzhiyun }; 409*4882a593Smuzhiyun 410*4882a593Smuzhiyun apb@fc0000 { 411*4882a593Smuzhiyun compatible = "simple-bus"; 412*4882a593Smuzhiyun #address-cells = <1>; 413*4882a593Smuzhiyun #size-cells = <1>; 414*4882a593Smuzhiyun 415*4882a593Smuzhiyun ranges = <0 0xfc0000 0x10000>; 416*4882a593Smuzhiyun interrupt-parent = <&sic>; 417*4882a593Smuzhiyun 418*4882a593Smuzhiyun wdt0: watchdog@1000 { 419*4882a593Smuzhiyun compatible = "snps,dw-wdt"; 420*4882a593Smuzhiyun reg = <0x1000 0x100>; 421*4882a593Smuzhiyun clocks = <&refclk>; 422*4882a593Smuzhiyun interrupts = <0>; 423*4882a593Smuzhiyun }; 424*4882a593Smuzhiyun 425*4882a593Smuzhiyun wdt1: watchdog@2000 { 426*4882a593Smuzhiyun compatible = "snps,dw-wdt"; 427*4882a593Smuzhiyun reg = <0x2000 0x100>; 428*4882a593Smuzhiyun clocks = <&refclk>; 429*4882a593Smuzhiyun interrupts = <1>; 430*4882a593Smuzhiyun }; 431*4882a593Smuzhiyun 432*4882a593Smuzhiyun wdt2: watchdog@3000 { 433*4882a593Smuzhiyun compatible = "snps,dw-wdt"; 434*4882a593Smuzhiyun reg = <0x3000 0x100>; 435*4882a593Smuzhiyun clocks = <&refclk>; 436*4882a593Smuzhiyun interrupts = <2>; 437*4882a593Smuzhiyun }; 438*4882a593Smuzhiyun 439*4882a593Smuzhiyun sm_gpio1: gpio@5000 { 440*4882a593Smuzhiyun compatible = "snps,dw-apb-gpio"; 441*4882a593Smuzhiyun reg = <0x5000 0x400>; 442*4882a593Smuzhiyun #address-cells = <1>; 443*4882a593Smuzhiyun #size-cells = <0>; 444*4882a593Smuzhiyun 445*4882a593Smuzhiyun portf: gpio-port@5 { 446*4882a593Smuzhiyun compatible = "snps,dw-apb-gpio-port"; 447*4882a593Smuzhiyun gpio-controller; 448*4882a593Smuzhiyun #gpio-cells = <2>; 449*4882a593Smuzhiyun snps,nr-gpios = <8>; 450*4882a593Smuzhiyun reg = <0>; 451*4882a593Smuzhiyun }; 452*4882a593Smuzhiyun }; 453*4882a593Smuzhiyun 454*4882a593Smuzhiyun sm_gpio0: gpio@c000 { 455*4882a593Smuzhiyun compatible = "snps,dw-apb-gpio"; 456*4882a593Smuzhiyun reg = <0xc000 0x400>; 457*4882a593Smuzhiyun #address-cells = <1>; 458*4882a593Smuzhiyun #size-cells = <0>; 459*4882a593Smuzhiyun 460*4882a593Smuzhiyun porte: gpio-port@4 { 461*4882a593Smuzhiyun compatible = "snps,dw-apb-gpio-port"; 462*4882a593Smuzhiyun gpio-controller; 463*4882a593Smuzhiyun #gpio-cells = <2>; 464*4882a593Smuzhiyun snps,nr-gpios = <8>; 465*4882a593Smuzhiyun reg = <0>; 466*4882a593Smuzhiyun interrupt-controller; 467*4882a593Smuzhiyun #interrupt-cells = <2>; 468*4882a593Smuzhiyun interrupts = <11>; 469*4882a593Smuzhiyun }; 470*4882a593Smuzhiyun }; 471*4882a593Smuzhiyun 472*4882a593Smuzhiyun uart0: serial@9000 { 473*4882a593Smuzhiyun compatible = "snps,dw-apb-uart"; 474*4882a593Smuzhiyun reg = <0x9000 0x100>; 475*4882a593Smuzhiyun reg-shift = <2>; 476*4882a593Smuzhiyun reg-io-width = <1>; 477*4882a593Smuzhiyun interrupts = <8>; 478*4882a593Smuzhiyun clocks = <&refclk>; 479*4882a593Smuzhiyun pinctrl-0 = <&uart0_pmux>; 480*4882a593Smuzhiyun pinctrl-names = "default"; 481*4882a593Smuzhiyun status = "disabled"; 482*4882a593Smuzhiyun }; 483*4882a593Smuzhiyun 484*4882a593Smuzhiyun uart1: serial@a000 { 485*4882a593Smuzhiyun compatible = "snps,dw-apb-uart"; 486*4882a593Smuzhiyun reg = <0xa000 0x100>; 487*4882a593Smuzhiyun reg-shift = <2>; 488*4882a593Smuzhiyun reg-io-width = <1>; 489*4882a593Smuzhiyun interrupts = <9>; 490*4882a593Smuzhiyun clocks = <&refclk>; 491*4882a593Smuzhiyun pinctrl-0 = <&uart1_pmux>; 492*4882a593Smuzhiyun pinctrl-names = "default"; 493*4882a593Smuzhiyun status = "disabled"; 494*4882a593Smuzhiyun }; 495*4882a593Smuzhiyun 496*4882a593Smuzhiyun uart2: serial@b000 { 497*4882a593Smuzhiyun compatible = "snps,dw-apb-uart"; 498*4882a593Smuzhiyun reg = <0xb000 0x100>; 499*4882a593Smuzhiyun reg-shift = <2>; 500*4882a593Smuzhiyun reg-io-width = <1>; 501*4882a593Smuzhiyun interrupts = <10>; 502*4882a593Smuzhiyun clocks = <&refclk>; 503*4882a593Smuzhiyun pinctrl-0 = <&uart2_pmux>; 504*4882a593Smuzhiyun pinctrl-names = "default"; 505*4882a593Smuzhiyun status = "disabled"; 506*4882a593Smuzhiyun }; 507*4882a593Smuzhiyun 508*4882a593Smuzhiyun sysctrl: system-controller@d000 { 509*4882a593Smuzhiyun compatible = "simple-mfd", "syscon"; 510*4882a593Smuzhiyun reg = <0xd000 0x100>; 511*4882a593Smuzhiyun 512*4882a593Smuzhiyun sys_pinctrl: pin-controller { 513*4882a593Smuzhiyun compatible = "marvell,berlin2-system-pinctrl"; 514*4882a593Smuzhiyun uart0_pmux: uart0-pmux { 515*4882a593Smuzhiyun groups = "GSM4"; 516*4882a593Smuzhiyun function = "uart0"; 517*4882a593Smuzhiyun }; 518*4882a593Smuzhiyun 519*4882a593Smuzhiyun uart1_pmux: uart1-pmux { 520*4882a593Smuzhiyun groups = "GSM5"; 521*4882a593Smuzhiyun function = "uart1"; 522*4882a593Smuzhiyun }; 523*4882a593Smuzhiyun uart2_pmux: uart2-pmux { 524*4882a593Smuzhiyun groups = "GSM3"; 525*4882a593Smuzhiyun function = "uart2"; 526*4882a593Smuzhiyun }; 527*4882a593Smuzhiyun }; 528*4882a593Smuzhiyun }; 529*4882a593Smuzhiyun 530*4882a593Smuzhiyun sic: interrupt-controller@e000 { 531*4882a593Smuzhiyun compatible = "snps,dw-apb-ictl"; 532*4882a593Smuzhiyun reg = <0xe000 0x400>; 533*4882a593Smuzhiyun interrupt-controller; 534*4882a593Smuzhiyun #interrupt-cells = <1>; 535*4882a593Smuzhiyun interrupt-parent = <&gic>; 536*4882a593Smuzhiyun interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 537*4882a593Smuzhiyun }; 538*4882a593Smuzhiyun }; 539*4882a593Smuzhiyun }; 540*4882a593Smuzhiyun}; 541