16bcad714SAnand Gore// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 26bcad714SAnand Gore/* 36bcad714SAnand Gore * Copyright 2022 Broadcom Ltd. 46bcad714SAnand Gore */ 56bcad714SAnand Gore 66bcad714SAnand Gore#include <dt-bindings/interrupt-controller/arm-gic.h> 76bcad714SAnand Gore#include <dt-bindings/interrupt-controller/irq.h> 86bcad714SAnand Gore 96bcad714SAnand Gore/ { 106bcad714SAnand Gore compatible = "brcm,bcm6878", "brcm,bcmbca"; 116bcad714SAnand Gore #address-cells = <1>; 126bcad714SAnand Gore #size-cells = <1>; 136bcad714SAnand Gore 146bcad714SAnand Gore interrupt-parent = <&gic>; 156bcad714SAnand Gore 166bcad714SAnand Gore cpus { 176bcad714SAnand Gore #address-cells = <1>; 186bcad714SAnand Gore #size-cells = <0>; 196bcad714SAnand Gore 206bcad714SAnand Gore CA7_0: cpu@0 { 216bcad714SAnand Gore device_type = "cpu"; 226bcad714SAnand Gore compatible = "arm,cortex-a7"; 236bcad714SAnand Gore reg = <0x0>; 246bcad714SAnand Gore next-level-cache = <&L2_0>; 256bcad714SAnand Gore enable-method = "psci"; 266bcad714SAnand Gore }; 276bcad714SAnand Gore 286bcad714SAnand Gore CA7_1: cpu@1 { 296bcad714SAnand Gore device_type = "cpu"; 306bcad714SAnand Gore compatible = "arm,cortex-a7"; 316bcad714SAnand Gore reg = <0x1>; 326bcad714SAnand Gore next-level-cache = <&L2_0>; 336bcad714SAnand Gore enable-method = "psci"; 346bcad714SAnand Gore }; 35f75fccbdSWilliam Zhang 366bcad714SAnand Gore L2_0: l2-cache0 { 376bcad714SAnand Gore compatible = "cache"; 38b2302467SPierre Gondois cache-level = <2>; 390db4bb04SKrzysztof Kozlowski cache-unified; 406bcad714SAnand Gore }; 416bcad714SAnand Gore }; 426bcad714SAnand Gore 436bcad714SAnand Gore timer { 446bcad714SAnand Gore compatible = "arm,armv7-timer"; 45925fbca4SWilliam Zhang interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 46925fbca4SWilliam Zhang <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 47925fbca4SWilliam Zhang <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 48925fbca4SWilliam Zhang <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>; 496bcad714SAnand Gore arm,cpu-registers-not-fw-configured; 506bcad714SAnand Gore }; 516bcad714SAnand Gore 526bcad714SAnand Gore pmu: pmu { 536bcad714SAnand Gore compatible = "arm,cortex-a7-pmu"; 546bcad714SAnand Gore interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, 556bcad714SAnand Gore <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 566bcad714SAnand Gore interrupt-affinity = <&CA7_0>, <&CA7_1>; 576bcad714SAnand Gore }; 586bcad714SAnand Gore 596bcad714SAnand Gore clocks: clocks { 606bcad714SAnand Gore periph_clk: periph-clk { 616bcad714SAnand Gore compatible = "fixed-clock"; 626bcad714SAnand Gore #clock-cells = <0>; 636bcad714SAnand Gore clock-frequency = <200000000>; 646bcad714SAnand Gore }; 657858ddedSWilliam Zhang 666bcad714SAnand Gore uart_clk: uart-clk { 676bcad714SAnand Gore compatible = "fixed-factor-clock"; 686bcad714SAnand Gore #clock-cells = <0>; 696bcad714SAnand Gore clocks = <&periph_clk>; 706bcad714SAnand Gore clock-div = <4>; 716bcad714SAnand Gore clock-mult = <1>; 726bcad714SAnand Gore }; 737858ddedSWilliam Zhang 747858ddedSWilliam Zhang hsspi_pll: hsspi-pll { 757858ddedSWilliam Zhang compatible = "fixed-clock"; 767858ddedSWilliam Zhang #clock-cells = <0>; 777858ddedSWilliam Zhang clock-frequency = <200000000>; 787858ddedSWilliam Zhang }; 796bcad714SAnand Gore }; 806bcad714SAnand Gore 816bcad714SAnand Gore psci { 826bcad714SAnand Gore compatible = "arm,psci-0.2"; 836bcad714SAnand Gore method = "smc"; 846bcad714SAnand Gore }; 856bcad714SAnand Gore 866bcad714SAnand Gore axi@81000000 { 876bcad714SAnand Gore compatible = "simple-bus"; 886bcad714SAnand Gore #address-cells = <1>; 896bcad714SAnand Gore #size-cells = <1>; 906bcad714SAnand Gore ranges = <0 0x81000000 0x8000>; 916bcad714SAnand Gore 926bcad714SAnand Gore gic: interrupt-controller@1000 { 936bcad714SAnand Gore compatible = "arm,cortex-a7-gic"; 946bcad714SAnand Gore #interrupt-cells = <3>; 956bcad714SAnand Gore interrupt-controller; 966bcad714SAnand Gore reg = <0x1000 0x1000>, 976bcad714SAnand Gore <0x2000 0x2000>, 986bcad714SAnand Gore <0x4000 0x2000>, 996bcad714SAnand Gore <0x6000 0x2000>; 1006bcad714SAnand Gore interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | 1016bcad714SAnand Gore IRQ_TYPE_LEVEL_HIGH)>; 1026bcad714SAnand Gore }; 1036bcad714SAnand Gore }; 1046bcad714SAnand Gore 1056bcad714SAnand Gore bus@ff800000 { 1066bcad714SAnand Gore compatible = "simple-bus"; 1076bcad714SAnand Gore #address-cells = <1>; 1086bcad714SAnand Gore #size-cells = <1>; 1096bcad714SAnand Gore ranges = <0 0xff800000 0x800000>; 1106bcad714SAnand Gore 111*b7f8a3a5SLinus Walleij watchdog@480 { 112*b7f8a3a5SLinus Walleij compatible = "brcm,bcm6345-wdt"; 113*b7f8a3a5SLinus Walleij reg = <0x480 0x10>; 114*b7f8a3a5SLinus Walleij }; 115*b7f8a3a5SLinus Walleij 116*b7f8a3a5SLinus Walleij watchdog@4c0 { 117*b7f8a3a5SLinus Walleij compatible = "brcm,bcm6345-wdt"; 118*b7f8a3a5SLinus Walleij reg = <0x4c0 0x10>; 119*b7f8a3a5SLinus Walleij status = "disabled"; 120*b7f8a3a5SLinus Walleij }; 121*b7f8a3a5SLinus Walleij 122*b7f8a3a5SLinus Walleij /* GPIOs 0 .. 31 */ 123*b7f8a3a5SLinus Walleij gpio0: gpio@500 { 124*b7f8a3a5SLinus Walleij compatible = "brcm,bcm6345-gpio"; 125*b7f8a3a5SLinus Walleij reg = <0x500 0x04>, <0x520 0x04>; 126*b7f8a3a5SLinus Walleij reg-names = "dirout", "dat"; 127*b7f8a3a5SLinus Walleij gpio-controller; 128*b7f8a3a5SLinus Walleij #gpio-cells = <2>; 129*b7f8a3a5SLinus Walleij status = "disabled"; 130*b7f8a3a5SLinus Walleij }; 131*b7f8a3a5SLinus Walleij 132*b7f8a3a5SLinus Walleij /* GPIOs 32 .. 63 */ 133*b7f8a3a5SLinus Walleij gpio1: gpio@504 { 134*b7f8a3a5SLinus Walleij compatible = "brcm,bcm6345-gpio"; 135*b7f8a3a5SLinus Walleij reg = <0x504 0x04>, <0x524 0x04>; 136*b7f8a3a5SLinus Walleij reg-names = "dirout", "dat"; 137*b7f8a3a5SLinus Walleij gpio-controller; 138*b7f8a3a5SLinus Walleij #gpio-cells = <2>; 139*b7f8a3a5SLinus Walleij status = "disabled"; 140*b7f8a3a5SLinus Walleij }; 141*b7f8a3a5SLinus Walleij 142*b7f8a3a5SLinus Walleij /* GPIOs 64 .. 95 */ 143*b7f8a3a5SLinus Walleij gpio2: gpio@508 { 144*b7f8a3a5SLinus Walleij compatible = "brcm,bcm6345-gpio"; 145*b7f8a3a5SLinus Walleij reg = <0x508 0x04>, <0x528 0x04>; 146*b7f8a3a5SLinus Walleij reg-names = "dirout", "dat"; 147*b7f8a3a5SLinus Walleij gpio-controller; 148*b7f8a3a5SLinus Walleij #gpio-cells = <2>; 149*b7f8a3a5SLinus Walleij status = "disabled"; 150*b7f8a3a5SLinus Walleij }; 151*b7f8a3a5SLinus Walleij 152*b7f8a3a5SLinus Walleij /* GPIOs 96 .. 127 */ 153*b7f8a3a5SLinus Walleij gpio3: gpio@50c { 154*b7f8a3a5SLinus Walleij compatible = "brcm,bcm6345-gpio"; 155*b7f8a3a5SLinus Walleij reg = <0x50c 0x04>, <0x52c 0x04>; 156*b7f8a3a5SLinus Walleij reg-names = "dirout", "dat"; 157*b7f8a3a5SLinus Walleij gpio-controller; 158*b7f8a3a5SLinus Walleij #gpio-cells = <2>; 159*b7f8a3a5SLinus Walleij status = "disabled"; 160*b7f8a3a5SLinus Walleij }; 161*b7f8a3a5SLinus Walleij 162*b7f8a3a5SLinus Walleij /* GPIOs 128 .. 159 */ 163*b7f8a3a5SLinus Walleij gpio4: gpio@510 { 164*b7f8a3a5SLinus Walleij compatible = "brcm,bcm6345-gpio"; 165*b7f8a3a5SLinus Walleij reg = <0x510 0x04>, <0x530 0x04>; 166*b7f8a3a5SLinus Walleij reg-names = "dirout", "dat"; 167*b7f8a3a5SLinus Walleij gpio-controller; 168*b7f8a3a5SLinus Walleij #gpio-cells = <2>; 169*b7f8a3a5SLinus Walleij status = "disabled"; 170*b7f8a3a5SLinus Walleij }; 171*b7f8a3a5SLinus Walleij 172*b7f8a3a5SLinus Walleij /* GPIOs 160 .. 191 */ 173*b7f8a3a5SLinus Walleij gpio5: gpio@514 { 174*b7f8a3a5SLinus Walleij compatible = "brcm,bcm6345-gpio"; 175*b7f8a3a5SLinus Walleij reg = <0x514 0x04>, <0x534 0x04>; 176*b7f8a3a5SLinus Walleij reg-names = "dirout", "dat"; 177*b7f8a3a5SLinus Walleij gpio-controller; 178*b7f8a3a5SLinus Walleij #gpio-cells = <2>; 179*b7f8a3a5SLinus Walleij status = "disabled"; 180*b7f8a3a5SLinus Walleij }; 181*b7f8a3a5SLinus Walleij 182*b7f8a3a5SLinus Walleij /* GPIOs 192 .. 223 */ 183*b7f8a3a5SLinus Walleij gpio6: gpio@518 { 184*b7f8a3a5SLinus Walleij compatible = "brcm,bcm6345-gpio"; 185*b7f8a3a5SLinus Walleij reg = <0x518 0x04>, <0x538 0x04>; 186*b7f8a3a5SLinus Walleij reg-names = "dirout", "dat"; 187*b7f8a3a5SLinus Walleij gpio-controller; 188*b7f8a3a5SLinus Walleij #gpio-cells = <2>; 189*b7f8a3a5SLinus Walleij status = "disabled"; 190*b7f8a3a5SLinus Walleij }; 191*b7f8a3a5SLinus Walleij 192*b7f8a3a5SLinus Walleij /* GPIOs 224 .. 255 */ 193*b7f8a3a5SLinus Walleij gpio7: gpio@51c { 194*b7f8a3a5SLinus Walleij compatible = "brcm,bcm6345-gpio"; 195*b7f8a3a5SLinus Walleij reg = <0x51c 0x04>, <0x53c 0x04>; 196*b7f8a3a5SLinus Walleij reg-names = "dirout", "dat"; 197*b7f8a3a5SLinus Walleij gpio-controller; 198*b7f8a3a5SLinus Walleij #gpio-cells = <2>; 199*b7f8a3a5SLinus Walleij status = "disabled"; 200*b7f8a3a5SLinus Walleij }; 201*b7f8a3a5SLinus Walleij 202*b7f8a3a5SLinus Walleij rng@b80 { 203*b7f8a3a5SLinus Walleij compatible = "brcm,iproc-rng200"; 204*b7f8a3a5SLinus Walleij reg = <0xb80 0x28>; 205*b7f8a3a5SLinus Walleij interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 206*b7f8a3a5SLinus Walleij }; 207*b7f8a3a5SLinus Walleij 208*b7f8a3a5SLinus Walleij leds: led-controller@700 { 209*b7f8a3a5SLinus Walleij #address-cells = <1>; 210*b7f8a3a5SLinus Walleij #size-cells = <0>; 211*b7f8a3a5SLinus Walleij compatible = "brcm,bcm63138-leds"; 212*b7f8a3a5SLinus Walleij reg = <0x700 0xdc>; 213*b7f8a3a5SLinus Walleij status = "disabled"; 214*b7f8a3a5SLinus Walleij }; 215*b7f8a3a5SLinus Walleij 2167858ddedSWilliam Zhang hsspi: spi@1000 { 2177858ddedSWilliam Zhang #address-cells = <1>; 2187858ddedSWilliam Zhang #size-cells = <0>; 2197858ddedSWilliam Zhang compatible = "brcm,bcm6878-hsspi", "brcm,bcmbca-hsspi-v1.0"; 2207858ddedSWilliam Zhang reg = <0x1000 0x600>; 2217858ddedSWilliam Zhang interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 2227858ddedSWilliam Zhang clocks = <&hsspi_pll &hsspi_pll>; 2237858ddedSWilliam Zhang clock-names = "hsspi", "pll"; 2247858ddedSWilliam Zhang num-cs = <8>; 2257858ddedSWilliam Zhang status = "disabled"; 2267858ddedSWilliam Zhang }; 2277858ddedSWilliam Zhang 228d42d8e82SWilliam Zhang nand_controller: nand-controller@1800 { 229d42d8e82SWilliam Zhang #address-cells = <1>; 230d42d8e82SWilliam Zhang #size-cells = <0>; 231d42d8e82SWilliam Zhang compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand"; 232d42d8e82SWilliam Zhang reg = <0x1800 0x600>, <0x2000 0x10>; 233d42d8e82SWilliam Zhang reg-names = "nand", "nand-int-base"; 234d42d8e82SWilliam Zhang status = "disabled"; 235d42d8e82SWilliam Zhang 236d42d8e82SWilliam Zhang nandcs: nand@0 { 237d42d8e82SWilliam Zhang compatible = "brcm,nandcs"; 238d42d8e82SWilliam Zhang reg = <0>; 239d42d8e82SWilliam Zhang }; 240d42d8e82SWilliam Zhang }; 241d42d8e82SWilliam Zhang 242*b7f8a3a5SLinus Walleij pl081_dma: dma-controller@11000 { 243*b7f8a3a5SLinus Walleij compatible = "arm,pl081", "arm,primecell"; 244*b7f8a3a5SLinus Walleij // The magic B105F00D info is missing 245*b7f8a3a5SLinus Walleij arm,primecell-periphid = <0x00041081>; 246*b7f8a3a5SLinus Walleij reg = <0x11000 0x1000>; 247*b7f8a3a5SLinus Walleij interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 248*b7f8a3a5SLinus Walleij memcpy-burst-size = <256>; 249*b7f8a3a5SLinus Walleij memcpy-bus-width = <32>; 250*b7f8a3a5SLinus Walleij clocks = <&periph_clk>; 251*b7f8a3a5SLinus Walleij clock-names = "apb_pclk"; 252*b7f8a3a5SLinus Walleij #dma-cells = <2>; 253*b7f8a3a5SLinus Walleij }; 254*b7f8a3a5SLinus Walleij 2556bcad714SAnand Gore uart0: serial@12000 { 2566bcad714SAnand Gore compatible = "arm,pl011", "arm,primecell"; 2576bcad714SAnand Gore reg = <0x12000 0x1000>; 25865448139SLinus Walleij interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 2596bcad714SAnand Gore clocks = <&uart_clk>, <&uart_clk>; 2606bcad714SAnand Gore clock-names = "uartclk", "apb_pclk"; 2616bcad714SAnand Gore status = "disabled"; 2626bcad714SAnand Gore }; 2636bcad714SAnand Gore }; 2646bcad714SAnand Gore}; 265