1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0+ OR MIT 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Copyright (C) 2019 Lubomir Rintel <lkundrak@v3.sk> 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun#include <dt-bindings/clock/marvell,mmp2.h> 7*4882a593Smuzhiyun#include <dt-bindings/power/marvell,mmp2.h> 8*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun/ { 11*4882a593Smuzhiyun #address-cells = <1>; 12*4882a593Smuzhiyun #size-cells = <1>; 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun cpus { 15*4882a593Smuzhiyun #address-cells = <1>; 16*4882a593Smuzhiyun #size-cells = <0>; 17*4882a593Smuzhiyun enable-method = "marvell,mmp3-smp"; 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun cpu@0 { 20*4882a593Smuzhiyun compatible = "marvell,pj4b"; 21*4882a593Smuzhiyun device_type = "cpu"; 22*4882a593Smuzhiyun next-level-cache = <&l2>; 23*4882a593Smuzhiyun reg = <0>; 24*4882a593Smuzhiyun }; 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun cpu@1 { 27*4882a593Smuzhiyun compatible = "marvell,pj4b"; 28*4882a593Smuzhiyun device_type = "cpu"; 29*4882a593Smuzhiyun next-level-cache = <&l2>; 30*4882a593Smuzhiyun reg = <1>; 31*4882a593Smuzhiyun }; 32*4882a593Smuzhiyun }; 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun soc { 35*4882a593Smuzhiyun #address-cells = <1>; 36*4882a593Smuzhiyun #size-cells = <1>; 37*4882a593Smuzhiyun compatible = "simple-bus"; 38*4882a593Smuzhiyun interrupt-parent = <&gic>; 39*4882a593Smuzhiyun ranges; 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun axi@d4200000 { 42*4882a593Smuzhiyun compatible = "simple-bus"; 43*4882a593Smuzhiyun #address-cells = <1>; 44*4882a593Smuzhiyun #size-cells = <1>; 45*4882a593Smuzhiyun reg = <0xd4200000 0x00200000>; 46*4882a593Smuzhiyun ranges; 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun interrupt-controller@d4282000 { 49*4882a593Smuzhiyun compatible = "marvell,mmp3-intc"; 50*4882a593Smuzhiyun interrupt-controller; 51*4882a593Smuzhiyun #interrupt-cells = <1>; 52*4882a593Smuzhiyun reg = <0xd4282000 0x1000>, 53*4882a593Smuzhiyun <0xd4284000 0x100>; 54*4882a593Smuzhiyun mrvl,intc-nr-irqs = <64>; 55*4882a593Smuzhiyun }; 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun pmic_mux: interrupt-controller@d4282150 { 58*4882a593Smuzhiyun compatible = "mrvl,mmp2-mux-intc"; 59*4882a593Smuzhiyun interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 60*4882a593Smuzhiyun interrupt-controller; 61*4882a593Smuzhiyun #interrupt-cells = <1>; 62*4882a593Smuzhiyun reg = <0x150 0x4>, <0x168 0x4>; 63*4882a593Smuzhiyun reg-names = "mux status", "mux mask"; 64*4882a593Smuzhiyun mrvl,intc-nr-irqs = <4>; 65*4882a593Smuzhiyun }; 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun rtc_mux: interrupt-controller@d4282154 { 68*4882a593Smuzhiyun compatible = "mrvl,mmp2-mux-intc"; 69*4882a593Smuzhiyun interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 70*4882a593Smuzhiyun interrupt-controller; 71*4882a593Smuzhiyun #interrupt-cells = <1>; 72*4882a593Smuzhiyun reg = <0x154 0x4>, <0x16c 0x4>; 73*4882a593Smuzhiyun reg-names = "mux status", "mux mask"; 74*4882a593Smuzhiyun mrvl,intc-nr-irqs = <2>; 75*4882a593Smuzhiyun }; 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun hsi3_mux: interrupt-controller@d42821bc { 78*4882a593Smuzhiyun compatible = "mrvl,mmp2-mux-intc"; 79*4882a593Smuzhiyun interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 80*4882a593Smuzhiyun interrupt-controller; 81*4882a593Smuzhiyun #interrupt-cells = <1>; 82*4882a593Smuzhiyun reg = <0x1bc 0x4>, <0x1a4 0x4>; 83*4882a593Smuzhiyun reg-names = "mux status", "mux mask"; 84*4882a593Smuzhiyun mrvl,intc-nr-irqs = <3>; 85*4882a593Smuzhiyun }; 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun gpu_mux: interrupt-controller@d42821c0 { 88*4882a593Smuzhiyun compatible = "mrvl,mmp2-mux-intc"; 89*4882a593Smuzhiyun interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 90*4882a593Smuzhiyun interrupt-controller; 91*4882a593Smuzhiyun #interrupt-cells = <1>; 92*4882a593Smuzhiyun reg = <0x1c0 0x4>, <0x1a8 0x4>; 93*4882a593Smuzhiyun reg-names = "mux status", "mux mask"; 94*4882a593Smuzhiyun mrvl,intc-nr-irqs = <3>; 95*4882a593Smuzhiyun }; 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun twsi_mux: interrupt-controller@d4282158 { 98*4882a593Smuzhiyun compatible = "mrvl,mmp2-mux-intc"; 99*4882a593Smuzhiyun interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 100*4882a593Smuzhiyun interrupt-controller; 101*4882a593Smuzhiyun #interrupt-cells = <1>; 102*4882a593Smuzhiyun reg = <0x158 0x4>, <0x170 0x4>; 103*4882a593Smuzhiyun reg-names = "mux status", "mux mask"; 104*4882a593Smuzhiyun mrvl,intc-nr-irqs = <5>; 105*4882a593Smuzhiyun }; 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun hsi2_mux: interrupt-controller@d42821c4 { 108*4882a593Smuzhiyun compatible = "mrvl,mmp2-mux-intc"; 109*4882a593Smuzhiyun interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 110*4882a593Smuzhiyun interrupt-controller; 111*4882a593Smuzhiyun #interrupt-cells = <1>; 112*4882a593Smuzhiyun reg = <0x1c4 0x4>, <0x1ac 0x4>; 113*4882a593Smuzhiyun reg-names = "mux status", "mux mask"; 114*4882a593Smuzhiyun mrvl,intc-nr-irqs = <2>; 115*4882a593Smuzhiyun }; 116*4882a593Smuzhiyun 117*4882a593Smuzhiyun dxo_mux: interrupt-controller@d42821c8 { 118*4882a593Smuzhiyun compatible = "mrvl,mmp2-mux-intc"; 119*4882a593Smuzhiyun interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 120*4882a593Smuzhiyun interrupt-controller; 121*4882a593Smuzhiyun #interrupt-cells = <1>; 122*4882a593Smuzhiyun reg = <0x1c8 0x4>, <0x1b0 0x4>; 123*4882a593Smuzhiyun reg-names = "mux status", "mux mask"; 124*4882a593Smuzhiyun mrvl,intc-nr-irqs = <2>; 125*4882a593Smuzhiyun }; 126*4882a593Smuzhiyun 127*4882a593Smuzhiyun misc1_mux: interrupt-controller@d428215c { 128*4882a593Smuzhiyun compatible = "mrvl,mmp2-mux-intc"; 129*4882a593Smuzhiyun interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 130*4882a593Smuzhiyun interrupt-controller; 131*4882a593Smuzhiyun #interrupt-cells = <1>; 132*4882a593Smuzhiyun reg = <0x15c 0x4>, <0x174 0x4>; 133*4882a593Smuzhiyun reg-names = "mux status", "mux mask"; 134*4882a593Smuzhiyun mrvl,intc-nr-irqs = <31>; 135*4882a593Smuzhiyun }; 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun ci_mux: interrupt-controller@d42821cc { 138*4882a593Smuzhiyun compatible = "mrvl,mmp2-mux-intc"; 139*4882a593Smuzhiyun interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 140*4882a593Smuzhiyun interrupt-controller; 141*4882a593Smuzhiyun #interrupt-cells = <1>; 142*4882a593Smuzhiyun reg = <0x1cc 0x4>, <0x1b4 0x4>; 143*4882a593Smuzhiyun reg-names = "mux status", "mux mask"; 144*4882a593Smuzhiyun mrvl,intc-nr-irqs = <2>; 145*4882a593Smuzhiyun }; 146*4882a593Smuzhiyun 147*4882a593Smuzhiyun ssp_mux: interrupt-controller@d4282160 { 148*4882a593Smuzhiyun compatible = "mrvl,mmp2-mux-intc"; 149*4882a593Smuzhiyun interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 150*4882a593Smuzhiyun interrupt-controller; 151*4882a593Smuzhiyun #interrupt-cells = <1>; 152*4882a593Smuzhiyun reg = <0x160 0x4>, <0x178 0x4>; 153*4882a593Smuzhiyun reg-names = "mux status", "mux mask"; 154*4882a593Smuzhiyun mrvl,intc-nr-irqs = <2>; 155*4882a593Smuzhiyun }; 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun hsi1_mux: interrupt-controller@d4282184 { 158*4882a593Smuzhiyun compatible = "mrvl,mmp2-mux-intc"; 159*4882a593Smuzhiyun interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 160*4882a593Smuzhiyun interrupt-controller; 161*4882a593Smuzhiyun #interrupt-cells = <1>; 162*4882a593Smuzhiyun reg = <0x184 0x4>, <0x17c 0x4>; 163*4882a593Smuzhiyun reg-names = "mux status", "mux mask"; 164*4882a593Smuzhiyun mrvl,intc-nr-irqs = <4>; 165*4882a593Smuzhiyun }; 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun misc2_mux: interrupt-controller@d4282188 { 168*4882a593Smuzhiyun compatible = "mrvl,mmp2-mux-intc"; 169*4882a593Smuzhiyun interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; 170*4882a593Smuzhiyun interrupt-controller; 171*4882a593Smuzhiyun #interrupt-cells = <1>; 172*4882a593Smuzhiyun reg = <0x188 0x4>, <0x180 0x4>; 173*4882a593Smuzhiyun reg-names = "mux status", "mux mask"; 174*4882a593Smuzhiyun mrvl,intc-nr-irqs = <20>; 175*4882a593Smuzhiyun }; 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun hsi0_mux: interrupt-controller@d42821d0 { 178*4882a593Smuzhiyun compatible = "mrvl,mmp2-mux-intc"; 179*4882a593Smuzhiyun interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; 180*4882a593Smuzhiyun interrupt-controller; 181*4882a593Smuzhiyun #interrupt-cells = <1>; 182*4882a593Smuzhiyun reg = <0x1d0 0x4>, <0x1b8 0x4>; 183*4882a593Smuzhiyun reg-names = "mux status", "mux mask"; 184*4882a593Smuzhiyun mrvl,intc-nr-irqs = <5>; 185*4882a593Smuzhiyun }; 186*4882a593Smuzhiyun 187*4882a593Smuzhiyun usb_otg_phy0: usb-phy@d4207000 { 188*4882a593Smuzhiyun compatible = "marvell,mmp3-usb-phy"; 189*4882a593Smuzhiyun reg = <0xd4207000 0x40>; 190*4882a593Smuzhiyun #phy-cells = <0>; 191*4882a593Smuzhiyun status = "disabled"; 192*4882a593Smuzhiyun }; 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun usb_otg0: usb@d4208000 { 195*4882a593Smuzhiyun compatible = "marvell,pxau2o-ehci"; 196*4882a593Smuzhiyun reg = <0xd4208000 0x200>; 197*4882a593Smuzhiyun interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 198*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_USB>; 199*4882a593Smuzhiyun clock-names = "USBCLK"; 200*4882a593Smuzhiyun phys = <&usb_otg_phy0>; 201*4882a593Smuzhiyun phy-names = "usb"; 202*4882a593Smuzhiyun status = "disabled"; 203*4882a593Smuzhiyun }; 204*4882a593Smuzhiyun 205*4882a593Smuzhiyun hsic_phy0: usb-phy@f0001800 { 206*4882a593Smuzhiyun compatible = "marvell,mmp3-hsic-phy"; 207*4882a593Smuzhiyun reg = <0xf0001800 0x40>; 208*4882a593Smuzhiyun #phy-cells = <0>; 209*4882a593Smuzhiyun status = "disabled"; 210*4882a593Smuzhiyun }; 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun hsic0: usb@f0001000 { 213*4882a593Smuzhiyun compatible = "marvell,pxau2o-ehci"; 214*4882a593Smuzhiyun reg = <0xf0001000 0x200>; 215*4882a593Smuzhiyun interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 216*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_USBHSIC0>; 217*4882a593Smuzhiyun clock-names = "USBCLK"; 218*4882a593Smuzhiyun phys = <&hsic_phy0>; 219*4882a593Smuzhiyun phy-names = "usb"; 220*4882a593Smuzhiyun phy_type = "hsic"; 221*4882a593Smuzhiyun #address-cells = <0x01>; 222*4882a593Smuzhiyun #size-cells = <0x00>; 223*4882a593Smuzhiyun status = "disabled"; 224*4882a593Smuzhiyun }; 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun hsic_phy1: usb-phy@f0002800 { 227*4882a593Smuzhiyun compatible = "marvell,mmp3-hsic-phy"; 228*4882a593Smuzhiyun reg = <0xf0002800 0x40>; 229*4882a593Smuzhiyun #phy-cells = <0>; 230*4882a593Smuzhiyun status = "disabled"; 231*4882a593Smuzhiyun }; 232*4882a593Smuzhiyun 233*4882a593Smuzhiyun hsic1: usb@f0002000 { 234*4882a593Smuzhiyun compatible = "marvell,pxau2o-ehci"; 235*4882a593Smuzhiyun reg = <0xf0002000 0x200>; 236*4882a593Smuzhiyun interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 237*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_USBHSIC1>; 238*4882a593Smuzhiyun clock-names = "USBCLK"; 239*4882a593Smuzhiyun phys = <&hsic_phy1>; 240*4882a593Smuzhiyun phy-names = "usb"; 241*4882a593Smuzhiyun phy_type = "hsic"; 242*4882a593Smuzhiyun #address-cells = <0x01>; 243*4882a593Smuzhiyun #size-cells = <0x00>; 244*4882a593Smuzhiyun status = "disabled"; 245*4882a593Smuzhiyun }; 246*4882a593Smuzhiyun 247*4882a593Smuzhiyun mmc1: mmc@d4280000 { 248*4882a593Smuzhiyun compatible = "mrvl,pxav3-mmc"; 249*4882a593Smuzhiyun reg = <0xd4280000 0x120>; 250*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_SDH0>; 251*4882a593Smuzhiyun clock-names = "io"; 252*4882a593Smuzhiyun interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 253*4882a593Smuzhiyun status = "disabled"; 254*4882a593Smuzhiyun }; 255*4882a593Smuzhiyun 256*4882a593Smuzhiyun mmc2: mmc@d4280800 { 257*4882a593Smuzhiyun compatible = "mrvl,pxav3-mmc"; 258*4882a593Smuzhiyun reg = <0xd4280800 0x120>; 259*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_SDH1>; 260*4882a593Smuzhiyun clock-names = "io"; 261*4882a593Smuzhiyun interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 262*4882a593Smuzhiyun status = "disabled"; 263*4882a593Smuzhiyun }; 264*4882a593Smuzhiyun 265*4882a593Smuzhiyun mmc3: mmc@d4281000 { 266*4882a593Smuzhiyun compatible = "mrvl,pxav3-mmc"; 267*4882a593Smuzhiyun reg = <0xd4281000 0x120>; 268*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_SDH2>; 269*4882a593Smuzhiyun clock-names = "io"; 270*4882a593Smuzhiyun interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; 271*4882a593Smuzhiyun status = "disabled"; 272*4882a593Smuzhiyun }; 273*4882a593Smuzhiyun 274*4882a593Smuzhiyun mmc4: mmc@d4281800 { 275*4882a593Smuzhiyun compatible = "mrvl,pxav3-mmc"; 276*4882a593Smuzhiyun reg = <0xd4281800 0x120>; 277*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_SDH3>; 278*4882a593Smuzhiyun clock-names = "io"; 279*4882a593Smuzhiyun interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; 280*4882a593Smuzhiyun status = "disabled"; 281*4882a593Smuzhiyun }; 282*4882a593Smuzhiyun 283*4882a593Smuzhiyun mmc5: mmc@d4217000 { 284*4882a593Smuzhiyun compatible = "mrvl,pxav3-mmc"; 285*4882a593Smuzhiyun reg = <0xd4217000 0x120>; 286*4882a593Smuzhiyun clocks = <&soc_clocks MMP3_CLK_SDH4>; 287*4882a593Smuzhiyun clock-names = "io"; 288*4882a593Smuzhiyun interrupt-parent = <&hsi1_mux>; 289*4882a593Smuzhiyun interrupts = <0>; 290*4882a593Smuzhiyun status = "disabled"; 291*4882a593Smuzhiyun }; 292*4882a593Smuzhiyun 293*4882a593Smuzhiyun camera0: camera@d420a000 { 294*4882a593Smuzhiyun compatible = "marvell,mmp2-ccic"; 295*4882a593Smuzhiyun reg = <0xd420a000 0x800>; 296*4882a593Smuzhiyun interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 297*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_CCIC0>; 298*4882a593Smuzhiyun clock-names = "axi"; 299*4882a593Smuzhiyun power-domains = <&soc_clocks MMP3_POWER_DOMAIN_CAMERA>; 300*4882a593Smuzhiyun #clock-cells = <0>; 301*4882a593Smuzhiyun clock-output-names = "mclk"; 302*4882a593Smuzhiyun status = "disabled"; 303*4882a593Smuzhiyun }; 304*4882a593Smuzhiyun 305*4882a593Smuzhiyun camera1: camera@d420a800 { 306*4882a593Smuzhiyun compatible = "marvell,mmp2-ccic"; 307*4882a593Smuzhiyun reg = <0xd420a800 0x800>; 308*4882a593Smuzhiyun interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 309*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_CCIC1>; 310*4882a593Smuzhiyun clock-names = "axi"; 311*4882a593Smuzhiyun power-domains = <&soc_clocks MMP3_POWER_DOMAIN_CAMERA>; 312*4882a593Smuzhiyun #clock-cells = <0>; 313*4882a593Smuzhiyun clock-output-names = "mclk"; 314*4882a593Smuzhiyun status = "disabled"; 315*4882a593Smuzhiyun }; 316*4882a593Smuzhiyun 317*4882a593Smuzhiyun gpu_3d: gpu@d420d000 { 318*4882a593Smuzhiyun compatible = "vivante,gc"; 319*4882a593Smuzhiyun reg = <0xd420d000 0x2000>; 320*4882a593Smuzhiyun interrupt-parent = <&gpu_mux>; 321*4882a593Smuzhiyun interrupts = <0>; 322*4882a593Smuzhiyun status = "disabled"; 323*4882a593Smuzhiyun clocks = <&soc_clocks MMP3_CLK_GPU_3D>, 324*4882a593Smuzhiyun <&soc_clocks MMP3_CLK_GPU_BUS>; 325*4882a593Smuzhiyun clock-names = "core", "bus"; 326*4882a593Smuzhiyun power-domains = <&soc_clocks MMP2_POWER_DOMAIN_GPU>; 327*4882a593Smuzhiyun }; 328*4882a593Smuzhiyun 329*4882a593Smuzhiyun gpu_2d: gpu@d420f000 { 330*4882a593Smuzhiyun compatible = "vivante,gc"; 331*4882a593Smuzhiyun reg = <0xd420f000 0x2000>; 332*4882a593Smuzhiyun interrupt-parent = <&gpu_mux>; 333*4882a593Smuzhiyun interrupts = <2>; 334*4882a593Smuzhiyun status = "disabled"; 335*4882a593Smuzhiyun clocks = <&soc_clocks MMP3_CLK_GPU_2D>, 336*4882a593Smuzhiyun <&soc_clocks MMP3_CLK_GPU_BUS>; 337*4882a593Smuzhiyun clock-names = "core", "bus"; 338*4882a593Smuzhiyun power-domains = <&soc_clocks MMP2_POWER_DOMAIN_GPU>; 339*4882a593Smuzhiyun }; 340*4882a593Smuzhiyun }; 341*4882a593Smuzhiyun 342*4882a593Smuzhiyun apb@d4000000 { 343*4882a593Smuzhiyun compatible = "simple-bus"; 344*4882a593Smuzhiyun #address-cells = <1>; 345*4882a593Smuzhiyun #size-cells = <1>; 346*4882a593Smuzhiyun reg = <0xd4000000 0x00200000>; 347*4882a593Smuzhiyun ranges; 348*4882a593Smuzhiyun 349*4882a593Smuzhiyun timer: timer@d4014000 { 350*4882a593Smuzhiyun compatible = "mrvl,mmp-timer"; 351*4882a593Smuzhiyun reg = <0xd4014000 0x100>; 352*4882a593Smuzhiyun interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 353*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_TIMER>; 354*4882a593Smuzhiyun }; 355*4882a593Smuzhiyun 356*4882a593Smuzhiyun uart1: serial@d4030000 { 357*4882a593Smuzhiyun compatible = "mrvl,mmp-uart", "intel,xscale-uart"; 358*4882a593Smuzhiyun reg = <0xd4030000 0x1000>; 359*4882a593Smuzhiyun interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 360*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_UART0>; 361*4882a593Smuzhiyun resets = <&soc_clocks MMP2_CLK_UART0>; 362*4882a593Smuzhiyun reg-shift = <2>; 363*4882a593Smuzhiyun status = "disabled"; 364*4882a593Smuzhiyun }; 365*4882a593Smuzhiyun 366*4882a593Smuzhiyun uart2: serial@d4017000 { 367*4882a593Smuzhiyun compatible = "mrvl,mmp-uart", "intel,xscale-uart"; 368*4882a593Smuzhiyun reg = <0xd4017000 0x1000>; 369*4882a593Smuzhiyun interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 370*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_UART1>; 371*4882a593Smuzhiyun resets = <&soc_clocks MMP2_CLK_UART1>; 372*4882a593Smuzhiyun reg-shift = <2>; 373*4882a593Smuzhiyun status = "disabled"; 374*4882a593Smuzhiyun }; 375*4882a593Smuzhiyun 376*4882a593Smuzhiyun uart3: serial@d4018000 { 377*4882a593Smuzhiyun compatible = "mrvl,mmp-uart", "intel,xscale-uart"; 378*4882a593Smuzhiyun reg = <0xd4018000 0x1000>; 379*4882a593Smuzhiyun interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 380*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_UART2>; 381*4882a593Smuzhiyun resets = <&soc_clocks MMP2_CLK_UART2>; 382*4882a593Smuzhiyun reg-shift = <2>; 383*4882a593Smuzhiyun status = "disabled"; 384*4882a593Smuzhiyun }; 385*4882a593Smuzhiyun 386*4882a593Smuzhiyun uart4: serial@d4016000 { 387*4882a593Smuzhiyun compatible = "mrvl,mmp-uart", "intel,xscale-uart"; 388*4882a593Smuzhiyun reg = <0xd4016000 0x1000>; 389*4882a593Smuzhiyun interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 390*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_UART3>; 391*4882a593Smuzhiyun resets = <&soc_clocks MMP2_CLK_UART3>; 392*4882a593Smuzhiyun reg-shift = <2>; 393*4882a593Smuzhiyun status = "disabled"; 394*4882a593Smuzhiyun }; 395*4882a593Smuzhiyun 396*4882a593Smuzhiyun gpio: gpio@d4019000 { 397*4882a593Smuzhiyun compatible = "marvell,mmp2-gpio"; 398*4882a593Smuzhiyun #address-cells = <1>; 399*4882a593Smuzhiyun #size-cells = <1>; 400*4882a593Smuzhiyun reg = <0xd4019000 0x1000>; 401*4882a593Smuzhiyun gpio-controller; 402*4882a593Smuzhiyun #gpio-cells = <2>; 403*4882a593Smuzhiyun interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 404*4882a593Smuzhiyun interrupt-names = "gpio_mux"; 405*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_GPIO>; 406*4882a593Smuzhiyun resets = <&soc_clocks MMP2_CLK_GPIO>; 407*4882a593Smuzhiyun interrupt-controller; 408*4882a593Smuzhiyun #interrupt-cells = <2>; 409*4882a593Smuzhiyun ranges; 410*4882a593Smuzhiyun 411*4882a593Smuzhiyun gcb0: gpio@d4019000 { 412*4882a593Smuzhiyun reg = <0xd4019000 0x4>; 413*4882a593Smuzhiyun }; 414*4882a593Smuzhiyun 415*4882a593Smuzhiyun gcb1: gpio@d4019004 { 416*4882a593Smuzhiyun reg = <0xd4019004 0x4>; 417*4882a593Smuzhiyun }; 418*4882a593Smuzhiyun 419*4882a593Smuzhiyun gcb2: gpio@d4019008 { 420*4882a593Smuzhiyun reg = <0xd4019008 0x4>; 421*4882a593Smuzhiyun }; 422*4882a593Smuzhiyun 423*4882a593Smuzhiyun gcb3: gpio@d4019100 { 424*4882a593Smuzhiyun reg = <0xd4019100 0x4>; 425*4882a593Smuzhiyun }; 426*4882a593Smuzhiyun 427*4882a593Smuzhiyun gcb4: gpio@d4019104 { 428*4882a593Smuzhiyun reg = <0xd4019104 0x4>; 429*4882a593Smuzhiyun }; 430*4882a593Smuzhiyun 431*4882a593Smuzhiyun gcb5: gpio@d4019108 { 432*4882a593Smuzhiyun reg = <0xd4019108 0x4>; 433*4882a593Smuzhiyun }; 434*4882a593Smuzhiyun }; 435*4882a593Smuzhiyun 436*4882a593Smuzhiyun twsi1: i2c@d4011000 { 437*4882a593Smuzhiyun compatible = "mrvl,mmp-twsi"; 438*4882a593Smuzhiyun reg = <0xd4011000 0x70>; 439*4882a593Smuzhiyun interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 440*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_TWSI0>; 441*4882a593Smuzhiyun resets = <&soc_clocks MMP2_CLK_TWSI0>; 442*4882a593Smuzhiyun #address-cells = <1>; 443*4882a593Smuzhiyun #size-cells = <0>; 444*4882a593Smuzhiyun mrvl,i2c-fast-mode; 445*4882a593Smuzhiyun status = "disabled"; 446*4882a593Smuzhiyun }; 447*4882a593Smuzhiyun 448*4882a593Smuzhiyun twsi2: i2c@d4031000 { 449*4882a593Smuzhiyun compatible = "mrvl,mmp-twsi"; 450*4882a593Smuzhiyun reg = <0xd4031000 0x70>; 451*4882a593Smuzhiyun interrupt-parent = <&twsi_mux>; 452*4882a593Smuzhiyun interrupts = <0>; 453*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_TWSI1>; 454*4882a593Smuzhiyun resets = <&soc_clocks MMP2_CLK_TWSI1>; 455*4882a593Smuzhiyun #address-cells = <1>; 456*4882a593Smuzhiyun #size-cells = <0>; 457*4882a593Smuzhiyun status = "disabled"; 458*4882a593Smuzhiyun }; 459*4882a593Smuzhiyun 460*4882a593Smuzhiyun twsi3: i2c@d4032000 { 461*4882a593Smuzhiyun compatible = "mrvl,mmp-twsi"; 462*4882a593Smuzhiyun reg = <0xd4032000 0x70>; 463*4882a593Smuzhiyun interrupt-parent = <&twsi_mux>; 464*4882a593Smuzhiyun interrupts = <1>; 465*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_TWSI2>; 466*4882a593Smuzhiyun resets = <&soc_clocks MMP2_CLK_TWSI2>; 467*4882a593Smuzhiyun #address-cells = <1>; 468*4882a593Smuzhiyun #size-cells = <0>; 469*4882a593Smuzhiyun status = "disabled"; 470*4882a593Smuzhiyun }; 471*4882a593Smuzhiyun 472*4882a593Smuzhiyun twsi4: i2c@d4033000 { 473*4882a593Smuzhiyun compatible = "mrvl,mmp-twsi"; 474*4882a593Smuzhiyun reg = <0xd4033000 0x70>; 475*4882a593Smuzhiyun interrupt-parent = <&twsi_mux>; 476*4882a593Smuzhiyun interrupts = <2>; 477*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_TWSI3>; 478*4882a593Smuzhiyun resets = <&soc_clocks MMP2_CLK_TWSI3>; 479*4882a593Smuzhiyun #address-cells = <1>; 480*4882a593Smuzhiyun #size-cells = <0>; 481*4882a593Smuzhiyun status = "disabled"; 482*4882a593Smuzhiyun }; 483*4882a593Smuzhiyun 484*4882a593Smuzhiyun 485*4882a593Smuzhiyun twsi5: i2c@d4033800 { 486*4882a593Smuzhiyun compatible = "mrvl,mmp-twsi"; 487*4882a593Smuzhiyun reg = <0xd4033800 0x70>; 488*4882a593Smuzhiyun interrupt-parent = <&twsi_mux>; 489*4882a593Smuzhiyun interrupts = <3>; 490*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_TWSI4>; 491*4882a593Smuzhiyun resets = <&soc_clocks MMP2_CLK_TWSI4>; 492*4882a593Smuzhiyun #address-cells = <1>; 493*4882a593Smuzhiyun #size-cells = <0>; 494*4882a593Smuzhiyun status = "disabled"; 495*4882a593Smuzhiyun }; 496*4882a593Smuzhiyun 497*4882a593Smuzhiyun twsi6: i2c@d4034000 { 498*4882a593Smuzhiyun compatible = "mrvl,mmp-twsi"; 499*4882a593Smuzhiyun reg = <0xd4034000 0x70>; 500*4882a593Smuzhiyun interrupt-parent = <&twsi_mux>; 501*4882a593Smuzhiyun interrupts = <4>; 502*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_TWSI5>; 503*4882a593Smuzhiyun resets = <&soc_clocks MMP2_CLK_TWSI5>; 504*4882a593Smuzhiyun #address-cells = <1>; 505*4882a593Smuzhiyun #size-cells = <0>; 506*4882a593Smuzhiyun status = "disabled"; 507*4882a593Smuzhiyun }; 508*4882a593Smuzhiyun 509*4882a593Smuzhiyun rtc: rtc@d4010000 { 510*4882a593Smuzhiyun compatible = "mrvl,mmp-rtc"; 511*4882a593Smuzhiyun reg = <0xd4010000 0x1000>; 512*4882a593Smuzhiyun interrupts = <1>, <0>; 513*4882a593Smuzhiyun interrupt-names = "rtc 1Hz", "rtc alarm"; 514*4882a593Smuzhiyun interrupt-parent = <&rtc_mux>; 515*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_RTC>; 516*4882a593Smuzhiyun resets = <&soc_clocks MMP2_CLK_RTC>; 517*4882a593Smuzhiyun status = "disabled"; 518*4882a593Smuzhiyun }; 519*4882a593Smuzhiyun 520*4882a593Smuzhiyun ssp1: spi@d4035000 { 521*4882a593Smuzhiyun compatible = "marvell,mmp2-ssp"; 522*4882a593Smuzhiyun reg = <0xd4035000 0x1000>; 523*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_SSP0>; 524*4882a593Smuzhiyun interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 525*4882a593Smuzhiyun #address-cells = <1>; 526*4882a593Smuzhiyun #size-cells = <0>; 527*4882a593Smuzhiyun status = "disabled"; 528*4882a593Smuzhiyun }; 529*4882a593Smuzhiyun 530*4882a593Smuzhiyun ssp2: spi@d4036000 { 531*4882a593Smuzhiyun compatible = "marvell,mmp2-ssp"; 532*4882a593Smuzhiyun reg = <0xd4036000 0x1000>; 533*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_SSP1>; 534*4882a593Smuzhiyun interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 535*4882a593Smuzhiyun #address-cells = <1>; 536*4882a593Smuzhiyun #size-cells = <0>; 537*4882a593Smuzhiyun status = "disabled"; 538*4882a593Smuzhiyun }; 539*4882a593Smuzhiyun 540*4882a593Smuzhiyun ssp3: spi@d4037000 { 541*4882a593Smuzhiyun compatible = "marvell,mmp2-ssp"; 542*4882a593Smuzhiyun reg = <0xd4037000 0x1000>; 543*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_SSP2>; 544*4882a593Smuzhiyun interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 545*4882a593Smuzhiyun #address-cells = <1>; 546*4882a593Smuzhiyun #size-cells = <0>; 547*4882a593Smuzhiyun status = "disabled"; 548*4882a593Smuzhiyun }; 549*4882a593Smuzhiyun 550*4882a593Smuzhiyun ssp4: spi@d4039000 { 551*4882a593Smuzhiyun compatible = "marvell,mmp2-ssp"; 552*4882a593Smuzhiyun reg = <0xd4039000 0x1000>; 553*4882a593Smuzhiyun clocks = <&soc_clocks MMP2_CLK_SSP3>; 554*4882a593Smuzhiyun interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 555*4882a593Smuzhiyun #address-cells = <1>; 556*4882a593Smuzhiyun #size-cells = <0>; 557*4882a593Smuzhiyun status = "disabled"; 558*4882a593Smuzhiyun }; 559*4882a593Smuzhiyun }; 560*4882a593Smuzhiyun 561*4882a593Smuzhiyun l2: cache-controller@d0020000 { 562*4882a593Smuzhiyun compatible = "marvell,tauros3-cache", "arm,pl310-cache"; 563*4882a593Smuzhiyun reg = <0xd0020000 0x1000>; 564*4882a593Smuzhiyun cache-unified; 565*4882a593Smuzhiyun cache-level = <2>; 566*4882a593Smuzhiyun }; 567*4882a593Smuzhiyun 568*4882a593Smuzhiyun soc_clocks: clocks@d4050000 { 569*4882a593Smuzhiyun compatible = "marvell,mmp3-clock"; 570*4882a593Smuzhiyun reg = <0xd4050000 0x1000>, 571*4882a593Smuzhiyun <0xd4282800 0x400>, 572*4882a593Smuzhiyun <0xd4015000 0x1000>; 573*4882a593Smuzhiyun reg-names = "mpmu", "apmu", "apbc"; 574*4882a593Smuzhiyun #clock-cells = <1>; 575*4882a593Smuzhiyun #reset-cells = <1>; 576*4882a593Smuzhiyun #power-domain-cells = <1>; 577*4882a593Smuzhiyun }; 578*4882a593Smuzhiyun 579*4882a593Smuzhiyun snoop-control-unit@e0000000 { 580*4882a593Smuzhiyun compatible = "arm,arm11mp-scu"; 581*4882a593Smuzhiyun reg = <0xe0000000 0x100>; 582*4882a593Smuzhiyun }; 583*4882a593Smuzhiyun 584*4882a593Smuzhiyun gic: interrupt-controller@e0001000 { 585*4882a593Smuzhiyun compatible = "arm,arm11mp-gic"; 586*4882a593Smuzhiyun interrupt-controller; 587*4882a593Smuzhiyun #interrupt-cells = <3>; 588*4882a593Smuzhiyun reg = <0xe0001000 0x1000>, 589*4882a593Smuzhiyun <0xe0000100 0x100>; 590*4882a593Smuzhiyun }; 591*4882a593Smuzhiyun 592*4882a593Smuzhiyun local-timer@e0000600 { 593*4882a593Smuzhiyun compatible = "arm,arm11mp-twd-timer"; 594*4882a593Smuzhiyun interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | 595*4882a593Smuzhiyun IRQ_TYPE_EDGE_RISING)>; 596*4882a593Smuzhiyun reg = <0xe0000600 0x20>; 597*4882a593Smuzhiyun }; 598*4882a593Smuzhiyun 599*4882a593Smuzhiyun watchdog@e0000620 { 600*4882a593Smuzhiyun compatible = "arm,arm11mp-twd-wdt"; 601*4882a593Smuzhiyun reg = <0xe0000620 0x20>; 602*4882a593Smuzhiyun interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | 603*4882a593Smuzhiyun IRQ_TYPE_EDGE_RISING)>; 604*4882a593Smuzhiyun }; 605*4882a593Smuzhiyun }; 606*4882a593Smuzhiyun}; 607