1de1a99acSWilliam Zhang// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2de1a99acSWilliam Zhang/* 3de1a99acSWilliam Zhang * Copyright 2022 Broadcom Ltd. 4de1a99acSWilliam Zhang */ 5de1a99acSWilliam Zhang 6de1a99acSWilliam Zhang#include <dt-bindings/interrupt-controller/arm-gic.h> 7de1a99acSWilliam Zhang#include <dt-bindings/interrupt-controller/irq.h> 8de1a99acSWilliam Zhang 9de1a99acSWilliam Zhang/ { 10de1a99acSWilliam Zhang compatible = "brcm,bcm6846", "brcm,bcmbca"; 11de1a99acSWilliam Zhang #address-cells = <1>; 12de1a99acSWilliam Zhang #size-cells = <1>; 13de1a99acSWilliam Zhang 14de1a99acSWilliam Zhang interrupt-parent = <&gic>; 15de1a99acSWilliam Zhang 16de1a99acSWilliam Zhang cpus { 17de1a99acSWilliam Zhang #address-cells = <1>; 18de1a99acSWilliam Zhang #size-cells = <0>; 19de1a99acSWilliam Zhang 20de1a99acSWilliam Zhang CA7_0: cpu@0 { 21de1a99acSWilliam Zhang device_type = "cpu"; 22de1a99acSWilliam Zhang compatible = "arm,cortex-a7"; 23de1a99acSWilliam Zhang reg = <0x0>; 24de1a99acSWilliam Zhang next-level-cache = <&L2_0>; 25de1a99acSWilliam Zhang enable-method = "psci"; 26de1a99acSWilliam Zhang }; 27de1a99acSWilliam Zhang 28de1a99acSWilliam Zhang CA7_1: cpu@1 { 29de1a99acSWilliam Zhang device_type = "cpu"; 30de1a99acSWilliam Zhang compatible = "arm,cortex-a7"; 31de1a99acSWilliam Zhang reg = <0x1>; 32de1a99acSWilliam Zhang next-level-cache = <&L2_0>; 33de1a99acSWilliam Zhang enable-method = "psci"; 34de1a99acSWilliam Zhang }; 35de1a99acSWilliam Zhang 36de1a99acSWilliam Zhang L2_0: l2-cache0 { 37de1a99acSWilliam Zhang compatible = "cache"; 38b2302467SPierre Gondois cache-level = <2>; 390db4bb04SKrzysztof Kozlowski cache-unified; 40de1a99acSWilliam Zhang }; 41de1a99acSWilliam Zhang }; 42de1a99acSWilliam Zhang 43de1a99acSWilliam Zhang timer { 44de1a99acSWilliam Zhang compatible = "arm,armv7-timer"; 4557d81a97SWilliam Zhang interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 4657d81a97SWilliam Zhang <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 4757d81a97SWilliam Zhang <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, 4857d81a97SWilliam Zhang <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>; 49de1a99acSWilliam Zhang arm,cpu-registers-not-fw-configured; 50de1a99acSWilliam Zhang }; 51de1a99acSWilliam Zhang 52de1a99acSWilliam Zhang pmu: pmu { 53de1a99acSWilliam Zhang compatible = "arm,cortex-a7-pmu"; 54de1a99acSWilliam Zhang interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, 55de1a99acSWilliam Zhang <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 56de1a99acSWilliam Zhang interrupt-affinity = <&CA7_0>, <&CA7_1>; 57de1a99acSWilliam Zhang }; 58de1a99acSWilliam Zhang 59de1a99acSWilliam Zhang clocks: clocks { 60de1a99acSWilliam Zhang periph_clk: periph-clk { 61de1a99acSWilliam Zhang compatible = "fixed-clock"; 62de1a99acSWilliam Zhang #clock-cells = <0>; 63de1a99acSWilliam Zhang clock-frequency = <200000000>; 64de1a99acSWilliam Zhang }; 657858ddedSWilliam Zhang 667858ddedSWilliam Zhang hsspi_pll: hsspi-pll { 677858ddedSWilliam Zhang compatible = "fixed-clock"; 687858ddedSWilliam Zhang #clock-cells = <0>; 697858ddedSWilliam Zhang clock-frequency = <400000000>; 707858ddedSWilliam Zhang }; 71de1a99acSWilliam Zhang }; 72de1a99acSWilliam Zhang 73de1a99acSWilliam Zhang psci { 74de1a99acSWilliam Zhang compatible = "arm,psci-0.2"; 75de1a99acSWilliam Zhang method = "smc"; 76de1a99acSWilliam Zhang }; 77de1a99acSWilliam Zhang 78de1a99acSWilliam Zhang axi@81000000 { 79de1a99acSWilliam Zhang compatible = "simple-bus"; 80de1a99acSWilliam Zhang #address-cells = <1>; 81de1a99acSWilliam Zhang #size-cells = <1>; 8212bbc223SWilliam Zhang ranges = <0 0x81000000 0x8000>; 83de1a99acSWilliam Zhang 84de1a99acSWilliam Zhang gic: interrupt-controller@1000 { 85de1a99acSWilliam Zhang compatible = "arm,cortex-a7-gic"; 86de1a99acSWilliam Zhang #interrupt-cells = <3>; 87de1a99acSWilliam Zhang interrupt-controller; 8812bbc223SWilliam Zhang interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 89de1a99acSWilliam Zhang reg = <0x1000 0x1000>, 9012bbc223SWilliam Zhang <0x2000 0x2000>, 9112bbc223SWilliam Zhang <0x4000 0x2000>, 9212bbc223SWilliam Zhang <0x6000 0x2000>; 93de1a99acSWilliam Zhang }; 94de1a99acSWilliam Zhang }; 95de1a99acSWilliam Zhang 96de1a99acSWilliam Zhang bus@ff800000 { 97de1a99acSWilliam Zhang compatible = "simple-bus"; 98de1a99acSWilliam Zhang #address-cells = <1>; 99de1a99acSWilliam Zhang #size-cells = <1>; 100de1a99acSWilliam Zhang ranges = <0 0xff800000 0x800000>; 101de1a99acSWilliam Zhang 102e5739733SLinus Walleij watchdog@480 { 103e5739733SLinus Walleij compatible = "brcm,bcm6345-wdt"; 104e5739733SLinus Walleij reg = <0x480 0x10>; 105e5739733SLinus Walleij }; 106e5739733SLinus Walleij 107a534e78eSLinus Walleij /* GPIOs 0 .. 31 */ 108a534e78eSLinus Walleij gpio0: gpio@500 { 109a534e78eSLinus Walleij compatible = "brcm,bcm6345-gpio"; 110a534e78eSLinus Walleij reg = <0x500 0x04>, <0x520 0x04>; 111a534e78eSLinus Walleij reg-names = "dirout", "dat"; 112a534e78eSLinus Walleij gpio-controller; 113a534e78eSLinus Walleij #gpio-cells = <2>; 114a534e78eSLinus Walleij status = "disabled"; 115a534e78eSLinus Walleij }; 116a534e78eSLinus Walleij 117a534e78eSLinus Walleij /* GPIOs 32 .. 63 */ 118a534e78eSLinus Walleij gpio1: gpio@504 { 119a534e78eSLinus Walleij compatible = "brcm,bcm6345-gpio"; 120a534e78eSLinus Walleij reg = <0x504 0x04>, <0x524 0x04>; 121a534e78eSLinus Walleij reg-names = "dirout", "dat"; 122a534e78eSLinus Walleij gpio-controller; 123a534e78eSLinus Walleij #gpio-cells = <2>; 124a534e78eSLinus Walleij status = "disabled"; 125a534e78eSLinus Walleij }; 126a534e78eSLinus Walleij 127a534e78eSLinus Walleij /* GPIOs 64 .. 95 */ 128a534e78eSLinus Walleij gpio2: gpio@508 { 129a534e78eSLinus Walleij compatible = "brcm,bcm6345-gpio"; 130a534e78eSLinus Walleij reg = <0x508 0x04>, <0x528 0x04>; 131a534e78eSLinus Walleij reg-names = "dirout", "dat"; 132a534e78eSLinus Walleij gpio-controller; 133a534e78eSLinus Walleij #gpio-cells = <2>; 134a534e78eSLinus Walleij status = "disabled"; 135a534e78eSLinus Walleij }; 136a534e78eSLinus Walleij 137a534e78eSLinus Walleij /* GPIOs 96 .. 127 */ 138a534e78eSLinus Walleij gpio3: gpio@50c { 139a534e78eSLinus Walleij compatible = "brcm,bcm6345-gpio"; 140a534e78eSLinus Walleij reg = <0x50c 0x04>, <0x52c 0x04>; 141a534e78eSLinus Walleij reg-names = "dirout", "dat"; 142a534e78eSLinus Walleij gpio-controller; 143a534e78eSLinus Walleij #gpio-cells = <2>; 144a534e78eSLinus Walleij status = "disabled"; 145a534e78eSLinus Walleij }; 146a534e78eSLinus Walleij 147a534e78eSLinus Walleij /* GPIOs 128 .. 159 */ 148a534e78eSLinus Walleij gpio4: gpio@510 { 149a534e78eSLinus Walleij compatible = "brcm,bcm6345-gpio"; 150a534e78eSLinus Walleij reg = <0x510 0x04>, <0x530 0x04>; 151a534e78eSLinus Walleij reg-names = "dirout", "dat"; 152a534e78eSLinus Walleij gpio-controller; 153a534e78eSLinus Walleij #gpio-cells = <2>; 154a534e78eSLinus Walleij status = "disabled"; 155a534e78eSLinus Walleij }; 156a534e78eSLinus Walleij 157a534e78eSLinus Walleij /* GPIOs 160 .. 191 */ 158a534e78eSLinus Walleij gpio5: gpio@514 { 159a534e78eSLinus Walleij compatible = "brcm,bcm6345-gpio"; 160a534e78eSLinus Walleij reg = <0x514 0x04>, <0x534 0x04>; 161a534e78eSLinus Walleij reg-names = "dirout", "dat"; 162a534e78eSLinus Walleij gpio-controller; 163a534e78eSLinus Walleij #gpio-cells = <2>; 164a534e78eSLinus Walleij status = "disabled"; 165a534e78eSLinus Walleij }; 166a534e78eSLinus Walleij 167a534e78eSLinus Walleij /* GPIOs 192 .. 223 */ 168a534e78eSLinus Walleij gpio6: gpio@518 { 169a534e78eSLinus Walleij compatible = "brcm,bcm6345-gpio"; 170a534e78eSLinus Walleij reg = <0x518 0x04>, <0x538 0x04>; 171a534e78eSLinus Walleij reg-names = "dirout", "dat"; 172a534e78eSLinus Walleij gpio-controller; 173a534e78eSLinus Walleij #gpio-cells = <2>; 174a534e78eSLinus Walleij status = "disabled"; 175a534e78eSLinus Walleij }; 176a534e78eSLinus Walleij 177a534e78eSLinus Walleij /* GPIOs 224 .. 255 */ 178a534e78eSLinus Walleij gpio7: gpio@51c { 179a534e78eSLinus Walleij compatible = "brcm,bcm6345-gpio"; 180a534e78eSLinus Walleij reg = <0x51c 0x04>, <0x53c 0x04>; 181a534e78eSLinus Walleij reg-names = "dirout", "dat"; 182a534e78eSLinus Walleij gpio-controller; 183a534e78eSLinus Walleij #gpio-cells = <2>; 184a534e78eSLinus Walleij status = "disabled"; 185a534e78eSLinus Walleij }; 186a534e78eSLinus Walleij 187de1a99acSWilliam Zhang uart0: serial@640 { 188de1a99acSWilliam Zhang compatible = "brcm,bcm6345-uart"; 189de1a99acSWilliam Zhang reg = <0x640 0x1b>; 190de1a99acSWilliam Zhang interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 191de1a99acSWilliam Zhang clocks = <&periph_clk>; 192de1a99acSWilliam Zhang clock-names = "refclk"; 193de1a99acSWilliam Zhang status = "disabled"; 194de1a99acSWilliam Zhang }; 1957858ddedSWilliam Zhang 1965e9ebdd8SLinus Walleij rng@b80 { 1975e9ebdd8SLinus Walleij compatible = "brcm,iproc-rng200"; 1985e9ebdd8SLinus Walleij reg = <0xb80 0x28>; 199*8397603dSLinus Walleij interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 2005e9ebdd8SLinus Walleij }; 2015e9ebdd8SLinus Walleij 20271449ffdSLinus Walleij leds: led-controller@800 { 20371449ffdSLinus Walleij #address-cells = <1>; 20471449ffdSLinus Walleij #size-cells = <0>; 20571449ffdSLinus Walleij compatible = "brcm,bcm63138-leds"; 20671449ffdSLinus Walleij reg = <0x800 0xdc>; 20771449ffdSLinus Walleij status = "disabled"; 20871449ffdSLinus Walleij }; 20971449ffdSLinus Walleij 2107858ddedSWilliam Zhang hsspi: spi@1000 { 2117858ddedSWilliam Zhang #address-cells = <1>; 2127858ddedSWilliam Zhang #size-cells = <0>; 2137858ddedSWilliam Zhang compatible = "brcm,bcm6846-hsspi", "brcm,bcmbca-hsspi-v1.0"; 2147858ddedSWilliam Zhang reg = <0x1000 0x600>; 2157858ddedSWilliam Zhang interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 2167858ddedSWilliam Zhang clocks = <&hsspi_pll &hsspi_pll>; 2177858ddedSWilliam Zhang clock-names = "hsspi", "pll"; 2187858ddedSWilliam Zhang num-cs = <8>; 2197858ddedSWilliam Zhang status = "disabled"; 2207858ddedSWilliam Zhang }; 221d42d8e82SWilliam Zhang 222d42d8e82SWilliam Zhang nand_controller: nand-controller@1800 { 223d42d8e82SWilliam Zhang #address-cells = <1>; 224d42d8e82SWilliam Zhang #size-cells = <0>; 225d42d8e82SWilliam Zhang compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand"; 226d42d8e82SWilliam Zhang reg = <0x1800 0x600>, <0x2000 0x10>; 227d42d8e82SWilliam Zhang reg-names = "nand", "nand-int-base"; 228d42d8e82SWilliam Zhang status = "disabled"; 229d42d8e82SWilliam Zhang 230d42d8e82SWilliam Zhang nandcs: nand@0 { 231d42d8e82SWilliam Zhang compatible = "brcm,nandcs"; 232d42d8e82SWilliam Zhang reg = <0>; 233d42d8e82SWilliam Zhang }; 234d42d8e82SWilliam Zhang }; 23520aaee0bSLinus Walleij 23620aaee0bSLinus Walleij mdio: mdio@2060 { 23720aaee0bSLinus Walleij compatible = "brcm,bcm6846-mdio"; 23820aaee0bSLinus Walleij reg = <0x02060 0x10>, <0x5a068 0x4>; 23920aaee0bSLinus Walleij reg-names = "mdio", "mdio_indir_rw"; 24020aaee0bSLinus Walleij #address-cells = <1>; 24120aaee0bSLinus Walleij #size-cells = <0>; 24220aaee0bSLinus Walleij status = "disabled"; 24320aaee0bSLinus Walleij }; 2443abdd3ebSLinus Walleij 2453abdd3ebSLinus Walleij pl081_dma: dma-controller@59000 { 2463abdd3ebSLinus Walleij compatible = "arm,pl081", "arm,primecell"; 2473abdd3ebSLinus Walleij // The magic B105F00D info is missing 2483abdd3ebSLinus Walleij arm,primecell-periphid = <0x00041081>; 2493abdd3ebSLinus Walleij reg = <0x59000 0x1000>; 2503abdd3ebSLinus Walleij interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 2513abdd3ebSLinus Walleij memcpy-burst-size = <256>; 2523abdd3ebSLinus Walleij memcpy-bus-width = <32>; 2533abdd3ebSLinus Walleij clocks = <&periph_clk>; 2543abdd3ebSLinus Walleij clock-names = "apb_pclk"; 2553abdd3ebSLinus Walleij #dma-cells = <2>; 2563abdd3ebSLinus Walleij }; 257de1a99acSWilliam Zhang }; 258de1a99acSWilliam Zhang}; 259