162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci// Copyright (C) 2014 Broadcom Corporation 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci#include <dt-bindings/clock/bcm21664.h> 562306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/arm-gic.h> 662306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h> 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci/ { 962306a36Sopenharmony_ci #address-cells = <1>; 1062306a36Sopenharmony_ci #size-cells = <1>; 1162306a36Sopenharmony_ci model = "BCM21664 SoC"; 1262306a36Sopenharmony_ci compatible = "brcm,bcm21664"; 1362306a36Sopenharmony_ci interrupt-parent = <&gic>; 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci chosen { 1662306a36Sopenharmony_ci bootargs = "console=ttyS0,115200n8"; 1762306a36Sopenharmony_ci }; 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci cpus { 2062306a36Sopenharmony_ci #address-cells = <1>; 2162306a36Sopenharmony_ci #size-cells = <0>; 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci cpu0: cpu@0 { 2462306a36Sopenharmony_ci device_type = "cpu"; 2562306a36Sopenharmony_ci compatible = "arm,cortex-a9"; 2662306a36Sopenharmony_ci reg = <0>; 2762306a36Sopenharmony_ci }; 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci cpu1: cpu@1 { 3062306a36Sopenharmony_ci device_type = "cpu"; 3162306a36Sopenharmony_ci compatible = "arm,cortex-a9"; 3262306a36Sopenharmony_ci enable-method = "brcm,bcm11351-cpu-method"; 3362306a36Sopenharmony_ci secondary-boot-reg = <0x35004178>; 3462306a36Sopenharmony_ci reg = <1>; 3562306a36Sopenharmony_ci }; 3662306a36Sopenharmony_ci }; 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci gic: interrupt-controller@3ff00100 { 3962306a36Sopenharmony_ci compatible = "arm,cortex-a9-gic"; 4062306a36Sopenharmony_ci #interrupt-cells = <3>; 4162306a36Sopenharmony_ci #address-cells = <0>; 4262306a36Sopenharmony_ci interrupt-controller; 4362306a36Sopenharmony_ci reg = <0x3ff01000 0x1000>, 4462306a36Sopenharmony_ci <0x3ff00100 0x100>; 4562306a36Sopenharmony_ci }; 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci smc@3404e000 { 4862306a36Sopenharmony_ci compatible = "brcm,bcm21664-smc", "brcm,kona-smc"; 4962306a36Sopenharmony_ci reg = <0x3404e000 0x400>; /* 1 KiB in SRAM */ 5062306a36Sopenharmony_ci }; 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci uartb: serial@3e000000 { 5362306a36Sopenharmony_ci compatible = "brcm,bcm21664-dw-apb-uart", "snps,dw-apb-uart"; 5462306a36Sopenharmony_ci reg = <0x3e000000 0x118>; 5562306a36Sopenharmony_ci clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB>; 5662306a36Sopenharmony_ci interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 5762306a36Sopenharmony_ci reg-shift = <2>; 5862306a36Sopenharmony_ci reg-io-width = <4>; 5962306a36Sopenharmony_ci status = "disabled"; 6062306a36Sopenharmony_ci }; 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci uartb2: serial@3e001000 { 6362306a36Sopenharmony_ci compatible = "brcm,bcm21664-dw-apb-uart", "snps,dw-apb-uart"; 6462306a36Sopenharmony_ci reg = <0x3e001000 0x118>; 6562306a36Sopenharmony_ci clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB2>; 6662306a36Sopenharmony_ci interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 6762306a36Sopenharmony_ci reg-shift = <2>; 6862306a36Sopenharmony_ci reg-io-width = <4>; 6962306a36Sopenharmony_ci status = "disabled"; 7062306a36Sopenharmony_ci }; 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci uartb3: serial@3e002000 { 7362306a36Sopenharmony_ci compatible = "brcm,bcm21664-dw-apb-uart", "snps,dw-apb-uart"; 7462306a36Sopenharmony_ci reg = <0x3e002000 0x118>; 7562306a36Sopenharmony_ci clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB3>; 7662306a36Sopenharmony_ci interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 7762306a36Sopenharmony_ci reg-shift = <2>; 7862306a36Sopenharmony_ci reg-io-width = <4>; 7962306a36Sopenharmony_ci status = "disabled"; 8062306a36Sopenharmony_ci }; 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci L2: cache-controller@3ff20000 { 8362306a36Sopenharmony_ci compatible = "arm,pl310-cache"; 8462306a36Sopenharmony_ci reg = <0x3ff20000 0x1000>; 8562306a36Sopenharmony_ci cache-unified; 8662306a36Sopenharmony_ci cache-level = <2>; 8762306a36Sopenharmony_ci }; 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci brcm,resetmgr@35001f00 { 9062306a36Sopenharmony_ci compatible = "brcm,bcm21664-resetmgr"; 9162306a36Sopenharmony_ci reg = <0x35001f00 0x24>; 9262306a36Sopenharmony_ci }; 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci timer@35006000 { 9562306a36Sopenharmony_ci compatible = "brcm,kona-timer"; 9662306a36Sopenharmony_ci reg = <0x35006000 0x1c>; 9762306a36Sopenharmony_ci interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 9862306a36Sopenharmony_ci clocks = <&aon_ccu BCM21664_AON_CCU_HUB_TIMER>; 9962306a36Sopenharmony_ci }; 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci gpio: gpio@35003000 { 10262306a36Sopenharmony_ci compatible = "brcm,bcm21664-gpio", "brcm,kona-gpio"; 10362306a36Sopenharmony_ci reg = <0x35003000 0x524>; 10462306a36Sopenharmony_ci interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>, 10562306a36Sopenharmony_ci <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>, 10662306a36Sopenharmony_ci <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>, 10762306a36Sopenharmony_ci <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; 10862306a36Sopenharmony_ci #gpio-cells = <2>; 10962306a36Sopenharmony_ci #interrupt-cells = <2>; 11062306a36Sopenharmony_ci gpio-controller; 11162306a36Sopenharmony_ci interrupt-controller; 11262306a36Sopenharmony_ci }; 11362306a36Sopenharmony_ci 11462306a36Sopenharmony_ci sdio1: mmc@3f180000 { 11562306a36Sopenharmony_ci compatible = "brcm,kona-sdhci"; 11662306a36Sopenharmony_ci reg = <0x3f180000 0x801c>; 11762306a36Sopenharmony_ci interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 11862306a36Sopenharmony_ci clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO1>; 11962306a36Sopenharmony_ci status = "disabled"; 12062306a36Sopenharmony_ci }; 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci sdio2: mmc@3f190000 { 12362306a36Sopenharmony_ci compatible = "brcm,kona-sdhci"; 12462306a36Sopenharmony_ci reg = <0x3f190000 0x801c>; 12562306a36Sopenharmony_ci interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 12662306a36Sopenharmony_ci clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO2>; 12762306a36Sopenharmony_ci status = "disabled"; 12862306a36Sopenharmony_ci }; 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ci sdio3: mmc@3f1a0000 { 13162306a36Sopenharmony_ci compatible = "brcm,kona-sdhci"; 13262306a36Sopenharmony_ci reg = <0x3f1a0000 0x801c>; 13362306a36Sopenharmony_ci interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 13462306a36Sopenharmony_ci clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO3>; 13562306a36Sopenharmony_ci status = "disabled"; 13662306a36Sopenharmony_ci }; 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_ci sdio4: mmc@3f1b0000 { 13962306a36Sopenharmony_ci compatible = "brcm,kona-sdhci"; 14062306a36Sopenharmony_ci reg = <0x3f1b0000 0x801c>; 14162306a36Sopenharmony_ci interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 14262306a36Sopenharmony_ci clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO4>; 14362306a36Sopenharmony_ci status = "disabled"; 14462306a36Sopenharmony_ci }; 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci bsc1: i2c@3e016000 { 14762306a36Sopenharmony_ci compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c"; 14862306a36Sopenharmony_ci reg = <0x3e016000 0x70>; 14962306a36Sopenharmony_ci interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 15062306a36Sopenharmony_ci #address-cells = <1>; 15162306a36Sopenharmony_ci #size-cells = <0>; 15262306a36Sopenharmony_ci clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC1>; 15362306a36Sopenharmony_ci status = "disabled"; 15462306a36Sopenharmony_ci }; 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ci bsc2: i2c@3e017000 { 15762306a36Sopenharmony_ci compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c"; 15862306a36Sopenharmony_ci reg = <0x3e017000 0x70>; 15962306a36Sopenharmony_ci interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 16062306a36Sopenharmony_ci #address-cells = <1>; 16162306a36Sopenharmony_ci #size-cells = <0>; 16262306a36Sopenharmony_ci clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC2>; 16362306a36Sopenharmony_ci status = "disabled"; 16462306a36Sopenharmony_ci }; 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ci bsc3: i2c@3e018000 { 16762306a36Sopenharmony_ci compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c"; 16862306a36Sopenharmony_ci reg = <0x3e018000 0x70>; 16962306a36Sopenharmony_ci interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; 17062306a36Sopenharmony_ci #address-cells = <1>; 17162306a36Sopenharmony_ci #size-cells = <0>; 17262306a36Sopenharmony_ci clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC3>; 17362306a36Sopenharmony_ci status = "disabled"; 17462306a36Sopenharmony_ci }; 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ci bsc4: i2c@3e01c000 { 17762306a36Sopenharmony_ci compatible = "brcm,bcm21664-i2c", "brcm,kona-i2c"; 17862306a36Sopenharmony_ci reg = <0x3e01c000 0x70>; 17962306a36Sopenharmony_ci interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>; 18062306a36Sopenharmony_ci #address-cells = <1>; 18162306a36Sopenharmony_ci #size-cells = <0>; 18262306a36Sopenharmony_ci clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC4>; 18362306a36Sopenharmony_ci status = "disabled"; 18462306a36Sopenharmony_ci }; 18562306a36Sopenharmony_ci 18662306a36Sopenharmony_ci clocks { 18762306a36Sopenharmony_ci #address-cells = <1>; 18862306a36Sopenharmony_ci #size-cells = <1>; 18962306a36Sopenharmony_ci ranges; 19062306a36Sopenharmony_ci 19162306a36Sopenharmony_ci /* 19262306a36Sopenharmony_ci * Fixed clocks are defined before CCUs whose 19362306a36Sopenharmony_ci * clocks may depend on them. 19462306a36Sopenharmony_ci */ 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ci ref_32k_clk: ref_32k { 19762306a36Sopenharmony_ci #clock-cells = <0>; 19862306a36Sopenharmony_ci compatible = "fixed-clock"; 19962306a36Sopenharmony_ci clock-frequency = <32768>; 20062306a36Sopenharmony_ci }; 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_ci bbl_32k_clk: bbl_32k { 20362306a36Sopenharmony_ci #clock-cells = <0>; 20462306a36Sopenharmony_ci compatible = "fixed-clock"; 20562306a36Sopenharmony_ci clock-frequency = <32768>; 20662306a36Sopenharmony_ci }; 20762306a36Sopenharmony_ci 20862306a36Sopenharmony_ci ref_13m_clk: ref_13m { 20962306a36Sopenharmony_ci #clock-cells = <0>; 21062306a36Sopenharmony_ci compatible = "fixed-clock"; 21162306a36Sopenharmony_ci clock-frequency = <13000000>; 21262306a36Sopenharmony_ci }; 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ci var_13m_clk: var_13m { 21562306a36Sopenharmony_ci #clock-cells = <0>; 21662306a36Sopenharmony_ci compatible = "fixed-clock"; 21762306a36Sopenharmony_ci clock-frequency = <13000000>; 21862306a36Sopenharmony_ci }; 21962306a36Sopenharmony_ci 22062306a36Sopenharmony_ci dft_19_5m_clk: dft_19_5m { 22162306a36Sopenharmony_ci #clock-cells = <0>; 22262306a36Sopenharmony_ci compatible = "fixed-clock"; 22362306a36Sopenharmony_ci clock-frequency = <19500000>; 22462306a36Sopenharmony_ci }; 22562306a36Sopenharmony_ci 22662306a36Sopenharmony_ci ref_crystal_clk: ref_crystal { 22762306a36Sopenharmony_ci #clock-cells = <0>; 22862306a36Sopenharmony_ci compatible = "fixed-clock"; 22962306a36Sopenharmony_ci clock-frequency = <26000000>; 23062306a36Sopenharmony_ci }; 23162306a36Sopenharmony_ci 23262306a36Sopenharmony_ci ref_52m_clk: ref_52m { 23362306a36Sopenharmony_ci #clock-cells = <0>; 23462306a36Sopenharmony_ci compatible = "fixed-clock"; 23562306a36Sopenharmony_ci clock-frequency = <52000000>; 23662306a36Sopenharmony_ci }; 23762306a36Sopenharmony_ci 23862306a36Sopenharmony_ci var_52m_clk: var_52m { 23962306a36Sopenharmony_ci #clock-cells = <0>; 24062306a36Sopenharmony_ci compatible = "fixed-clock"; 24162306a36Sopenharmony_ci clock-frequency = <52000000>; 24262306a36Sopenharmony_ci }; 24362306a36Sopenharmony_ci 24462306a36Sopenharmony_ci usb_otg_ahb_clk: usb_otg_ahb { 24562306a36Sopenharmony_ci #clock-cells = <0>; 24662306a36Sopenharmony_ci compatible = "fixed-clock"; 24762306a36Sopenharmony_ci clock-frequency = <52000000>; 24862306a36Sopenharmony_ci }; 24962306a36Sopenharmony_ci 25062306a36Sopenharmony_ci ref_96m_clk: ref_96m { 25162306a36Sopenharmony_ci #clock-cells = <0>; 25262306a36Sopenharmony_ci compatible = "fixed-clock"; 25362306a36Sopenharmony_ci clock-frequency = <96000000>; 25462306a36Sopenharmony_ci }; 25562306a36Sopenharmony_ci 25662306a36Sopenharmony_ci var_96m_clk: var_96m { 25762306a36Sopenharmony_ci #clock-cells = <0>; 25862306a36Sopenharmony_ci compatible = "fixed-clock"; 25962306a36Sopenharmony_ci clock-frequency = <96000000>; 26062306a36Sopenharmony_ci }; 26162306a36Sopenharmony_ci 26262306a36Sopenharmony_ci ref_104m_clk: ref_104m { 26362306a36Sopenharmony_ci #clock-cells = <0>; 26462306a36Sopenharmony_ci compatible = "fixed-clock"; 26562306a36Sopenharmony_ci clock-frequency = <104000000>; 26662306a36Sopenharmony_ci }; 26762306a36Sopenharmony_ci 26862306a36Sopenharmony_ci var_104m_clk: var_104m { 26962306a36Sopenharmony_ci #clock-cells = <0>; 27062306a36Sopenharmony_ci compatible = "fixed-clock"; 27162306a36Sopenharmony_ci clock-frequency = <104000000>; 27262306a36Sopenharmony_ci }; 27362306a36Sopenharmony_ci 27462306a36Sopenharmony_ci ref_156m_clk: ref_156m { 27562306a36Sopenharmony_ci #clock-cells = <0>; 27662306a36Sopenharmony_ci compatible = "fixed-clock"; 27762306a36Sopenharmony_ci clock-frequency = <156000000>; 27862306a36Sopenharmony_ci }; 27962306a36Sopenharmony_ci 28062306a36Sopenharmony_ci var_156m_clk: var_156m { 28162306a36Sopenharmony_ci #clock-cells = <0>; 28262306a36Sopenharmony_ci compatible = "fixed-clock"; 28362306a36Sopenharmony_ci clock-frequency = <156000000>; 28462306a36Sopenharmony_ci }; 28562306a36Sopenharmony_ci 28662306a36Sopenharmony_ci root_ccu: root_ccu@35001000 { 28762306a36Sopenharmony_ci compatible = "brcm,bcm21664-root-ccu"; 28862306a36Sopenharmony_ci reg = <0x35001000 0x0f00>; 28962306a36Sopenharmony_ci #clock-cells = <1>; 29062306a36Sopenharmony_ci clock-output-names = "frac_1m"; 29162306a36Sopenharmony_ci }; 29262306a36Sopenharmony_ci 29362306a36Sopenharmony_ci aon_ccu: aon_ccu@35002000 { 29462306a36Sopenharmony_ci compatible = "brcm,bcm21664-aon-ccu"; 29562306a36Sopenharmony_ci reg = <0x35002000 0x0f00>; 29662306a36Sopenharmony_ci #clock-cells = <1>; 29762306a36Sopenharmony_ci clock-output-names = "hub_timer"; 29862306a36Sopenharmony_ci }; 29962306a36Sopenharmony_ci 30062306a36Sopenharmony_ci master_ccu: master_ccu@3f001000 { 30162306a36Sopenharmony_ci compatible = "brcm,bcm21664-master-ccu"; 30262306a36Sopenharmony_ci reg = <0x3f001000 0x0f00>; 30362306a36Sopenharmony_ci #clock-cells = <1>; 30462306a36Sopenharmony_ci clock-output-names = "sdio1", 30562306a36Sopenharmony_ci "sdio2", 30662306a36Sopenharmony_ci "sdio3", 30762306a36Sopenharmony_ci "sdio4", 30862306a36Sopenharmony_ci "sdio1_sleep", 30962306a36Sopenharmony_ci "sdio2_sleep", 31062306a36Sopenharmony_ci "sdio3_sleep", 31162306a36Sopenharmony_ci "sdio4_sleep"; 31262306a36Sopenharmony_ci }; 31362306a36Sopenharmony_ci 31462306a36Sopenharmony_ci slave_ccu: slave_ccu@3e011000 { 31562306a36Sopenharmony_ci compatible = "brcm,bcm21664-slave-ccu"; 31662306a36Sopenharmony_ci reg = <0x3e011000 0x0f00>; 31762306a36Sopenharmony_ci #clock-cells = <1>; 31862306a36Sopenharmony_ci clock-output-names = "uartb", 31962306a36Sopenharmony_ci "uartb2", 32062306a36Sopenharmony_ci "uartb3", 32162306a36Sopenharmony_ci "bsc1", 32262306a36Sopenharmony_ci "bsc2", 32362306a36Sopenharmony_ci "bsc3", 32462306a36Sopenharmony_ci "bsc4"; 32562306a36Sopenharmony_ci }; 32662306a36Sopenharmony_ci }; 32762306a36Sopenharmony_ci 32862306a36Sopenharmony_ci usbotg: usb@3f120000 { 32962306a36Sopenharmony_ci compatible = "snps,dwc2"; 33062306a36Sopenharmony_ci reg = <0x3f120000 0x10000>; 33162306a36Sopenharmony_ci interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 33262306a36Sopenharmony_ci clocks = <&usb_otg_ahb_clk>; 33362306a36Sopenharmony_ci clock-names = "otg"; 33462306a36Sopenharmony_ci phys = <&usbphy>; 33562306a36Sopenharmony_ci phy-names = "usb2-phy"; 33662306a36Sopenharmony_ci status = "disabled"; 33762306a36Sopenharmony_ci }; 33862306a36Sopenharmony_ci 33962306a36Sopenharmony_ci usbphy: usb-phy@3f130000 { 34062306a36Sopenharmony_ci compatible = "brcm,kona-usb2-phy"; 34162306a36Sopenharmony_ci reg = <0x3f130000 0x28>; 34262306a36Sopenharmony_ci #phy-cells = <0>; 34362306a36Sopenharmony_ci status = "disabled"; 34462306a36Sopenharmony_ci }; 34562306a36Sopenharmony_ci}; 346