1fc85b7e6SAnand Gore// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2fc85b7e6SAnand Gore/* 3fc85b7e6SAnand Gore * Copyright 2022 Broadcom Ltd. 4fc85b7e6SAnand Gore */ 5fc85b7e6SAnand Gore 6fc85b7e6SAnand Gore#include <dt-bindings/interrupt-controller/arm-gic.h> 7fc85b7e6SAnand Gore#include <dt-bindings/interrupt-controller/irq.h> 8fc85b7e6SAnand Gore 9fc85b7e6SAnand Gore/ { 10fc85b7e6SAnand Gore compatible = "brcm,bcm63178", "brcm,bcmbca"; 11fc85b7e6SAnand Gore #address-cells = <1>; 12fc85b7e6SAnand Gore #size-cells = <1>; 13fc85b7e6SAnand Gore 14fc85b7e6SAnand Gore interrupt-parent = <&gic>; 15fc85b7e6SAnand Gore 16fc85b7e6SAnand Gore cpus { 17fc85b7e6SAnand Gore #address-cells = <1>; 18fc85b7e6SAnand Gore #size-cells = <0>; 19fc85b7e6SAnand Gore 20fc85b7e6SAnand Gore CA7_0: cpu@0 { 21fc85b7e6SAnand Gore device_type = "cpu"; 22fc85b7e6SAnand Gore compatible = "arm,cortex-a7"; 23fc85b7e6SAnand Gore reg = <0x0>; 24fc85b7e6SAnand Gore next-level-cache = <&L2_0>; 25fc85b7e6SAnand Gore enable-method = "psci"; 26fc85b7e6SAnand Gore }; 27fc85b7e6SAnand Gore 28fc85b7e6SAnand Gore CA7_1: cpu@1 { 29fc85b7e6SAnand Gore device_type = "cpu"; 30fc85b7e6SAnand Gore compatible = "arm,cortex-a7"; 31fc85b7e6SAnand Gore reg = <0x1>; 32fc85b7e6SAnand Gore next-level-cache = <&L2_0>; 33fc85b7e6SAnand Gore enable-method = "psci"; 34fc85b7e6SAnand Gore }; 35e636e56aSWilliam Zhang 36fc85b7e6SAnand Gore CA7_2: cpu@2 { 37fc85b7e6SAnand Gore device_type = "cpu"; 38fc85b7e6SAnand Gore compatible = "arm,cortex-a7"; 39fc85b7e6SAnand Gore reg = <0x2>; 40fc85b7e6SAnand Gore next-level-cache = <&L2_0>; 41fc85b7e6SAnand Gore enable-method = "psci"; 42fc85b7e6SAnand Gore }; 43e636e56aSWilliam Zhang 44fc85b7e6SAnand Gore L2_0: l2-cache0 { 45fc85b7e6SAnand Gore compatible = "cache"; 46b2302467SPierre Gondois cache-level = <2>; 470db4bb04SKrzysztof Kozlowski cache-unified; 48fc85b7e6SAnand Gore }; 49fc85b7e6SAnand Gore }; 50fc85b7e6SAnand Gore 51fc85b7e6SAnand Gore timer { 52fc85b7e6SAnand Gore compatible = "arm,armv7-timer"; 53d1475cdeSWilliam Zhang interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_LOW)>, 54d1475cdeSWilliam Zhang <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_LOW)>, 55d1475cdeSWilliam Zhang <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_LOW)>, 56d1475cdeSWilliam Zhang <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_LOW)>; 57fc85b7e6SAnand Gore arm,cpu-registers-not-fw-configured; 58fc85b7e6SAnand Gore }; 59fc85b7e6SAnand Gore 60fc85b7e6SAnand Gore pmu: pmu { 61fc85b7e6SAnand Gore compatible = "arm,cortex-a7-pmu"; 62fc85b7e6SAnand Gore interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 63fc85b7e6SAnand Gore <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 64fc85b7e6SAnand Gore <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 65fc85b7e6SAnand Gore interrupt-affinity = <&CA7_0>, <&CA7_1>, 66fc85b7e6SAnand Gore <&CA7_2>; 67fc85b7e6SAnand Gore }; 68fc85b7e6SAnand Gore 69fc85b7e6SAnand Gore clocks: clocks { 70fc85b7e6SAnand Gore periph_clk: periph-clk { 71fc85b7e6SAnand Gore compatible = "fixed-clock"; 72fc85b7e6SAnand Gore #clock-cells = <0>; 73fc85b7e6SAnand Gore clock-frequency = <200000000>; 74fc85b7e6SAnand Gore }; 757858ddedSWilliam Zhang 76fc85b7e6SAnand Gore uart_clk: uart-clk { 77fc85b7e6SAnand Gore compatible = "fixed-factor-clock"; 78fc85b7e6SAnand Gore #clock-cells = <0>; 79fc85b7e6SAnand Gore clocks = <&periph_clk>; 80fc85b7e6SAnand Gore clock-div = <4>; 81fc85b7e6SAnand Gore clock-mult = <1>; 82fc85b7e6SAnand Gore }; 837858ddedSWilliam Zhang 847858ddedSWilliam Zhang hsspi_pll: hsspi-pll { 857858ddedSWilliam Zhang compatible = "fixed-clock"; 867858ddedSWilliam Zhang #clock-cells = <0>; 877858ddedSWilliam Zhang clock-frequency = <200000000>; 887858ddedSWilliam Zhang }; 89fc85b7e6SAnand Gore }; 90fc85b7e6SAnand Gore 91fc85b7e6SAnand Gore psci { 92fc85b7e6SAnand Gore compatible = "arm,psci-0.2"; 93fc85b7e6SAnand Gore method = "smc"; 94fc85b7e6SAnand Gore }; 95fc85b7e6SAnand Gore 96fc85b7e6SAnand Gore axi@81000000 { 97fc85b7e6SAnand Gore compatible = "simple-bus"; 98fc85b7e6SAnand Gore #address-cells = <1>; 99fc85b7e6SAnand Gore #size-cells = <1>; 100ed93a068SWilliam Zhang ranges = <0 0x81000000 0x8000>; 101fc85b7e6SAnand Gore 102fc85b7e6SAnand Gore gic: interrupt-controller@1000 { 103fc85b7e6SAnand Gore compatible = "arm,cortex-a7-gic"; 104fc85b7e6SAnand Gore #interrupt-cells = <3>; 105fc85b7e6SAnand Gore interrupt-controller; 106ed93a068SWilliam Zhang interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_HIGH)>; 107fc85b7e6SAnand Gore reg = <0x1000 0x1000>, 108ed93a068SWilliam Zhang <0x2000 0x2000>, 109ed93a068SWilliam Zhang <0x4000 0x2000>, 110ed93a068SWilliam Zhang <0x6000 0x2000>; 111fc85b7e6SAnand Gore }; 112fc85b7e6SAnand Gore }; 113fc85b7e6SAnand Gore 114fc85b7e6SAnand Gore bus@ff800000 { 115fc85b7e6SAnand Gore compatible = "simple-bus"; 116fc85b7e6SAnand Gore #address-cells = <1>; 117fc85b7e6SAnand Gore #size-cells = <1>; 118fc85b7e6SAnand Gore ranges = <0 0xff800000 0x800000>; 119fc85b7e6SAnand Gore 120*81f83a36SLinus Walleij watchdog@480 { 121*81f83a36SLinus Walleij compatible = "brcm,bcm6345-wdt"; 122*81f83a36SLinus Walleij reg = <0x480 0x10>; 123*81f83a36SLinus Walleij }; 124*81f83a36SLinus Walleij 125*81f83a36SLinus Walleij /* GPIOs 0 .. 31 */ 126*81f83a36SLinus Walleij gpio0: gpio@500 { 127*81f83a36SLinus Walleij compatible = "brcm,bcm6345-gpio"; 128*81f83a36SLinus Walleij reg = <0x500 0x04>, <0x520 0x04>; 129*81f83a36SLinus Walleij reg-names = "dirout", "dat"; 130*81f83a36SLinus Walleij gpio-controller; 131*81f83a36SLinus Walleij #gpio-cells = <2>; 132*81f83a36SLinus Walleij status = "disabled"; 133*81f83a36SLinus Walleij }; 134*81f83a36SLinus Walleij 135*81f83a36SLinus Walleij /* GPIOs 32 .. 63 */ 136*81f83a36SLinus Walleij gpio1: gpio@504 { 137*81f83a36SLinus Walleij compatible = "brcm,bcm6345-gpio"; 138*81f83a36SLinus Walleij reg = <0x504 0x04>, <0x524 0x04>; 139*81f83a36SLinus Walleij reg-names = "dirout", "dat"; 140*81f83a36SLinus Walleij gpio-controller; 141*81f83a36SLinus Walleij #gpio-cells = <2>; 142*81f83a36SLinus Walleij status = "disabled"; 143*81f83a36SLinus Walleij }; 144*81f83a36SLinus Walleij 145*81f83a36SLinus Walleij /* GPIOs 64 .. 95 */ 146*81f83a36SLinus Walleij gpio2: gpio@508 { 147*81f83a36SLinus Walleij compatible = "brcm,bcm6345-gpio"; 148*81f83a36SLinus Walleij reg = <0x508 0x04>, <0x528 0x04>; 149*81f83a36SLinus Walleij reg-names = "dirout", "dat"; 150*81f83a36SLinus Walleij gpio-controller; 151*81f83a36SLinus Walleij #gpio-cells = <2>; 152*81f83a36SLinus Walleij status = "disabled"; 153*81f83a36SLinus Walleij }; 154*81f83a36SLinus Walleij 155*81f83a36SLinus Walleij /* GPIOs 96 .. 127 */ 156*81f83a36SLinus Walleij gpio3: gpio@50c { 157*81f83a36SLinus Walleij compatible = "brcm,bcm6345-gpio"; 158*81f83a36SLinus Walleij reg = <0x50c 0x04>, <0x52c 0x04>; 159*81f83a36SLinus Walleij reg-names = "dirout", "dat"; 160*81f83a36SLinus Walleij gpio-controller; 161*81f83a36SLinus Walleij #gpio-cells = <2>; 162*81f83a36SLinus Walleij status = "disabled"; 163*81f83a36SLinus Walleij }; 164*81f83a36SLinus Walleij 165*81f83a36SLinus Walleij /* GPIOs 128 .. 159 */ 166*81f83a36SLinus Walleij gpio4: gpio@510 { 167*81f83a36SLinus Walleij compatible = "brcm,bcm6345-gpio"; 168*81f83a36SLinus Walleij reg = <0x510 0x04>, <0x530 0x04>; 169*81f83a36SLinus Walleij reg-names = "dirout", "dat"; 170*81f83a36SLinus Walleij gpio-controller; 171*81f83a36SLinus Walleij #gpio-cells = <2>; 172*81f83a36SLinus Walleij status = "disabled"; 173*81f83a36SLinus Walleij }; 174*81f83a36SLinus Walleij 175*81f83a36SLinus Walleij /* GPIOs 160 .. 191 */ 176*81f83a36SLinus Walleij gpio5: gpio@514 { 177*81f83a36SLinus Walleij compatible = "brcm,bcm6345-gpio"; 178*81f83a36SLinus Walleij reg = <0x514 0x04>, <0x534 0x04>; 179*81f83a36SLinus Walleij reg-names = "dirout", "dat"; 180*81f83a36SLinus Walleij gpio-controller; 181*81f83a36SLinus Walleij #gpio-cells = <2>; 182*81f83a36SLinus Walleij status = "disabled"; 183*81f83a36SLinus Walleij }; 184*81f83a36SLinus Walleij 185*81f83a36SLinus Walleij /* GPIOs 192 .. 223 */ 186*81f83a36SLinus Walleij gpio6: gpio@518 { 187*81f83a36SLinus Walleij compatible = "brcm,bcm6345-gpio"; 188*81f83a36SLinus Walleij reg = <0x518 0x04>, <0x538 0x04>; 189*81f83a36SLinus Walleij reg-names = "dirout", "dat"; 190*81f83a36SLinus Walleij gpio-controller; 191*81f83a36SLinus Walleij #gpio-cells = <2>; 192*81f83a36SLinus Walleij status = "disabled"; 193*81f83a36SLinus Walleij }; 194*81f83a36SLinus Walleij 195*81f83a36SLinus Walleij /* GPIOs 224 .. 255 */ 196*81f83a36SLinus Walleij gpio7: gpio@51c { 197*81f83a36SLinus Walleij compatible = "brcm,bcm6345-gpio"; 198*81f83a36SLinus Walleij reg = <0x51c 0x04>, <0x53c 0x04>; 199*81f83a36SLinus Walleij reg-names = "dirout", "dat"; 200*81f83a36SLinus Walleij gpio-controller; 201*81f83a36SLinus Walleij #gpio-cells = <2>; 202*81f83a36SLinus Walleij status = "disabled"; 203*81f83a36SLinus Walleij }; 204*81f83a36SLinus Walleij 205*81f83a36SLinus Walleij rng@b80 { 206*81f83a36SLinus Walleij compatible = "brcm,iproc-rng200"; 207*81f83a36SLinus Walleij reg = <0xb80 0x28>; 208*81f83a36SLinus Walleij interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 209*81f83a36SLinus Walleij }; 210*81f83a36SLinus Walleij 2117858ddedSWilliam Zhang hsspi: spi@1000 { 2127858ddedSWilliam Zhang #address-cells = <1>; 2137858ddedSWilliam Zhang #size-cells = <0>; 2147858ddedSWilliam Zhang compatible = "brcm,bcm63178-hsspi", "brcm,bcmbca-hsspi-v1.0"; 2157858ddedSWilliam Zhang reg = <0x1000 0x600>; 2167858ddedSWilliam Zhang interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 2177858ddedSWilliam Zhang clocks = <&hsspi_pll &hsspi_pll>; 2187858ddedSWilliam Zhang clock-names = "hsspi", "pll"; 2197858ddedSWilliam Zhang num-cs = <8>; 2207858ddedSWilliam Zhang status = "disabled"; 2217858ddedSWilliam Zhang }; 2227858ddedSWilliam Zhang 223d42d8e82SWilliam Zhang nand_controller: nand-controller@1800 { 224d42d8e82SWilliam Zhang #address-cells = <1>; 225d42d8e82SWilliam Zhang #size-cells = <0>; 226d42d8e82SWilliam Zhang compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand"; 227d42d8e82SWilliam Zhang reg = <0x1800 0x600>, <0x2000 0x10>; 228d42d8e82SWilliam Zhang reg-names = "nand", "nand-int-base"; 229d42d8e82SWilliam Zhang status = "disabled"; 230d42d8e82SWilliam Zhang 231d42d8e82SWilliam Zhang nandcs: nand@0 { 232d42d8e82SWilliam Zhang compatible = "brcm,nandcs"; 233d42d8e82SWilliam Zhang reg = <0>; 234d42d8e82SWilliam Zhang }; 235d42d8e82SWilliam Zhang }; 236d42d8e82SWilliam Zhang 237*81f83a36SLinus Walleij leds: led-controller@3000 { 238*81f83a36SLinus Walleij #address-cells = <1>; 239*81f83a36SLinus Walleij #size-cells = <0>; 240*81f83a36SLinus Walleij compatible = "brcm,bcm63138-leds"; 241*81f83a36SLinus Walleij reg = <0x3000 0xdc>; 242*81f83a36SLinus Walleij status = "disabled"; 243*81f83a36SLinus Walleij }; 244*81f83a36SLinus Walleij 245*81f83a36SLinus Walleij pl081_dma: dma-controller@11000 { 246*81f83a36SLinus Walleij compatible = "arm,pl081", "arm,primecell"; 247*81f83a36SLinus Walleij // The magic B105F00D info is missing 248*81f83a36SLinus Walleij arm,primecell-periphid = <0x00041081>; 249*81f83a36SLinus Walleij reg = <0x11000 0x1000>; 250*81f83a36SLinus Walleij interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 251*81f83a36SLinus Walleij memcpy-burst-size = <256>; 252*81f83a36SLinus Walleij memcpy-bus-width = <32>; 253*81f83a36SLinus Walleij clocks = <&periph_clk>; 254*81f83a36SLinus Walleij clock-names = "apb_pclk"; 255*81f83a36SLinus Walleij #dma-cells = <2>; 256*81f83a36SLinus Walleij }; 257*81f83a36SLinus Walleij 258fc85b7e6SAnand Gore uart0: serial@12000 { 259fc85b7e6SAnand Gore compatible = "arm,pl011", "arm,primecell"; 260fc85b7e6SAnand Gore reg = <0x12000 0x1000>; 261fc85b7e6SAnand Gore interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 262fc85b7e6SAnand Gore clocks = <&uart_clk>, <&uart_clk>; 263fc85b7e6SAnand Gore clock-names = "uartclk", "apb_pclk"; 264fc85b7e6SAnand Gore status = "disabled"; 265fc85b7e6SAnand Gore }; 266fc85b7e6SAnand Gore }; 267fc85b7e6SAnand Gore}; 268