1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Copyright (C) 2016 Marvell Technology Group Ltd. 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Device Tree file for Marvell Armada CP11x. 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/mvebu-icu.h> 9*4882a593Smuzhiyun#include <dt-bindings/thermal/thermal.h> 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun#include "armada-common.dtsi" 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun#define CP11X_PCIEx_CONF_BASE(iface) (CP11X_PCIEx_MEM_BASE(iface) + CP11X_PCIEx_MEM_SIZE(iface)) 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun/ { 16*4882a593Smuzhiyun /* 17*4882a593Smuzhiyun * The contents of the node are defined below, in order to 18*4882a593Smuzhiyun * save one indentation level 19*4882a593Smuzhiyun */ 20*4882a593Smuzhiyun CP11X_NAME: CP11X_NAME { }; 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun /* 23*4882a593Smuzhiyun * CPs only have one sensor in the thermal IC. 24*4882a593Smuzhiyun * 25*4882a593Smuzhiyun * The cooling maps are empty as there are no cooling devices. 26*4882a593Smuzhiyun */ 27*4882a593Smuzhiyun thermal-zones { 28*4882a593Smuzhiyun CP11X_LABEL(thermal_ic): CP11X_NODE_NAME(thermal-ic) { 29*4882a593Smuzhiyun polling-delay-passive = <0>; /* Interrupt driven */ 30*4882a593Smuzhiyun polling-delay = <0>; /* Interrupt driven */ 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun thermal-sensors = <&CP11X_LABEL(thermal) 0>; 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun trips { 35*4882a593Smuzhiyun CP11X_LABEL(crit): crit { 36*4882a593Smuzhiyun temperature = <100000>; /* mC degrees */ 37*4882a593Smuzhiyun hysteresis = <2000>; /* mC degrees */ 38*4882a593Smuzhiyun type = "critical"; 39*4882a593Smuzhiyun }; 40*4882a593Smuzhiyun }; 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun cooling-maps { }; 43*4882a593Smuzhiyun }; 44*4882a593Smuzhiyun }; 45*4882a593Smuzhiyun}; 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun&CP11X_NAME { 48*4882a593Smuzhiyun #address-cells = <2>; 49*4882a593Smuzhiyun #size-cells = <2>; 50*4882a593Smuzhiyun compatible = "simple-bus"; 51*4882a593Smuzhiyun interrupt-parent = <&CP11X_LABEL(icu_nsr)>; 52*4882a593Smuzhiyun ranges; 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun config-space@CP11X_BASE { 55*4882a593Smuzhiyun #address-cells = <1>; 56*4882a593Smuzhiyun #size-cells = <1>; 57*4882a593Smuzhiyun compatible = "simple-bus"; 58*4882a593Smuzhiyun ranges = <0x0 0x0 ADDRESSIFY(CP11X_BASE) 0x2000000>; 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun CP11X_LABEL(ethernet): ethernet@0 { 61*4882a593Smuzhiyun compatible = "marvell,armada-7k-pp22"; 62*4882a593Smuzhiyun reg = <0x0 0x100000>, <0x129000 0xb000>; 63*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 3>, <&CP11X_LABEL(clk) 1 9>, 64*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 5>, <&CP11X_LABEL(clk) 1 6>, 65*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 18>; 66*4882a593Smuzhiyun clock-names = "pp_clk", "gop_clk", 67*4882a593Smuzhiyun "mg_clk", "mg_core_clk", "axi_clk"; 68*4882a593Smuzhiyun marvell,system-controller = <&CP11X_LABEL(syscon0)>; 69*4882a593Smuzhiyun status = "disabled"; 70*4882a593Smuzhiyun dma-coherent; 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun CP11X_LABEL(eth0): eth0 { 73*4882a593Smuzhiyun interrupts = <39 IRQ_TYPE_LEVEL_HIGH>, 74*4882a593Smuzhiyun <43 IRQ_TYPE_LEVEL_HIGH>, 75*4882a593Smuzhiyun <47 IRQ_TYPE_LEVEL_HIGH>, 76*4882a593Smuzhiyun <51 IRQ_TYPE_LEVEL_HIGH>, 77*4882a593Smuzhiyun <55 IRQ_TYPE_LEVEL_HIGH>, 78*4882a593Smuzhiyun <59 IRQ_TYPE_LEVEL_HIGH>, 79*4882a593Smuzhiyun <63 IRQ_TYPE_LEVEL_HIGH>, 80*4882a593Smuzhiyun <67 IRQ_TYPE_LEVEL_HIGH>, 81*4882a593Smuzhiyun <71 IRQ_TYPE_LEVEL_HIGH>, 82*4882a593Smuzhiyun <129 IRQ_TYPE_LEVEL_HIGH>; 83*4882a593Smuzhiyun interrupt-names = "hif0", "hif1", "hif2", 84*4882a593Smuzhiyun "hif3", "hif4", "hif5", "hif6", "hif7", 85*4882a593Smuzhiyun "hif8", "link"; 86*4882a593Smuzhiyun port-id = <0>; 87*4882a593Smuzhiyun gop-port-id = <0>; 88*4882a593Smuzhiyun status = "disabled"; 89*4882a593Smuzhiyun }; 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun CP11X_LABEL(eth1): eth1 { 92*4882a593Smuzhiyun interrupts = <40 IRQ_TYPE_LEVEL_HIGH>, 93*4882a593Smuzhiyun <44 IRQ_TYPE_LEVEL_HIGH>, 94*4882a593Smuzhiyun <48 IRQ_TYPE_LEVEL_HIGH>, 95*4882a593Smuzhiyun <52 IRQ_TYPE_LEVEL_HIGH>, 96*4882a593Smuzhiyun <56 IRQ_TYPE_LEVEL_HIGH>, 97*4882a593Smuzhiyun <60 IRQ_TYPE_LEVEL_HIGH>, 98*4882a593Smuzhiyun <64 IRQ_TYPE_LEVEL_HIGH>, 99*4882a593Smuzhiyun <68 IRQ_TYPE_LEVEL_HIGH>, 100*4882a593Smuzhiyun <72 IRQ_TYPE_LEVEL_HIGH>, 101*4882a593Smuzhiyun <128 IRQ_TYPE_LEVEL_HIGH>; 102*4882a593Smuzhiyun interrupt-names = "hif0", "hif1", "hif2", 103*4882a593Smuzhiyun "hif3", "hif4", "hif5", "hif6", "hif7", 104*4882a593Smuzhiyun "hif8", "link"; 105*4882a593Smuzhiyun port-id = <1>; 106*4882a593Smuzhiyun gop-port-id = <2>; 107*4882a593Smuzhiyun status = "disabled"; 108*4882a593Smuzhiyun }; 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun CP11X_LABEL(eth2): eth2 { 111*4882a593Smuzhiyun interrupts = <41 IRQ_TYPE_LEVEL_HIGH>, 112*4882a593Smuzhiyun <45 IRQ_TYPE_LEVEL_HIGH>, 113*4882a593Smuzhiyun <49 IRQ_TYPE_LEVEL_HIGH>, 114*4882a593Smuzhiyun <53 IRQ_TYPE_LEVEL_HIGH>, 115*4882a593Smuzhiyun <57 IRQ_TYPE_LEVEL_HIGH>, 116*4882a593Smuzhiyun <61 IRQ_TYPE_LEVEL_HIGH>, 117*4882a593Smuzhiyun <65 IRQ_TYPE_LEVEL_HIGH>, 118*4882a593Smuzhiyun <69 IRQ_TYPE_LEVEL_HIGH>, 119*4882a593Smuzhiyun <73 IRQ_TYPE_LEVEL_HIGH>, 120*4882a593Smuzhiyun <127 IRQ_TYPE_LEVEL_HIGH>; 121*4882a593Smuzhiyun interrupt-names = "hif0", "hif1", "hif2", 122*4882a593Smuzhiyun "hif3", "hif4", "hif5", "hif6", "hif7", 123*4882a593Smuzhiyun "hif8", "link"; 124*4882a593Smuzhiyun port-id = <2>; 125*4882a593Smuzhiyun gop-port-id = <3>; 126*4882a593Smuzhiyun status = "disabled"; 127*4882a593Smuzhiyun }; 128*4882a593Smuzhiyun }; 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun CP11X_LABEL(comphy): phy@120000 { 131*4882a593Smuzhiyun compatible = "marvell,comphy-cp110"; 132*4882a593Smuzhiyun reg = <0x120000 0x6000>; 133*4882a593Smuzhiyun marvell,system-controller = <&CP11X_LABEL(syscon0)>; 134*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 5>, <&CP11X_LABEL(clk) 1 6>, 135*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 18>; 136*4882a593Smuzhiyun clock-names = "mg_clk", "mg_core_clk", "axi_clk"; 137*4882a593Smuzhiyun #address-cells = <1>; 138*4882a593Smuzhiyun #size-cells = <0>; 139*4882a593Smuzhiyun 140*4882a593Smuzhiyun CP11X_LABEL(comphy0): phy@0 { 141*4882a593Smuzhiyun reg = <0>; 142*4882a593Smuzhiyun #phy-cells = <1>; 143*4882a593Smuzhiyun }; 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun CP11X_LABEL(comphy1): phy@1 { 146*4882a593Smuzhiyun reg = <1>; 147*4882a593Smuzhiyun #phy-cells = <1>; 148*4882a593Smuzhiyun }; 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun CP11X_LABEL(comphy2): phy@2 { 151*4882a593Smuzhiyun reg = <2>; 152*4882a593Smuzhiyun #phy-cells = <1>; 153*4882a593Smuzhiyun }; 154*4882a593Smuzhiyun 155*4882a593Smuzhiyun CP11X_LABEL(comphy3): phy@3 { 156*4882a593Smuzhiyun reg = <3>; 157*4882a593Smuzhiyun #phy-cells = <1>; 158*4882a593Smuzhiyun }; 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun CP11X_LABEL(comphy4): phy@4 { 161*4882a593Smuzhiyun reg = <4>; 162*4882a593Smuzhiyun #phy-cells = <1>; 163*4882a593Smuzhiyun }; 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun CP11X_LABEL(comphy5): phy@5 { 166*4882a593Smuzhiyun reg = <5>; 167*4882a593Smuzhiyun #phy-cells = <1>; 168*4882a593Smuzhiyun }; 169*4882a593Smuzhiyun }; 170*4882a593Smuzhiyun 171*4882a593Smuzhiyun CP11X_LABEL(mdio): mdio@12a200 { 172*4882a593Smuzhiyun #address-cells = <1>; 173*4882a593Smuzhiyun #size-cells = <0>; 174*4882a593Smuzhiyun compatible = "marvell,orion-mdio"; 175*4882a593Smuzhiyun reg = <0x12a200 0x10>; 176*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 9>, <&CP11X_LABEL(clk) 1 5>, 177*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 6>, <&CP11X_LABEL(clk) 1 18>; 178*4882a593Smuzhiyun status = "disabled"; 179*4882a593Smuzhiyun }; 180*4882a593Smuzhiyun 181*4882a593Smuzhiyun CP11X_LABEL(xmdio): mdio@12a600 { 182*4882a593Smuzhiyun #address-cells = <1>; 183*4882a593Smuzhiyun #size-cells = <0>; 184*4882a593Smuzhiyun compatible = "marvell,xmdio"; 185*4882a593Smuzhiyun reg = <0x12a600 0x10>; 186*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 5>, 187*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 6>, <&CP11X_LABEL(clk) 1 18>; 188*4882a593Smuzhiyun status = "disabled"; 189*4882a593Smuzhiyun }; 190*4882a593Smuzhiyun 191*4882a593Smuzhiyun CP11X_LABEL(icu): interrupt-controller@1e0000 { 192*4882a593Smuzhiyun compatible = "marvell,cp110-icu"; 193*4882a593Smuzhiyun reg = <0x1e0000 0x440>; 194*4882a593Smuzhiyun #address-cells = <1>; 195*4882a593Smuzhiyun #size-cells = <1>; 196*4882a593Smuzhiyun 197*4882a593Smuzhiyun CP11X_LABEL(icu_nsr): interrupt-controller@10 { 198*4882a593Smuzhiyun compatible = "marvell,cp110-icu-nsr"; 199*4882a593Smuzhiyun reg = <0x10 0x20>; 200*4882a593Smuzhiyun #interrupt-cells = <2>; 201*4882a593Smuzhiyun interrupt-controller; 202*4882a593Smuzhiyun msi-parent = <&gicp>; 203*4882a593Smuzhiyun }; 204*4882a593Smuzhiyun 205*4882a593Smuzhiyun CP11X_LABEL(icu_sei): interrupt-controller@50 { 206*4882a593Smuzhiyun compatible = "marvell,cp110-icu-sei"; 207*4882a593Smuzhiyun reg = <0x50 0x10>; 208*4882a593Smuzhiyun #interrupt-cells = <2>; 209*4882a593Smuzhiyun interrupt-controller; 210*4882a593Smuzhiyun msi-parent = <&sei>; 211*4882a593Smuzhiyun }; 212*4882a593Smuzhiyun }; 213*4882a593Smuzhiyun 214*4882a593Smuzhiyun CP11X_LABEL(rtc): rtc@284000 { 215*4882a593Smuzhiyun compatible = "marvell,armada-8k-rtc"; 216*4882a593Smuzhiyun reg = <0x284000 0x20>, <0x284080 0x24>; 217*4882a593Smuzhiyun reg-names = "rtc", "rtc-soc"; 218*4882a593Smuzhiyun interrupts = <77 IRQ_TYPE_LEVEL_HIGH>; 219*4882a593Smuzhiyun }; 220*4882a593Smuzhiyun 221*4882a593Smuzhiyun CP11X_LABEL(syscon0): system-controller@440000 { 222*4882a593Smuzhiyun compatible = "syscon", "simple-mfd"; 223*4882a593Smuzhiyun reg = <0x440000 0x2000>; 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun CP11X_LABEL(clk): clock { 226*4882a593Smuzhiyun compatible = "marvell,cp110-clock"; 227*4882a593Smuzhiyun #clock-cells = <2>; 228*4882a593Smuzhiyun }; 229*4882a593Smuzhiyun 230*4882a593Smuzhiyun CP11X_LABEL(gpio1): gpio@100 { 231*4882a593Smuzhiyun compatible = "marvell,armada-8k-gpio"; 232*4882a593Smuzhiyun offset = <0x100>; 233*4882a593Smuzhiyun ngpios = <32>; 234*4882a593Smuzhiyun gpio-controller; 235*4882a593Smuzhiyun #gpio-cells = <2>; 236*4882a593Smuzhiyun gpio-ranges = <&CP11X_LABEL(pinctrl) 0 0 32>; 237*4882a593Smuzhiyun interrupt-controller; 238*4882a593Smuzhiyun interrupts = <86 IRQ_TYPE_LEVEL_HIGH>, 239*4882a593Smuzhiyun <85 IRQ_TYPE_LEVEL_HIGH>, 240*4882a593Smuzhiyun <84 IRQ_TYPE_LEVEL_HIGH>, 241*4882a593Smuzhiyun <83 IRQ_TYPE_LEVEL_HIGH>; 242*4882a593Smuzhiyun #interrupt-cells = <2>; 243*4882a593Smuzhiyun status = "disabled"; 244*4882a593Smuzhiyun }; 245*4882a593Smuzhiyun 246*4882a593Smuzhiyun CP11X_LABEL(gpio2): gpio@140 { 247*4882a593Smuzhiyun compatible = "marvell,armada-8k-gpio"; 248*4882a593Smuzhiyun offset = <0x140>; 249*4882a593Smuzhiyun ngpios = <31>; 250*4882a593Smuzhiyun gpio-controller; 251*4882a593Smuzhiyun #gpio-cells = <2>; 252*4882a593Smuzhiyun gpio-ranges = <&CP11X_LABEL(pinctrl) 0 32 31>; 253*4882a593Smuzhiyun interrupt-controller; 254*4882a593Smuzhiyun interrupts = <82 IRQ_TYPE_LEVEL_HIGH>, 255*4882a593Smuzhiyun <81 IRQ_TYPE_LEVEL_HIGH>, 256*4882a593Smuzhiyun <80 IRQ_TYPE_LEVEL_HIGH>, 257*4882a593Smuzhiyun <79 IRQ_TYPE_LEVEL_HIGH>; 258*4882a593Smuzhiyun #interrupt-cells = <2>; 259*4882a593Smuzhiyun status = "disabled"; 260*4882a593Smuzhiyun }; 261*4882a593Smuzhiyun }; 262*4882a593Smuzhiyun 263*4882a593Smuzhiyun CP11X_LABEL(syscon1): system-controller@400000 { 264*4882a593Smuzhiyun compatible = "syscon", "simple-mfd"; 265*4882a593Smuzhiyun reg = <0x400000 0x1000>; 266*4882a593Smuzhiyun #address-cells = <1>; 267*4882a593Smuzhiyun #size-cells = <1>; 268*4882a593Smuzhiyun 269*4882a593Smuzhiyun CP11X_LABEL(thermal): thermal-sensor@70 { 270*4882a593Smuzhiyun compatible = "marvell,armada-cp110-thermal"; 271*4882a593Smuzhiyun reg = <0x70 0x10>; 272*4882a593Smuzhiyun interrupts-extended = 273*4882a593Smuzhiyun <&CP11X_LABEL(icu_sei) 116 IRQ_TYPE_LEVEL_HIGH>; 274*4882a593Smuzhiyun #thermal-sensor-cells = <1>; 275*4882a593Smuzhiyun }; 276*4882a593Smuzhiyun }; 277*4882a593Smuzhiyun 278*4882a593Smuzhiyun CP11X_LABEL(usb3_0): usb3@500000 { 279*4882a593Smuzhiyun compatible = "marvell,armada-8k-xhci", 280*4882a593Smuzhiyun "generic-xhci"; 281*4882a593Smuzhiyun reg = <0x500000 0x4000>; 282*4882a593Smuzhiyun dma-coherent; 283*4882a593Smuzhiyun interrupts = <106 IRQ_TYPE_LEVEL_HIGH>; 284*4882a593Smuzhiyun clock-names = "core", "reg"; 285*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 22>, 286*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 16>; 287*4882a593Smuzhiyun status = "disabled"; 288*4882a593Smuzhiyun }; 289*4882a593Smuzhiyun 290*4882a593Smuzhiyun CP11X_LABEL(usb3_1): usb3@510000 { 291*4882a593Smuzhiyun compatible = "marvell,armada-8k-xhci", 292*4882a593Smuzhiyun "generic-xhci"; 293*4882a593Smuzhiyun reg = <0x510000 0x4000>; 294*4882a593Smuzhiyun dma-coherent; 295*4882a593Smuzhiyun interrupts = <105 IRQ_TYPE_LEVEL_HIGH>; 296*4882a593Smuzhiyun clock-names = "core", "reg"; 297*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 23>, 298*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 16>; 299*4882a593Smuzhiyun status = "disabled"; 300*4882a593Smuzhiyun }; 301*4882a593Smuzhiyun 302*4882a593Smuzhiyun CP11X_LABEL(sata0): sata@540000 { 303*4882a593Smuzhiyun compatible = "marvell,armada-8k-ahci", 304*4882a593Smuzhiyun "generic-ahci"; 305*4882a593Smuzhiyun reg = <0x540000 0x30000>; 306*4882a593Smuzhiyun dma-coherent; 307*4882a593Smuzhiyun interrupts = <107 IRQ_TYPE_LEVEL_HIGH>; 308*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 15>, 309*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 16>; 310*4882a593Smuzhiyun #address-cells = <1>; 311*4882a593Smuzhiyun #size-cells = <0>; 312*4882a593Smuzhiyun status = "disabled"; 313*4882a593Smuzhiyun 314*4882a593Smuzhiyun sata-port@0 { 315*4882a593Smuzhiyun reg = <0>; 316*4882a593Smuzhiyun }; 317*4882a593Smuzhiyun 318*4882a593Smuzhiyun sata-port@1 { 319*4882a593Smuzhiyun reg = <1>; 320*4882a593Smuzhiyun }; 321*4882a593Smuzhiyun }; 322*4882a593Smuzhiyun 323*4882a593Smuzhiyun CP11X_LABEL(xor0): xor@6a0000 { 324*4882a593Smuzhiyun compatible = "marvell,armada-7k-xor", "marvell,xor-v2"; 325*4882a593Smuzhiyun reg = <0x6a0000 0x1000>, <0x6b0000 0x1000>; 326*4882a593Smuzhiyun dma-coherent; 327*4882a593Smuzhiyun msi-parent = <&gic_v2m0>; 328*4882a593Smuzhiyun clock-names = "core", "reg"; 329*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 8>, 330*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 14>; 331*4882a593Smuzhiyun }; 332*4882a593Smuzhiyun 333*4882a593Smuzhiyun CP11X_LABEL(xor1): xor@6c0000 { 334*4882a593Smuzhiyun compatible = "marvell,armada-7k-xor", "marvell,xor-v2"; 335*4882a593Smuzhiyun reg = <0x6c0000 0x1000>, <0x6d0000 0x1000>; 336*4882a593Smuzhiyun dma-coherent; 337*4882a593Smuzhiyun msi-parent = <&gic_v2m0>; 338*4882a593Smuzhiyun clock-names = "core", "reg"; 339*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 7>, 340*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 14>; 341*4882a593Smuzhiyun }; 342*4882a593Smuzhiyun 343*4882a593Smuzhiyun CP11X_LABEL(spi0): spi@700600 { 344*4882a593Smuzhiyun compatible = "marvell,armada-380-spi"; 345*4882a593Smuzhiyun reg = <0x700600 0x50>; 346*4882a593Smuzhiyun #address-cells = <0x1>; 347*4882a593Smuzhiyun #size-cells = <0x0>; 348*4882a593Smuzhiyun clock-names = "core", "axi"; 349*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 21>, 350*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 17>; 351*4882a593Smuzhiyun status = "disabled"; 352*4882a593Smuzhiyun }; 353*4882a593Smuzhiyun 354*4882a593Smuzhiyun CP11X_LABEL(spi1): spi@700680 { 355*4882a593Smuzhiyun compatible = "marvell,armada-380-spi"; 356*4882a593Smuzhiyun reg = <0x700680 0x50>; 357*4882a593Smuzhiyun #address-cells = <1>; 358*4882a593Smuzhiyun #size-cells = <0>; 359*4882a593Smuzhiyun clock-names = "core", "axi"; 360*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 21>, 361*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 17>; 362*4882a593Smuzhiyun status = "disabled"; 363*4882a593Smuzhiyun }; 364*4882a593Smuzhiyun 365*4882a593Smuzhiyun CP11X_LABEL(i2c0): i2c@701000 { 366*4882a593Smuzhiyun compatible = "marvell,mv78230-i2c"; 367*4882a593Smuzhiyun reg = <0x701000 0x20>; 368*4882a593Smuzhiyun #address-cells = <1>; 369*4882a593Smuzhiyun #size-cells = <0>; 370*4882a593Smuzhiyun interrupts = <120 IRQ_TYPE_LEVEL_HIGH>; 371*4882a593Smuzhiyun clock-names = "core", "reg"; 372*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 21>, 373*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 17>; 374*4882a593Smuzhiyun status = "disabled"; 375*4882a593Smuzhiyun }; 376*4882a593Smuzhiyun 377*4882a593Smuzhiyun CP11X_LABEL(i2c1): i2c@701100 { 378*4882a593Smuzhiyun compatible = "marvell,mv78230-i2c"; 379*4882a593Smuzhiyun reg = <0x701100 0x20>; 380*4882a593Smuzhiyun #address-cells = <1>; 381*4882a593Smuzhiyun #size-cells = <0>; 382*4882a593Smuzhiyun interrupts = <121 IRQ_TYPE_LEVEL_HIGH>; 383*4882a593Smuzhiyun clock-names = "core", "reg"; 384*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 21>, 385*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 17>; 386*4882a593Smuzhiyun status = "disabled"; 387*4882a593Smuzhiyun }; 388*4882a593Smuzhiyun 389*4882a593Smuzhiyun CP11X_LABEL(uart0): serial@702000 { 390*4882a593Smuzhiyun compatible = "snps,dw-apb-uart"; 391*4882a593Smuzhiyun reg = <0x702000 0x100>; 392*4882a593Smuzhiyun reg-shift = <2>; 393*4882a593Smuzhiyun interrupts = <122 IRQ_TYPE_LEVEL_HIGH>; 394*4882a593Smuzhiyun reg-io-width = <1>; 395*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 396*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 21>, 397*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 17>; 398*4882a593Smuzhiyun status = "disabled"; 399*4882a593Smuzhiyun }; 400*4882a593Smuzhiyun 401*4882a593Smuzhiyun CP11X_LABEL(uart1): serial@702100 { 402*4882a593Smuzhiyun compatible = "snps,dw-apb-uart"; 403*4882a593Smuzhiyun reg = <0x702100 0x100>; 404*4882a593Smuzhiyun reg-shift = <2>; 405*4882a593Smuzhiyun interrupts = <123 IRQ_TYPE_LEVEL_HIGH>; 406*4882a593Smuzhiyun reg-io-width = <1>; 407*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 408*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 21>, 409*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 17>; 410*4882a593Smuzhiyun status = "disabled"; 411*4882a593Smuzhiyun }; 412*4882a593Smuzhiyun 413*4882a593Smuzhiyun CP11X_LABEL(uart2): serial@702200 { 414*4882a593Smuzhiyun compatible = "snps,dw-apb-uart"; 415*4882a593Smuzhiyun reg = <0x702200 0x100>; 416*4882a593Smuzhiyun reg-shift = <2>; 417*4882a593Smuzhiyun interrupts = <124 IRQ_TYPE_LEVEL_HIGH>; 418*4882a593Smuzhiyun reg-io-width = <1>; 419*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 420*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 21>, 421*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 17>; 422*4882a593Smuzhiyun status = "disabled"; 423*4882a593Smuzhiyun }; 424*4882a593Smuzhiyun 425*4882a593Smuzhiyun CP11X_LABEL(uart3): serial@702300 { 426*4882a593Smuzhiyun compatible = "snps,dw-apb-uart"; 427*4882a593Smuzhiyun reg = <0x702300 0x100>; 428*4882a593Smuzhiyun reg-shift = <2>; 429*4882a593Smuzhiyun interrupts = <125 IRQ_TYPE_LEVEL_HIGH>; 430*4882a593Smuzhiyun reg-io-width = <1>; 431*4882a593Smuzhiyun clock-names = "baudclk", "apb_pclk"; 432*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 21>, 433*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 17>; 434*4882a593Smuzhiyun status = "disabled"; 435*4882a593Smuzhiyun }; 436*4882a593Smuzhiyun 437*4882a593Smuzhiyun CP11X_LABEL(nand_controller): nand@720000 { 438*4882a593Smuzhiyun /* 439*4882a593Smuzhiyun * Due to the limitation of the pins available 440*4882a593Smuzhiyun * this controller is only usable on the CPM 441*4882a593Smuzhiyun * for A7K and on the CPS for A8K. 442*4882a593Smuzhiyun */ 443*4882a593Smuzhiyun compatible = "marvell,armada-8k-nand-controller", 444*4882a593Smuzhiyun "marvell,armada370-nand-controller"; 445*4882a593Smuzhiyun reg = <0x720000 0x54>; 446*4882a593Smuzhiyun #address-cells = <1>; 447*4882a593Smuzhiyun #size-cells = <0>; 448*4882a593Smuzhiyun interrupts = <115 IRQ_TYPE_LEVEL_HIGH>; 449*4882a593Smuzhiyun clock-names = "core", "reg"; 450*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 2>, 451*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 17>; 452*4882a593Smuzhiyun marvell,system-controller = <&CP11X_LABEL(syscon0)>; 453*4882a593Smuzhiyun status = "disabled"; 454*4882a593Smuzhiyun }; 455*4882a593Smuzhiyun 456*4882a593Smuzhiyun CP11X_LABEL(trng): trng@760000 { 457*4882a593Smuzhiyun compatible = "marvell,armada-8k-rng", 458*4882a593Smuzhiyun "inside-secure,safexcel-eip76"; 459*4882a593Smuzhiyun reg = <0x760000 0x7d>; 460*4882a593Smuzhiyun interrupts = <95 IRQ_TYPE_LEVEL_HIGH>; 461*4882a593Smuzhiyun clock-names = "core", "reg"; 462*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 25>, 463*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 17>; 464*4882a593Smuzhiyun status = "okay"; 465*4882a593Smuzhiyun }; 466*4882a593Smuzhiyun 467*4882a593Smuzhiyun CP11X_LABEL(sdhci0): sdhci@780000 { 468*4882a593Smuzhiyun compatible = "marvell,armada-cp110-sdhci"; 469*4882a593Smuzhiyun reg = <0x780000 0x300>; 470*4882a593Smuzhiyun interrupts = <27 IRQ_TYPE_LEVEL_HIGH>; 471*4882a593Smuzhiyun clock-names = "core", "axi"; 472*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 4>, <&CP11X_LABEL(clk) 1 18>; 473*4882a593Smuzhiyun dma-coherent; 474*4882a593Smuzhiyun status = "disabled"; 475*4882a593Smuzhiyun }; 476*4882a593Smuzhiyun 477*4882a593Smuzhiyun CP11X_LABEL(crypto): crypto@800000 { 478*4882a593Smuzhiyun compatible = "inside-secure,safexcel-eip197b"; 479*4882a593Smuzhiyun reg = <0x800000 0x200000>; 480*4882a593Smuzhiyun interrupts = <87 IRQ_TYPE_LEVEL_HIGH>, 481*4882a593Smuzhiyun <88 IRQ_TYPE_LEVEL_HIGH>, 482*4882a593Smuzhiyun <89 IRQ_TYPE_LEVEL_HIGH>, 483*4882a593Smuzhiyun <90 IRQ_TYPE_LEVEL_HIGH>, 484*4882a593Smuzhiyun <91 IRQ_TYPE_LEVEL_HIGH>, 485*4882a593Smuzhiyun <92 IRQ_TYPE_LEVEL_HIGH>; 486*4882a593Smuzhiyun interrupt-names = "mem", "ring0", "ring1", 487*4882a593Smuzhiyun "ring2", "ring3", "eip"; 488*4882a593Smuzhiyun clock-names = "core", "reg"; 489*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 26>, 490*4882a593Smuzhiyun <&CP11X_LABEL(clk) 1 17>; 491*4882a593Smuzhiyun dma-coherent; 492*4882a593Smuzhiyun }; 493*4882a593Smuzhiyun }; 494*4882a593Smuzhiyun 495*4882a593Smuzhiyun CP11X_LABEL(pcie0): pcie@CP11X_PCIE0_BASE { 496*4882a593Smuzhiyun compatible = "marvell,armada8k-pcie", "snps,dw-pcie"; 497*4882a593Smuzhiyun reg = <0 ADDRESSIFY(CP11X_PCIE0_BASE) 0 0x10000>, 498*4882a593Smuzhiyun <0 CP11X_PCIEx_CONF_BASE(0) 0 0x80000>; 499*4882a593Smuzhiyun reg-names = "ctrl", "config"; 500*4882a593Smuzhiyun #address-cells = <3>; 501*4882a593Smuzhiyun #size-cells = <2>; 502*4882a593Smuzhiyun #interrupt-cells = <1>; 503*4882a593Smuzhiyun device_type = "pci"; 504*4882a593Smuzhiyun dma-coherent; 505*4882a593Smuzhiyun msi-parent = <&gic_v2m0>; 506*4882a593Smuzhiyun 507*4882a593Smuzhiyun bus-range = <0 0xff>; 508*4882a593Smuzhiyun /* non-prefetchable memory */ 509*4882a593Smuzhiyun ranges = <0x82000000 0 CP11X_PCIEx_MEM_BASE(0) 0 CP11X_PCIEx_MEM_BASE(0) 0 CP11X_PCIEx_MEM_SIZE(0)>; 510*4882a593Smuzhiyun interrupt-map-mask = <0 0 0 0>; 511*4882a593Smuzhiyun interrupt-map = <0 0 0 0 &CP11X_LABEL(icu_nsr) 22 IRQ_TYPE_LEVEL_HIGH>; 512*4882a593Smuzhiyun interrupts = <22 IRQ_TYPE_LEVEL_HIGH>; 513*4882a593Smuzhiyun num-lanes = <1>; 514*4882a593Smuzhiyun clock-names = "core", "reg"; 515*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 13>, <&CP11X_LABEL(clk) 1 14>; 516*4882a593Smuzhiyun status = "disabled"; 517*4882a593Smuzhiyun }; 518*4882a593Smuzhiyun 519*4882a593Smuzhiyun CP11X_LABEL(pcie1): pcie@CP11X_PCIE1_BASE { 520*4882a593Smuzhiyun compatible = "marvell,armada8k-pcie", "snps,dw-pcie"; 521*4882a593Smuzhiyun reg = <0 ADDRESSIFY(CP11X_PCIE1_BASE) 0 0x10000>, 522*4882a593Smuzhiyun <0 CP11X_PCIEx_CONF_BASE(1) 0 0x80000>; 523*4882a593Smuzhiyun reg-names = "ctrl", "config"; 524*4882a593Smuzhiyun #address-cells = <3>; 525*4882a593Smuzhiyun #size-cells = <2>; 526*4882a593Smuzhiyun #interrupt-cells = <1>; 527*4882a593Smuzhiyun device_type = "pci"; 528*4882a593Smuzhiyun dma-coherent; 529*4882a593Smuzhiyun msi-parent = <&gic_v2m0>; 530*4882a593Smuzhiyun 531*4882a593Smuzhiyun bus-range = <0 0xff>; 532*4882a593Smuzhiyun /* non-prefetchable memory */ 533*4882a593Smuzhiyun ranges = <0x82000000 0 CP11X_PCIEx_MEM_BASE(1) 0 CP11X_PCIEx_MEM_BASE(1) 0 CP11X_PCIEx_MEM_SIZE(1)>; 534*4882a593Smuzhiyun interrupt-map-mask = <0 0 0 0>; 535*4882a593Smuzhiyun interrupt-map = <0 0 0 0 &CP11X_LABEL(icu_nsr) 24 IRQ_TYPE_LEVEL_HIGH>; 536*4882a593Smuzhiyun interrupts = <24 IRQ_TYPE_LEVEL_HIGH>; 537*4882a593Smuzhiyun 538*4882a593Smuzhiyun num-lanes = <1>; 539*4882a593Smuzhiyun clock-names = "core", "reg"; 540*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 11>, <&CP11X_LABEL(clk) 1 14>; 541*4882a593Smuzhiyun status = "disabled"; 542*4882a593Smuzhiyun }; 543*4882a593Smuzhiyun 544*4882a593Smuzhiyun CP11X_LABEL(pcie2): pcie@CP11X_PCIE2_BASE { 545*4882a593Smuzhiyun compatible = "marvell,armada8k-pcie", "snps,dw-pcie"; 546*4882a593Smuzhiyun reg = <0 ADDRESSIFY(CP11X_PCIE2_BASE) 0 0x10000>, 547*4882a593Smuzhiyun <0 CP11X_PCIEx_CONF_BASE(2) 0 0x80000>; 548*4882a593Smuzhiyun reg-names = "ctrl", "config"; 549*4882a593Smuzhiyun #address-cells = <3>; 550*4882a593Smuzhiyun #size-cells = <2>; 551*4882a593Smuzhiyun #interrupt-cells = <1>; 552*4882a593Smuzhiyun device_type = "pci"; 553*4882a593Smuzhiyun dma-coherent; 554*4882a593Smuzhiyun msi-parent = <&gic_v2m0>; 555*4882a593Smuzhiyun 556*4882a593Smuzhiyun bus-range = <0 0xff>; 557*4882a593Smuzhiyun /* non-prefetchable memory */ 558*4882a593Smuzhiyun ranges = <0x82000000 0 CP11X_PCIEx_MEM_BASE(2) 0 CP11X_PCIEx_MEM_BASE(2) 0 CP11X_PCIEx_MEM_SIZE(2)>; 559*4882a593Smuzhiyun interrupt-map-mask = <0 0 0 0>; 560*4882a593Smuzhiyun interrupt-map = <0 0 0 0 &CP11X_LABEL(icu_nsr) 23 IRQ_TYPE_LEVEL_HIGH>; 561*4882a593Smuzhiyun interrupts = <23 IRQ_TYPE_LEVEL_HIGH>; 562*4882a593Smuzhiyun 563*4882a593Smuzhiyun num-lanes = <1>; 564*4882a593Smuzhiyun clock-names = "core", "reg"; 565*4882a593Smuzhiyun clocks = <&CP11X_LABEL(clk) 1 12>, <&CP11X_LABEL(clk) 1 14>; 566*4882a593Smuzhiyun status = "disabled"; 567*4882a593Smuzhiyun }; 568*4882a593Smuzhiyun}; 569