1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only 2724ba675SRob Herring// Copyright (C) 2014 Broadcom Corporation 3724ba675SRob Herring 4724ba675SRob Herring#include <dt-bindings/clock/bcm21664.h> 5724ba675SRob Herring#include <dt-bindings/interrupt-controller/arm-gic.h> 6724ba675SRob Herring#include <dt-bindings/interrupt-controller/irq.h> 7724ba675SRob Herring 8724ba675SRob Herring/ { 9724ba675SRob Herring #address-cells = <1>; 10724ba675SRob Herring #size-cells = <1>; 11724ba675SRob Herring model = "BCM21664 SoC"; 12724ba675SRob Herring compatible = "brcm,bcm21664"; 13724ba675SRob Herring interrupt-parent = <&gic>; 14724ba675SRob Herring 15724ba675SRob Herring chosen { 16724ba675SRob Herring bootargs = "console=ttyS0,115200n8"; 17724ba675SRob Herring }; 18724ba675SRob Herring 19724ba675SRob Herring cpus { 20724ba675SRob Herring #address-cells = <1>; 21724ba675SRob Herring #size-cells = <0>; 22724ba675SRob Herring 23724ba675SRob Herring cpu0: cpu@0 { 24724ba675SRob Herring device_type = "cpu"; 25724ba675SRob Herring compatible = "arm,cortex-a9"; 26724ba675SRob Herring reg = <0>; 27724ba675SRob Herring }; 28724ba675SRob Herring 29724ba675SRob Herring cpu1: cpu@1 { 30724ba675SRob Herring device_type = "cpu"; 31724ba675SRob Herring compatible = "arm,cortex-a9"; 32724ba675SRob Herring enable-method = "brcm,bcm11351-cpu-method"; 33724ba675SRob Herring secondary-boot-reg = <0x35004178>; 34724ba675SRob Herring reg = <1>; 35724ba675SRob Herring }; 36724ba675SRob Herring }; 37724ba675SRob Herring 38724ba675SRob Herring gic: interrupt-controller@3ff00100 { 39724ba675SRob Herring compatible = "arm,cortex-a9-gic"; 40724ba675SRob Herring #interrupt-cells = <3>; 41724ba675SRob Herring #address-cells = <0>; 42724ba675SRob Herring interrupt-controller; 43724ba675SRob Herring reg = <0x3ff01000 0x1000>, 44724ba675SRob Herring <0x3ff00100 0x100>; 45724ba675SRob Herring }; 46724ba675SRob Herring 47724ba675SRob Herring smc@3404e000 { 48724ba675SRob Herring compatible = "brcm,bcm21664-smc", "brcm,kona-smc"; 49724ba675SRob Herring reg = <0x3404e000 0x400>; /* 1 KiB in SRAM */ 50724ba675SRob Herring }; 51724ba675SRob Herring 52724ba675SRob Herring uartb: serial@3e000000 { 53724ba675SRob Herring compatible = "brcm,bcm21664-dw-apb-uart", "snps,dw-apb-uart"; 54724ba675SRob Herring reg = <0x3e000000 0x118>; 55724ba675SRob Herring clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB>; 56724ba675SRob Herring interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 57724ba675SRob Herring reg-shift = <2>; 58724ba675SRob Herring reg-io-width = <4>; 59724ba675SRob Herring status = "disabled"; 60724ba675SRob Herring }; 61724ba675SRob Herring 62724ba675SRob Herring uartb2: serial@3e001000 { 63724ba675SRob Herring compatible = "brcm,bcm21664-dw-apb-uart", "snps,dw-apb-uart"; 64724ba675SRob Herring reg = <0x3e001000 0x118>; 65724ba675SRob Herring clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB2>; 66724ba675SRob Herring interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 67724ba675SRob Herring reg-shift = <2>; 68724ba675SRob Herring reg-io-width = <4>; 69724ba675SRob Herring status = "disabled"; 70724ba675SRob Herring }; 71724ba675SRob Herring 72724ba675SRob Herring uartb3: serial@3e002000 { 73724ba675SRob Herring compatible = "brcm,bcm21664-dw-apb-uart", "snps,dw-apb-uart"; 74724ba675SRob Herring reg = <0x3e002000 0x118>; 75724ba675SRob Herring clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB3>; 76724ba675SRob Herring interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 77724ba675SRob Herring reg-shift = <2>; 78724ba675SRob Herring reg-io-width = <4>; 79724ba675SRob Herring status = "disabled"; 80724ba675SRob Herring }; 81724ba675SRob Herring 82724ba675SRob Herring L2: cache-controller@3ff20000 { 83724ba675SRob Herring compatible = "arm,pl310-cache"; 84724ba675SRob Herring reg = <0x3ff20000 0x1000>; 85724ba675SRob Herring cache-unified; 86724ba675SRob Herring cache-level = <2>; 87724ba675SRob Herring }; 88724ba675SRob Herring 89724ba675SRob Herring brcm,resetmgr@35001f00 { 90724ba675SRob Herring compatible = "brcm,bcm21664-resetmgr"; 91724ba675SRob Herring reg = <0x35001f00 0x24>; 92724ba675SRob Herring }; 93724ba675SRob Herring 94724ba675SRob Herring timer@35006000 { 95724ba675SRob Herring compatible = "brcm,kona-timer"; 96724ba675SRob Herring reg = <0x35006000 0x1c>; 97724ba675SRob Herring interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 98724ba675SRob Herring clocks = <&aon_ccu BCM21664_AON_CCU_HUB_TIMER>; 99724ba675SRob Herring }; 100724ba675SRob Herring 101724ba675SRob Herring gpio: gpio@35003000 { 102724ba675SRob Herring compatible = "brcm,bcm21664-gpio", "brcm,kona-gpio"; 103724ba675SRob Herring reg = <0x35003000 0x524>; 104*753a1baaSKrzysztof Kozlowski interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>, 105*753a1baaSKrzysztof Kozlowski <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>, 106*753a1baaSKrzysztof Kozlowski <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>, 107*753a1baaSKrzysztof Kozlowski <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; 108724ba675SRob Herring #gpio-cells = <2>; 109724ba675SRob Herring #interrupt-cells = <2>; 110724ba675SRob Herring gpio-controller; 111724ba675SRob Herring interrupt-controller; 112724ba675SRob Herring }; 113724ba675SRob Herring 114724ba675SRob Herring sdio1: mmc@3f180000 { 115724ba675SRob Herring compatible = "brcm,kona-sdhci"; 116724ba675SRob Herring reg = <0x3f180000 0x801c>; 117724ba675SRob Herring interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 118724ba675SRob Herring clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO1>; 119724ba675SRob Herring status = "disabled"; 120724ba675SRob Herring }; 121724ba675SRob Herring 122724ba675SRob Herring sdio2: mmc@3f190000 { 123724ba675SRob Herring compatible = "brcm,kona-sdhci"; 124724ba675SRob Herring reg = <0x3f190000 0x801c>; 125724ba675SRob Herring interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 126724ba675SRob Herring clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO2>; 127724ba675SRob Herring status = "disabled"; 128724ba675SRob Herring }; 129724ba675SRob Herring 130724ba675SRob Herring sdio3: mmc@3f1a0000 { 131724ba675SRob Herring compatible = "brcm,kona-sdhci"; 132724ba675SRob Herring reg = <0x3f1a0000 0x801c>; 133724ba675SRob Herring interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 134724ba675SRob Herring clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO3>; 135724ba675SRob Herring status = "disabled"; 136724ba675SRob Herring }; 137724ba675SRob Herring 138724ba675SRob Herring sdio4: mmc@3f1b0000 { 139724ba675SRob Herring compatible = "brcm,kona-sdhci"; 140724ba675SRob Herring reg = <0x3f1b0000 0x801c>; 141724ba675SRob Herring interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 142724ba675SRob Herring clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO4>; 143724ba675SRob Herring status = "disabled"; 144724ba675SRob Herring }; 145724ba675SRob Herring 146724ba675SRob Herring bsc1: i2c@3e016000 { 147724ba675SRob Herring compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c"; 148724ba675SRob Herring reg = <0x3e016000 0x70>; 149724ba675SRob Herring interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 150724ba675SRob Herring #address-cells = <1>; 151724ba675SRob Herring #size-cells = <0>; 152724ba675SRob Herring clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC1>; 153724ba675SRob Herring status = "disabled"; 154724ba675SRob Herring }; 155724ba675SRob Herring 156724ba675SRob Herring bsc2: i2c@3e017000 { 157724ba675SRob Herring compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c"; 158724ba675SRob Herring reg = <0x3e017000 0x70>; 159724ba675SRob Herring interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 160724ba675SRob Herring #address-cells = <1>; 161724ba675SRob Herring #size-cells = <0>; 162724ba675SRob Herring clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC2>; 163724ba675SRob Herring status = "disabled"; 164724ba675SRob Herring }; 165724ba675SRob Herring 166724ba675SRob Herring bsc3: i2c@3e018000 { 167724ba675SRob Herring compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c"; 168724ba675SRob Herring reg = <0x3e018000 0x70>; 169724ba675SRob Herring interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; 170724ba675SRob Herring #address-cells = <1>; 171724ba675SRob Herring #size-cells = <0>; 172724ba675SRob Herring clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC3>; 173724ba675SRob Herring status = "disabled"; 174724ba675SRob Herring }; 175724ba675SRob Herring 176724ba675SRob Herring bsc4: i2c@3e01c000 { 177724ba675SRob Herring compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c"; 178724ba675SRob Herring reg = <0x3e01c000 0x70>; 179724ba675SRob Herring interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>; 180724ba675SRob Herring #address-cells = <1>; 181724ba675SRob Herring #size-cells = <0>; 182724ba675SRob Herring clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC4>; 183724ba675SRob Herring status = "disabled"; 184724ba675SRob Herring }; 185724ba675SRob Herring 186724ba675SRob Herring clocks { 187724ba675SRob Herring #address-cells = <1>; 188724ba675SRob Herring #size-cells = <1>; 189724ba675SRob Herring ranges; 190724ba675SRob Herring 191724ba675SRob Herring /* 192724ba675SRob Herring * Fixed clocks are defined before CCUs whose 193724ba675SRob Herring * clocks may depend on them. 194724ba675SRob Herring */ 195724ba675SRob Herring 196724ba675SRob Herring ref_32k_clk: ref_32k { 197724ba675SRob Herring #clock-cells = <0>; 198724ba675SRob Herring compatible = "fixed-clock"; 199724ba675SRob Herring clock-frequency = <32768>; 200724ba675SRob Herring }; 201724ba675SRob Herring 202724ba675SRob Herring bbl_32k_clk: bbl_32k { 203724ba675SRob Herring #clock-cells = <0>; 204724ba675SRob Herring compatible = "fixed-clock"; 205724ba675SRob Herring clock-frequency = <32768>; 206724ba675SRob Herring }; 207724ba675SRob Herring 208724ba675SRob Herring ref_13m_clk: ref_13m { 209724ba675SRob Herring #clock-cells = <0>; 210724ba675SRob Herring compatible = "fixed-clock"; 211724ba675SRob Herring clock-frequency = <13000000>; 212724ba675SRob Herring }; 213724ba675SRob Herring 214724ba675SRob Herring var_13m_clk: var_13m { 215724ba675SRob Herring #clock-cells = <0>; 216724ba675SRob Herring compatible = "fixed-clock"; 217724ba675SRob Herring clock-frequency = <13000000>; 218724ba675SRob Herring }; 219724ba675SRob Herring 220724ba675SRob Herring dft_19_5m_clk: dft_19_5m { 221724ba675SRob Herring #clock-cells = <0>; 222724ba675SRob Herring compatible = "fixed-clock"; 223724ba675SRob Herring clock-frequency = <19500000>; 224724ba675SRob Herring }; 225724ba675SRob Herring 226724ba675SRob Herring ref_crystal_clk: ref_crystal { 227724ba675SRob Herring #clock-cells = <0>; 228724ba675SRob Herring compatible = "fixed-clock"; 229724ba675SRob Herring clock-frequency = <26000000>; 230724ba675SRob Herring }; 231724ba675SRob Herring 232724ba675SRob Herring ref_52m_clk: ref_52m { 233724ba675SRob Herring #clock-cells = <0>; 234724ba675SRob Herring compatible = "fixed-clock"; 235724ba675SRob Herring clock-frequency = <52000000>; 236724ba675SRob Herring }; 237724ba675SRob Herring 238724ba675SRob Herring var_52m_clk: var_52m { 239724ba675SRob Herring #clock-cells = <0>; 240724ba675SRob Herring compatible = "fixed-clock"; 241724ba675SRob Herring clock-frequency = <52000000>; 242724ba675SRob Herring }; 243724ba675SRob Herring 244724ba675SRob Herring usb_otg_ahb_clk: usb_otg_ahb { 245724ba675SRob Herring #clock-cells = <0>; 246724ba675SRob Herring compatible = "fixed-clock"; 247724ba675SRob Herring clock-frequency = <52000000>; 248724ba675SRob Herring }; 249724ba675SRob Herring 250724ba675SRob Herring ref_96m_clk: ref_96m { 251724ba675SRob Herring #clock-cells = <0>; 252724ba675SRob Herring compatible = "fixed-clock"; 253724ba675SRob Herring clock-frequency = <96000000>; 254724ba675SRob Herring }; 255724ba675SRob Herring 256724ba675SRob Herring var_96m_clk: var_96m { 257724ba675SRob Herring #clock-cells = <0>; 258724ba675SRob Herring compatible = "fixed-clock"; 259724ba675SRob Herring clock-frequency = <96000000>; 260724ba675SRob Herring }; 261724ba675SRob Herring 262724ba675SRob Herring ref_104m_clk: ref_104m { 263724ba675SRob Herring #clock-cells = <0>; 264724ba675SRob Herring compatible = "fixed-clock"; 265724ba675SRob Herring clock-frequency = <104000000>; 266724ba675SRob Herring }; 267724ba675SRob Herring 268724ba675SRob Herring var_104m_clk: var_104m { 269724ba675SRob Herring #clock-cells = <0>; 270724ba675SRob Herring compatible = "fixed-clock"; 271724ba675SRob Herring clock-frequency = <104000000>; 272724ba675SRob Herring }; 273724ba675SRob Herring 274724ba675SRob Herring ref_156m_clk: ref_156m { 275724ba675SRob Herring #clock-cells = <0>; 276724ba675SRob Herring compatible = "fixed-clock"; 277724ba675SRob Herring clock-frequency = <156000000>; 278724ba675SRob Herring }; 279724ba675SRob Herring 280724ba675SRob Herring var_156m_clk: var_156m { 281724ba675SRob Herring #clock-cells = <0>; 282724ba675SRob Herring compatible = "fixed-clock"; 283724ba675SRob Herring clock-frequency = <156000000>; 284724ba675SRob Herring }; 285724ba675SRob Herring 286724ba675SRob Herring root_ccu: root_ccu@35001000 { 287724ba675SRob Herring compatible = "brcm,bcm21664-root-ccu"; 288724ba675SRob Herring reg = <0x35001000 0x0f00>; 289724ba675SRob Herring #clock-cells = <1>; 290724ba675SRob Herring clock-output-names = "frac_1m"; 291724ba675SRob Herring }; 292724ba675SRob Herring 293724ba675SRob Herring aon_ccu: aon_ccu@35002000 { 294724ba675SRob Herring compatible = "brcm,bcm21664-aon-ccu"; 295724ba675SRob Herring reg = <0x35002000 0x0f00>; 296724ba675SRob Herring #clock-cells = <1>; 297724ba675SRob Herring clock-output-names = "hub_timer"; 298724ba675SRob Herring }; 299724ba675SRob Herring 300724ba675SRob Herring master_ccu: master_ccu@3f001000 { 301724ba675SRob Herring compatible = "brcm,bcm21664-master-ccu"; 302724ba675SRob Herring reg = <0x3f001000 0x0f00>; 303724ba675SRob Herring #clock-cells = <1>; 304724ba675SRob Herring clock-output-names = "sdio1", 305724ba675SRob Herring "sdio2", 306724ba675SRob Herring "sdio3", 307724ba675SRob Herring "sdio4", 308724ba675SRob Herring "sdio1_sleep", 309724ba675SRob Herring "sdio2_sleep", 310724ba675SRob Herring "sdio3_sleep", 311724ba675SRob Herring "sdio4_sleep"; 312724ba675SRob Herring }; 313724ba675SRob Herring 314724ba675SRob Herring slave_ccu: slave_ccu@3e011000 { 315724ba675SRob Herring compatible = "brcm,bcm21664-slave-ccu"; 316724ba675SRob Herring reg = <0x3e011000 0x0f00>; 317724ba675SRob Herring #clock-cells = <1>; 318724ba675SRob Herring clock-output-names = "uartb", 319724ba675SRob Herring "uartb2", 320724ba675SRob Herring "uartb3", 321724ba675SRob Herring "bsc1", 322724ba675SRob Herring "bsc2", 323724ba675SRob Herring "bsc3", 324724ba675SRob Herring "bsc4"; 325724ba675SRob Herring }; 326724ba675SRob Herring }; 327724ba675SRob Herring 328724ba675SRob Herring usbotg: usb@3f120000 { 329724ba675SRob Herring compatible = "snps,dwc2"; 330724ba675SRob Herring reg = <0x3f120000 0x10000>; 331724ba675SRob Herring interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 332724ba675SRob Herring clocks = <&usb_otg_ahb_clk>; 333724ba675SRob Herring clock-names = "otg"; 334724ba675SRob Herring phys = <&usbphy>; 335724ba675SRob Herring phy-names = "usb2-phy"; 336724ba675SRob Herring status = "disabled"; 337724ba675SRob Herring }; 338724ba675SRob Herring 339724ba675SRob Herring usbphy: usb-phy@3f130000 { 340724ba675SRob Herring compatible = "brcm,kona-usb2-phy"; 341724ba675SRob Herring reg = <0x3f130000 0x28>; 342724ba675SRob Herring #phy-cells = <0>; 343724ba675SRob Herring status = "disabled"; 344724ba675SRob Herring }; 345724ba675SRob Herring}; 346