162306a36Sopenharmony_ci/* 262306a36Sopenharmony_ci * BSD LICENSE 362306a36Sopenharmony_ci * 462306a36Sopenharmony_ci * Copyright(c) 2015 Broadcom Corporation. All rights reserved. 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Redistribution and use in source and binary forms, with or without 762306a36Sopenharmony_ci * modification, are permitted provided that the following conditions 862306a36Sopenharmony_ci * are met: 962306a36Sopenharmony_ci * 1062306a36Sopenharmony_ci * * Redistributions of source code must retain the above copyright 1162306a36Sopenharmony_ci * notice, this list of conditions and the following disclaimer. 1262306a36Sopenharmony_ci * * Redistributions in binary form must reproduce the above copyright 1362306a36Sopenharmony_ci * notice, this list of conditions and the following disclaimer in 1462306a36Sopenharmony_ci * the documentation and/or other materials provided with the 1562306a36Sopenharmony_ci * distribution. 1662306a36Sopenharmony_ci * * Neither the name of Broadcom Corporation nor the names of its 1762306a36Sopenharmony_ci * contributors may be used to endorse or promote products derived 1862306a36Sopenharmony_ci * from this software without specific prior written permission. 1962306a36Sopenharmony_ci * 2062306a36Sopenharmony_ci * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 2162306a36Sopenharmony_ci * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2262306a36Sopenharmony_ci * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2362306a36Sopenharmony_ci * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2462306a36Sopenharmony_ci * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2562306a36Sopenharmony_ci * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2662306a36Sopenharmony_ci * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2762306a36Sopenharmony_ci * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2862306a36Sopenharmony_ci * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2962306a36Sopenharmony_ci * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 3062306a36Sopenharmony_ci * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3162306a36Sopenharmony_ci */ 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/arm-gic.h> 3462306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h> 3562306a36Sopenharmony_ci#include <dt-bindings/clock/bcm-nsp.h> 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci/ { 3862306a36Sopenharmony_ci #address-cells = <1>; 3962306a36Sopenharmony_ci #size-cells = <1>; 4062306a36Sopenharmony_ci compatible = "brcm,nsp"; 4162306a36Sopenharmony_ci model = "Broadcom Northstar Plus SoC"; 4262306a36Sopenharmony_ci interrupt-parent = <&gic>; 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci aliases { 4562306a36Sopenharmony_ci serial0 = &uart0; 4662306a36Sopenharmony_ci serial1 = &uart1; 4762306a36Sopenharmony_ci ethernet0 = &amac0; 4862306a36Sopenharmony_ci ethernet1 = &amac1; 4962306a36Sopenharmony_ci ethernet2 = &amac2; 5062306a36Sopenharmony_ci }; 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci cpus { 5362306a36Sopenharmony_ci #address-cells = <1>; 5462306a36Sopenharmony_ci #size-cells = <0>; 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci cpu0: cpu@0 { 5762306a36Sopenharmony_ci device_type = "cpu"; 5862306a36Sopenharmony_ci compatible = "arm,cortex-a9"; 5962306a36Sopenharmony_ci next-level-cache = <&L2>; 6062306a36Sopenharmony_ci reg = <0x0>; 6162306a36Sopenharmony_ci }; 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci cpu1: cpu@1 { 6462306a36Sopenharmony_ci device_type = "cpu"; 6562306a36Sopenharmony_ci compatible = "arm,cortex-a9"; 6662306a36Sopenharmony_ci next-level-cache = <&L2>; 6762306a36Sopenharmony_ci enable-method = "brcm,bcm-nsp-smp"; 6862306a36Sopenharmony_ci secondary-boot-reg = <0xffff0fec>; 6962306a36Sopenharmony_ci reg = <0x1>; 7062306a36Sopenharmony_ci }; 7162306a36Sopenharmony_ci }; 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci pmu { 7462306a36Sopenharmony_ci compatible = "arm,cortex-a9-pmu"; 7562306a36Sopenharmony_ci interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 7662306a36Sopenharmony_ci <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 7762306a36Sopenharmony_ci interrupt-affinity = <&cpu0>, <&cpu1>; 7862306a36Sopenharmony_ci }; 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci mpcore-bus@19000000 { 8162306a36Sopenharmony_ci compatible = "simple-bus"; 8262306a36Sopenharmony_ci ranges = <0x00000000 0x19000000 0x00023000>; 8362306a36Sopenharmony_ci #address-cells = <1>; 8462306a36Sopenharmony_ci #size-cells = <1>; 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci a9pll: arm_clk@0 { 8762306a36Sopenharmony_ci #clock-cells = <0>; 8862306a36Sopenharmony_ci compatible = "brcm,nsp-armpll"; 8962306a36Sopenharmony_ci clocks = <&osc>; 9062306a36Sopenharmony_ci reg = <0x00000 0x1000>; 9162306a36Sopenharmony_ci }; 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci timer@20200 { 9462306a36Sopenharmony_ci compatible = "arm,cortex-a9-global-timer"; 9562306a36Sopenharmony_ci reg = <0x20200 0x100>; 9662306a36Sopenharmony_ci interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>; 9762306a36Sopenharmony_ci clocks = <&periph_clk>; 9862306a36Sopenharmony_ci }; 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci twd-timer@20600 { 10162306a36Sopenharmony_ci compatible = "arm,cortex-a9-twd-timer"; 10262306a36Sopenharmony_ci reg = <0x20600 0x20>; 10362306a36Sopenharmony_ci interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | 10462306a36Sopenharmony_ci IRQ_TYPE_EDGE_RISING)>; 10562306a36Sopenharmony_ci clocks = <&periph_clk>; 10662306a36Sopenharmony_ci }; 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci twd-watchdog@20620 { 10962306a36Sopenharmony_ci compatible = "arm,cortex-a9-twd-wdt"; 11062306a36Sopenharmony_ci reg = <0x20620 0x20>; 11162306a36Sopenharmony_ci interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | 11262306a36Sopenharmony_ci IRQ_TYPE_LEVEL_HIGH)>; 11362306a36Sopenharmony_ci clocks = <&periph_clk>; 11462306a36Sopenharmony_ci }; 11562306a36Sopenharmony_ci 11662306a36Sopenharmony_ci gic: interrupt-controller@21000 { 11762306a36Sopenharmony_ci compatible = "arm,cortex-a9-gic"; 11862306a36Sopenharmony_ci #interrupt-cells = <3>; 11962306a36Sopenharmony_ci #address-cells = <0>; 12062306a36Sopenharmony_ci interrupt-controller; 12162306a36Sopenharmony_ci reg = <0x21000 0x1000>, 12262306a36Sopenharmony_ci <0x20100 0x100>; 12362306a36Sopenharmony_ci }; 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci L2: cache-controller@22000 { 12662306a36Sopenharmony_ci compatible = "arm,pl310-cache"; 12762306a36Sopenharmony_ci reg = <0x22000 0x1000>; 12862306a36Sopenharmony_ci cache-unified; 12962306a36Sopenharmony_ci cache-level = <2>; 13062306a36Sopenharmony_ci }; 13162306a36Sopenharmony_ci }; 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ci clocks { 13462306a36Sopenharmony_ci #address-cells = <1>; 13562306a36Sopenharmony_ci #size-cells = <1>; 13662306a36Sopenharmony_ci ranges; 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_ci osc: oscillator { 13962306a36Sopenharmony_ci #clock-cells = <0>; 14062306a36Sopenharmony_ci compatible = "fixed-clock"; 14162306a36Sopenharmony_ci clock-frequency = <25000000>; 14262306a36Sopenharmony_ci }; 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ci iprocmed: iprocmed { 14562306a36Sopenharmony_ci #clock-cells = <0>; 14662306a36Sopenharmony_ci compatible = "fixed-factor-clock"; 14762306a36Sopenharmony_ci clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>; 14862306a36Sopenharmony_ci clock-div = <2>; 14962306a36Sopenharmony_ci clock-mult = <1>; 15062306a36Sopenharmony_ci }; 15162306a36Sopenharmony_ci 15262306a36Sopenharmony_ci iprocslow: iprocslow { 15362306a36Sopenharmony_ci #clock-cells = <0>; 15462306a36Sopenharmony_ci compatible = "fixed-factor-clock"; 15562306a36Sopenharmony_ci clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>; 15662306a36Sopenharmony_ci clock-div = <4>; 15762306a36Sopenharmony_ci clock-mult = <1>; 15862306a36Sopenharmony_ci }; 15962306a36Sopenharmony_ci 16062306a36Sopenharmony_ci periph_clk: periph_clk { 16162306a36Sopenharmony_ci #clock-cells = <0>; 16262306a36Sopenharmony_ci compatible = "fixed-factor-clock"; 16362306a36Sopenharmony_ci clocks = <&a9pll>; 16462306a36Sopenharmony_ci clock-div = <2>; 16562306a36Sopenharmony_ci clock-mult = <1>; 16662306a36Sopenharmony_ci }; 16762306a36Sopenharmony_ci }; 16862306a36Sopenharmony_ci 16962306a36Sopenharmony_ci axi: axi@18000000 { 17062306a36Sopenharmony_ci compatible = "simple-bus"; 17162306a36Sopenharmony_ci ranges = <0x00000000 0x18000000 0x0011c40c>; 17262306a36Sopenharmony_ci #address-cells = <1>; 17362306a36Sopenharmony_ci #size-cells = <1>; 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci gpioa: gpio@20 { 17662306a36Sopenharmony_ci compatible = "brcm,nsp-gpio-a"; 17762306a36Sopenharmony_ci reg = <0x0020 0x70>, 17862306a36Sopenharmony_ci <0x3f1c4 0x1c>; 17962306a36Sopenharmony_ci #gpio-cells = <2>; 18062306a36Sopenharmony_ci gpio-controller; 18162306a36Sopenharmony_ci ngpios = <32>; 18262306a36Sopenharmony_ci interrupt-controller; 18362306a36Sopenharmony_ci #interrupt-cells = <2>; 18462306a36Sopenharmony_ci interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 18562306a36Sopenharmony_ci gpio-ranges = <&pinctrl 0 0 32>; 18662306a36Sopenharmony_ci }; 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ci uart0: serial@300 { 18962306a36Sopenharmony_ci compatible = "ns16550a"; 19062306a36Sopenharmony_ci reg = <0x0300 0x100>; 19162306a36Sopenharmony_ci interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 19262306a36Sopenharmony_ci clocks = <&osc>; 19362306a36Sopenharmony_ci status = "disabled"; 19462306a36Sopenharmony_ci }; 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ci uart1: serial@400 { 19762306a36Sopenharmony_ci compatible = "ns16550a"; 19862306a36Sopenharmony_ci reg = <0x0400 0x100>; 19962306a36Sopenharmony_ci interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 20062306a36Sopenharmony_ci clocks = <&osc>; 20162306a36Sopenharmony_ci status = "disabled"; 20262306a36Sopenharmony_ci }; 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ci dma: dma@20000 { 20562306a36Sopenharmony_ci compatible = "arm,pl330", "arm,primecell"; 20662306a36Sopenharmony_ci reg = <0x20000 0x1000>; 20762306a36Sopenharmony_ci interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, 20862306a36Sopenharmony_ci <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, 20962306a36Sopenharmony_ci <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, 21062306a36Sopenharmony_ci <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, 21162306a36Sopenharmony_ci <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 21262306a36Sopenharmony_ci <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 21362306a36Sopenharmony_ci <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 21462306a36Sopenharmony_ci <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 21562306a36Sopenharmony_ci <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 21662306a36Sopenharmony_ci clocks = <&iprocslow>; 21762306a36Sopenharmony_ci clock-names = "apb_pclk"; 21862306a36Sopenharmony_ci #dma-cells = <1>; 21962306a36Sopenharmony_ci dma-coherent; 22062306a36Sopenharmony_ci status = "disabled"; 22162306a36Sopenharmony_ci }; 22262306a36Sopenharmony_ci 22362306a36Sopenharmony_ci sdio: mmc@21000 { 22462306a36Sopenharmony_ci compatible = "brcm,sdhci-iproc-cygnus"; 22562306a36Sopenharmony_ci reg = <0x21000 0x100>; 22662306a36Sopenharmony_ci interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; 22762306a36Sopenharmony_ci sdhci,auto-cmd12; 22862306a36Sopenharmony_ci clocks = <&lcpll0 BCM_NSP_LCPLL0_SDIO_CLK>; 22962306a36Sopenharmony_ci dma-coherent; 23062306a36Sopenharmony_ci status = "disabled"; 23162306a36Sopenharmony_ci }; 23262306a36Sopenharmony_ci 23362306a36Sopenharmony_ci amac0: ethernet@22000 { 23462306a36Sopenharmony_ci compatible = "brcm,nsp-amac"; 23562306a36Sopenharmony_ci reg = <0x022000 0x1000>, 23662306a36Sopenharmony_ci <0x110000 0x1000>; 23762306a36Sopenharmony_ci reg-names = "amac_base", "idm_base"; 23862306a36Sopenharmony_ci interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; 23962306a36Sopenharmony_ci dma-coherent; 24062306a36Sopenharmony_ci status = "disabled"; 24162306a36Sopenharmony_ci }; 24262306a36Sopenharmony_ci 24362306a36Sopenharmony_ci amac1: ethernet@23000 { 24462306a36Sopenharmony_ci compatible = "brcm,nsp-amac"; 24562306a36Sopenharmony_ci reg = <0x023000 0x1000>, 24662306a36Sopenharmony_ci <0x111000 0x1000>; 24762306a36Sopenharmony_ci reg-names = "amac_base", "idm_base"; 24862306a36Sopenharmony_ci interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 24962306a36Sopenharmony_ci dma-coherent; 25062306a36Sopenharmony_ci status = "disabled"; 25162306a36Sopenharmony_ci }; 25262306a36Sopenharmony_ci 25362306a36Sopenharmony_ci amac2: ethernet@24000 { 25462306a36Sopenharmony_ci compatible = "brcm,nsp-amac"; 25562306a36Sopenharmony_ci reg = <0x024000 0x1000>, 25662306a36Sopenharmony_ci <0x112000 0x1000>; 25762306a36Sopenharmony_ci reg-names = "amac_base", "idm_base"; 25862306a36Sopenharmony_ci interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 25962306a36Sopenharmony_ci dma-coherent; 26062306a36Sopenharmony_ci status = "disabled"; 26162306a36Sopenharmony_ci }; 26262306a36Sopenharmony_ci 26362306a36Sopenharmony_ci mailbox: mailbox@25c00 { 26462306a36Sopenharmony_ci compatible = "brcm,iproc-fa2-mbox"; 26562306a36Sopenharmony_ci reg = <0x25c00 0x400>; 26662306a36Sopenharmony_ci interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>; 26762306a36Sopenharmony_ci #mbox-cells = <1>; 26862306a36Sopenharmony_ci brcm,rx-status-len = <32>; 26962306a36Sopenharmony_ci brcm,use-bcm-hdr; 27062306a36Sopenharmony_ci dma-coherent; 27162306a36Sopenharmony_ci }; 27262306a36Sopenharmony_ci 27362306a36Sopenharmony_ci nand_controller: nand-controller@26000 { 27462306a36Sopenharmony_ci compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1"; 27562306a36Sopenharmony_ci reg = <0x026000 0x600>, 27662306a36Sopenharmony_ci <0x11b408 0x600>, 27762306a36Sopenharmony_ci <0x026f00 0x20>; 27862306a36Sopenharmony_ci reg-names = "nand", "iproc-idm", "iproc-ext"; 27962306a36Sopenharmony_ci interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 28062306a36Sopenharmony_ci 28162306a36Sopenharmony_ci #address-cells = <1>; 28262306a36Sopenharmony_ci #size-cells = <0>; 28362306a36Sopenharmony_ci 28462306a36Sopenharmony_ci brcm,nand-has-wp; 28562306a36Sopenharmony_ci }; 28662306a36Sopenharmony_ci 28762306a36Sopenharmony_ci qspi: spi@27200 { 28862306a36Sopenharmony_ci compatible = "brcm,spi-nsp-qspi", "brcm,spi-bcm-qspi"; 28962306a36Sopenharmony_ci reg = <0x027200 0x184>, 29062306a36Sopenharmony_ci <0x027000 0x124>, 29162306a36Sopenharmony_ci <0x11c408 0x004>, 29262306a36Sopenharmony_ci <0x0273a0 0x01c>; 29362306a36Sopenharmony_ci reg-names = "mspi", "bspi", "intr_regs", 29462306a36Sopenharmony_ci "intr_status_reg"; 29562306a36Sopenharmony_ci interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 29662306a36Sopenharmony_ci <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, 29762306a36Sopenharmony_ci <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>, 29862306a36Sopenharmony_ci <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>, 29962306a36Sopenharmony_ci <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>, 30062306a36Sopenharmony_ci <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>, 30162306a36Sopenharmony_ci <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 30262306a36Sopenharmony_ci interrupt-names = "spi_lr_fullness_reached", 30362306a36Sopenharmony_ci "spi_lr_session_aborted", 30462306a36Sopenharmony_ci "spi_lr_impatient", 30562306a36Sopenharmony_ci "spi_lr_session_done", 30662306a36Sopenharmony_ci "spi_lr_overhead", 30762306a36Sopenharmony_ci "mspi_done", 30862306a36Sopenharmony_ci "mspi_halted"; 30962306a36Sopenharmony_ci clocks = <&iprocmed>; 31062306a36Sopenharmony_ci clock-names = "iprocmed"; 31162306a36Sopenharmony_ci num-cs = <2>; 31262306a36Sopenharmony_ci #address-cells = <1>; 31362306a36Sopenharmony_ci #size-cells = <0>; 31462306a36Sopenharmony_ci status = "disabled"; 31562306a36Sopenharmony_ci }; 31662306a36Sopenharmony_ci 31762306a36Sopenharmony_ci xhci: usb@29000 { 31862306a36Sopenharmony_ci compatible = "generic-xhci"; 31962306a36Sopenharmony_ci reg = <0x29000 0x1000>; 32062306a36Sopenharmony_ci interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 32162306a36Sopenharmony_ci phys = <&usb3_phy>; 32262306a36Sopenharmony_ci phy-names = "usb3-phy"; 32362306a36Sopenharmony_ci dma-coherent; 32462306a36Sopenharmony_ci status = "disabled"; 32562306a36Sopenharmony_ci }; 32662306a36Sopenharmony_ci 32762306a36Sopenharmony_ci ehci0: usb@2a000 { 32862306a36Sopenharmony_ci compatible = "generic-ehci"; 32962306a36Sopenharmony_ci reg = <0x2a000 0x100>; 33062306a36Sopenharmony_ci interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 33162306a36Sopenharmony_ci dma-coherent; 33262306a36Sopenharmony_ci status = "disabled"; 33362306a36Sopenharmony_ci }; 33462306a36Sopenharmony_ci 33562306a36Sopenharmony_ci ohci0: usb@2b000 { 33662306a36Sopenharmony_ci compatible = "generic-ohci"; 33762306a36Sopenharmony_ci reg = <0x2b000 0x100>; 33862306a36Sopenharmony_ci interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 33962306a36Sopenharmony_ci dma-coherent; 34062306a36Sopenharmony_ci status = "disabled"; 34162306a36Sopenharmony_ci }; 34262306a36Sopenharmony_ci 34362306a36Sopenharmony_ci crypto@2f000 { 34462306a36Sopenharmony_ci compatible = "brcm,spum-nsp-crypto"; 34562306a36Sopenharmony_ci reg = <0x2f000 0x900>; 34662306a36Sopenharmony_ci mboxes = <&mailbox 0>; 34762306a36Sopenharmony_ci }; 34862306a36Sopenharmony_ci 34962306a36Sopenharmony_ci gpiob: gpio@30000 { 35062306a36Sopenharmony_ci compatible = "brcm,iproc-nsp-gpio", "brcm,iproc-gpio"; 35162306a36Sopenharmony_ci reg = <0x30000 0x50>; 35262306a36Sopenharmony_ci #gpio-cells = <2>; 35362306a36Sopenharmony_ci gpio-controller; 35462306a36Sopenharmony_ci ngpios = <4>; 35562306a36Sopenharmony_ci interrupt-controller; 35662306a36Sopenharmony_ci #interrupt-cells = <2>; 35762306a36Sopenharmony_ci interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 35862306a36Sopenharmony_ci }; 35962306a36Sopenharmony_ci 36062306a36Sopenharmony_ci pwm: pwm@31000 { 36162306a36Sopenharmony_ci compatible = "brcm,iproc-pwm"; 36262306a36Sopenharmony_ci reg = <0x31000 0x28>; 36362306a36Sopenharmony_ci clocks = <&osc>; 36462306a36Sopenharmony_ci #pwm-cells = <3>; 36562306a36Sopenharmony_ci status = "disabled"; 36662306a36Sopenharmony_ci }; 36762306a36Sopenharmony_ci 36862306a36Sopenharmony_ci mdio: mdio@32000 { 36962306a36Sopenharmony_ci compatible = "brcm,iproc-mdio"; 37062306a36Sopenharmony_ci reg = <0x32000 0x8>; 37162306a36Sopenharmony_ci #size-cells = <0>; 37262306a36Sopenharmony_ci #address-cells = <1>; 37362306a36Sopenharmony_ci }; 37462306a36Sopenharmony_ci 37562306a36Sopenharmony_ci mdio-mux@32000 { 37662306a36Sopenharmony_ci compatible = "mdio-mux-mmioreg", "mdio-mux"; 37762306a36Sopenharmony_ci reg = <0x32000 0x4>; 37862306a36Sopenharmony_ci mux-mask = <0x200>; 37962306a36Sopenharmony_ci #address-cells = <1>; 38062306a36Sopenharmony_ci #size-cells = <0>; 38162306a36Sopenharmony_ci mdio-parent-bus = <&mdio>; 38262306a36Sopenharmony_ci 38362306a36Sopenharmony_ci mdio_int: mdio@0 { 38462306a36Sopenharmony_ci reg = <0x0>; 38562306a36Sopenharmony_ci #address-cells = <1>; 38662306a36Sopenharmony_ci #size-cells = <0>; 38762306a36Sopenharmony_ci 38862306a36Sopenharmony_ci usb3_phy: usb3-phy@10 { 38962306a36Sopenharmony_ci compatible = "brcm,ns-bx-usb3-phy"; 39062306a36Sopenharmony_ci reg = <0x10>; 39162306a36Sopenharmony_ci usb3-dmp-syscon = <&usb3_dmp>; 39262306a36Sopenharmony_ci #phy-cells = <0>; 39362306a36Sopenharmony_ci status = "disabled"; 39462306a36Sopenharmony_ci }; 39562306a36Sopenharmony_ci }; 39662306a36Sopenharmony_ci 39762306a36Sopenharmony_ci mdio_ext: mdio@200 { 39862306a36Sopenharmony_ci reg = <0x200>; 39962306a36Sopenharmony_ci #address-cells = <1>; 40062306a36Sopenharmony_ci #size-cells = <0>; 40162306a36Sopenharmony_ci }; 40262306a36Sopenharmony_ci }; 40362306a36Sopenharmony_ci 40462306a36Sopenharmony_ci rng: rng@33000 { 40562306a36Sopenharmony_ci compatible = "brcm,bcm-nsp-rng"; 40662306a36Sopenharmony_ci reg = <0x33000 0x14>; 40762306a36Sopenharmony_ci }; 40862306a36Sopenharmony_ci 40962306a36Sopenharmony_ci ccbtimer0: timer@34000 { 41062306a36Sopenharmony_ci compatible = "arm,sp804", "arm,primecell"; 41162306a36Sopenharmony_ci reg = <0x34000 0x1000>; 41262306a36Sopenharmony_ci interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>, 41362306a36Sopenharmony_ci <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 41462306a36Sopenharmony_ci clocks = <&iprocslow>; 41562306a36Sopenharmony_ci clock-names = "apb_pclk"; 41662306a36Sopenharmony_ci }; 41762306a36Sopenharmony_ci 41862306a36Sopenharmony_ci ccbtimer1: timer@35000 { 41962306a36Sopenharmony_ci compatible = "arm,sp804", "arm,primecell"; 42062306a36Sopenharmony_ci reg = <0x35000 0x1000>; 42162306a36Sopenharmony_ci interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>, 42262306a36Sopenharmony_ci <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 42362306a36Sopenharmony_ci clocks = <&iprocslow>; 42462306a36Sopenharmony_ci clock-names = "apb_pclk"; 42562306a36Sopenharmony_ci }; 42662306a36Sopenharmony_ci 42762306a36Sopenharmony_ci srab: ethernet-switch@36000 { 42862306a36Sopenharmony_ci compatible = "brcm,nsp-srab"; 42962306a36Sopenharmony_ci reg = <0x36000 0x1000>, 43062306a36Sopenharmony_ci <0x3f308 0x8>, 43162306a36Sopenharmony_ci <0x3f410 0xc>; 43262306a36Sopenharmony_ci reg-names = "srab", "mux_config", "sgmii_config"; 43362306a36Sopenharmony_ci interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, 43462306a36Sopenharmony_ci <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, 43562306a36Sopenharmony_ci <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>, 43662306a36Sopenharmony_ci <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, 43762306a36Sopenharmony_ci <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>, 43862306a36Sopenharmony_ci <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, 43962306a36Sopenharmony_ci <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, 44062306a36Sopenharmony_ci <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, 44162306a36Sopenharmony_ci <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>, 44262306a36Sopenharmony_ci <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, 44362306a36Sopenharmony_ci <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>, 44462306a36Sopenharmony_ci <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>, 44562306a36Sopenharmony_ci <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 44662306a36Sopenharmony_ci interrupt-names = "link_state_p0", 44762306a36Sopenharmony_ci "link_state_p1", 44862306a36Sopenharmony_ci "link_state_p2", 44962306a36Sopenharmony_ci "link_state_p3", 45062306a36Sopenharmony_ci "link_state_p4", 45162306a36Sopenharmony_ci "link_state_p5", 45262306a36Sopenharmony_ci "link_state_p7", 45362306a36Sopenharmony_ci "link_state_p8", 45462306a36Sopenharmony_ci "phy", 45562306a36Sopenharmony_ci "ts", 45662306a36Sopenharmony_ci "imp_sleep_timer_p5", 45762306a36Sopenharmony_ci "imp_sleep_timer_p7", 45862306a36Sopenharmony_ci "imp_sleep_timer_p8"; 45962306a36Sopenharmony_ci status = "disabled"; 46062306a36Sopenharmony_ci 46162306a36Sopenharmony_ci /* ports are defined in board DTS */ 46262306a36Sopenharmony_ci ports { 46362306a36Sopenharmony_ci #address-cells = <1>; 46462306a36Sopenharmony_ci #size-cells = <0>; 46562306a36Sopenharmony_ci }; 46662306a36Sopenharmony_ci }; 46762306a36Sopenharmony_ci 46862306a36Sopenharmony_ci i2c0: i2c@38000 { 46962306a36Sopenharmony_ci compatible = "brcm,iproc-i2c"; 47062306a36Sopenharmony_ci reg = <0x38000 0x50>; 47162306a36Sopenharmony_ci #address-cells = <1>; 47262306a36Sopenharmony_ci #size-cells = <0>; 47362306a36Sopenharmony_ci interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 47462306a36Sopenharmony_ci clock-frequency = <100000>; 47562306a36Sopenharmony_ci dma-coherent; 47662306a36Sopenharmony_ci status = "disabled"; 47762306a36Sopenharmony_ci }; 47862306a36Sopenharmony_ci 47962306a36Sopenharmony_ci watchdog@39000 { 48062306a36Sopenharmony_ci compatible = "arm,sp805", "arm,primecell"; 48162306a36Sopenharmony_ci reg = <0x39000 0x1000>; 48262306a36Sopenharmony_ci interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>; 48362306a36Sopenharmony_ci clocks = <&iprocslow>, <&iprocslow>; 48462306a36Sopenharmony_ci clock-names = "wdog_clk", "apb_pclk"; 48562306a36Sopenharmony_ci }; 48662306a36Sopenharmony_ci 48762306a36Sopenharmony_ci lcpll0: lcpll0@3f100 { 48862306a36Sopenharmony_ci #clock-cells = <1>; 48962306a36Sopenharmony_ci compatible = "brcm,nsp-lcpll0"; 49062306a36Sopenharmony_ci reg = <0x3f100 0x14>; 49162306a36Sopenharmony_ci clocks = <&osc>; 49262306a36Sopenharmony_ci clock-output-names = "lcpll0", "pcie_phy", "sdio", 49362306a36Sopenharmony_ci "ddr_phy"; 49462306a36Sopenharmony_ci }; 49562306a36Sopenharmony_ci 49662306a36Sopenharmony_ci genpll: genpll@3f140 { 49762306a36Sopenharmony_ci #clock-cells = <1>; 49862306a36Sopenharmony_ci compatible = "brcm,nsp-genpll"; 49962306a36Sopenharmony_ci reg = <0x3f140 0x24>; 50062306a36Sopenharmony_ci clocks = <&osc>; 50162306a36Sopenharmony_ci clock-output-names = "genpll", "phy", "ethernetclk", 50262306a36Sopenharmony_ci "usbclk", "iprocfast", "sata1", 50362306a36Sopenharmony_ci "sata2"; 50462306a36Sopenharmony_ci }; 50562306a36Sopenharmony_ci 50662306a36Sopenharmony_ci pinctrl: pinctrl@3f1c0 { 50762306a36Sopenharmony_ci compatible = "brcm,nsp-pinmux"; 50862306a36Sopenharmony_ci reg = <0x3f1c0 0x04>, 50962306a36Sopenharmony_ci <0x30028 0x04>, 51062306a36Sopenharmony_ci <0x3f408 0x04>; 51162306a36Sopenharmony_ci }; 51262306a36Sopenharmony_ci 51362306a36Sopenharmony_ci thermal: thermal@3f2c0 { 51462306a36Sopenharmony_ci compatible = "brcm,ns-thermal"; 51562306a36Sopenharmony_ci reg = <0x3f2c0 0x10>; 51662306a36Sopenharmony_ci #thermal-sensor-cells = <0>; 51762306a36Sopenharmony_ci }; 51862306a36Sopenharmony_ci 51962306a36Sopenharmony_ci sata_phy: sata_phy@40100 { 52062306a36Sopenharmony_ci compatible = "brcm,iproc-nsp-sata-phy"; 52162306a36Sopenharmony_ci reg = <0x40100 0x340>; 52262306a36Sopenharmony_ci reg-names = "phy"; 52362306a36Sopenharmony_ci #address-cells = <1>; 52462306a36Sopenharmony_ci #size-cells = <0>; 52562306a36Sopenharmony_ci 52662306a36Sopenharmony_ci sata_phy0: sata-phy@0 { 52762306a36Sopenharmony_ci reg = <0>; 52862306a36Sopenharmony_ci #phy-cells = <0>; 52962306a36Sopenharmony_ci status = "disabled"; 53062306a36Sopenharmony_ci }; 53162306a36Sopenharmony_ci 53262306a36Sopenharmony_ci sata_phy1: sata-phy@1 { 53362306a36Sopenharmony_ci reg = <1>; 53462306a36Sopenharmony_ci #phy-cells = <0>; 53562306a36Sopenharmony_ci status = "disabled"; 53662306a36Sopenharmony_ci }; 53762306a36Sopenharmony_ci }; 53862306a36Sopenharmony_ci 53962306a36Sopenharmony_ci sata: sata@41000 { 54062306a36Sopenharmony_ci compatible = "brcm,bcm-nsp-ahci"; 54162306a36Sopenharmony_ci reg-names = "ahci", "top-ctrl"; 54262306a36Sopenharmony_ci reg = <0x41000 0x1000>, <0x40020 0x1c>; 54362306a36Sopenharmony_ci interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>; 54462306a36Sopenharmony_ci #address-cells = <1>; 54562306a36Sopenharmony_ci #size-cells = <0>; 54662306a36Sopenharmony_ci dma-coherent; 54762306a36Sopenharmony_ci status = "disabled"; 54862306a36Sopenharmony_ci 54962306a36Sopenharmony_ci sata0: sata-port@0 { 55062306a36Sopenharmony_ci reg = <0>; 55162306a36Sopenharmony_ci phys = <&sata_phy0>; 55262306a36Sopenharmony_ci phy-names = "sata-phy"; 55362306a36Sopenharmony_ci }; 55462306a36Sopenharmony_ci 55562306a36Sopenharmony_ci sata1: sata-port@1 { 55662306a36Sopenharmony_ci reg = <1>; 55762306a36Sopenharmony_ci phys = <&sata_phy1>; 55862306a36Sopenharmony_ci phy-names = "sata-phy"; 55962306a36Sopenharmony_ci }; 56062306a36Sopenharmony_ci }; 56162306a36Sopenharmony_ci 56262306a36Sopenharmony_ci usb3_dmp: syscon@104000 { 56362306a36Sopenharmony_ci reg = <0x104000 0x1000>; 56462306a36Sopenharmony_ci }; 56562306a36Sopenharmony_ci }; 56662306a36Sopenharmony_ci 56762306a36Sopenharmony_ci pcie0: pcie@18012000 { 56862306a36Sopenharmony_ci compatible = "brcm,iproc-pcie"; 56962306a36Sopenharmony_ci reg = <0x18012000 0x1000>; 57062306a36Sopenharmony_ci 57162306a36Sopenharmony_ci #interrupt-cells = <1>; 57262306a36Sopenharmony_ci interrupt-map-mask = <0 0 0 0>; 57362306a36Sopenharmony_ci interrupt-map = <0 0 0 0 &gic GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>; 57462306a36Sopenharmony_ci 57562306a36Sopenharmony_ci linux,pci-domain = <0>; 57662306a36Sopenharmony_ci 57762306a36Sopenharmony_ci bus-range = <0x00 0xff>; 57862306a36Sopenharmony_ci 57962306a36Sopenharmony_ci #address-cells = <3>; 58062306a36Sopenharmony_ci #size-cells = <2>; 58162306a36Sopenharmony_ci device_type = "pci"; 58262306a36Sopenharmony_ci 58362306a36Sopenharmony_ci /* Note: The HW does not support I/O resources. So, 58462306a36Sopenharmony_ci * only the memory resource range is being specified. 58562306a36Sopenharmony_ci */ 58662306a36Sopenharmony_ci ranges = <0x82000000 0 0x08000000 0x08000000 0 0x8000000>; 58762306a36Sopenharmony_ci 58862306a36Sopenharmony_ci dma-coherent; 58962306a36Sopenharmony_ci status = "disabled"; 59062306a36Sopenharmony_ci 59162306a36Sopenharmony_ci msi-parent = <&msi0>; 59262306a36Sopenharmony_ci msi0: msi { 59362306a36Sopenharmony_ci compatible = "brcm,iproc-msi"; 59462306a36Sopenharmony_ci msi-controller; 59562306a36Sopenharmony_ci interrupt-parent = <&gic>; 59662306a36Sopenharmony_ci interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>, 59762306a36Sopenharmony_ci <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>, 59862306a36Sopenharmony_ci <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>, 59962306a36Sopenharmony_ci <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>; 60062306a36Sopenharmony_ci brcm,pcie-msi-inten; 60162306a36Sopenharmony_ci }; 60262306a36Sopenharmony_ci }; 60362306a36Sopenharmony_ci 60462306a36Sopenharmony_ci pcie1: pcie@18013000 { 60562306a36Sopenharmony_ci compatible = "brcm,iproc-pcie"; 60662306a36Sopenharmony_ci reg = <0x18013000 0x1000>; 60762306a36Sopenharmony_ci 60862306a36Sopenharmony_ci #interrupt-cells = <1>; 60962306a36Sopenharmony_ci interrupt-map-mask = <0 0 0 0>; 61062306a36Sopenharmony_ci interrupt-map = <0 0 0 0 &gic GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>; 61162306a36Sopenharmony_ci 61262306a36Sopenharmony_ci linux,pci-domain = <1>; 61362306a36Sopenharmony_ci 61462306a36Sopenharmony_ci bus-range = <0x00 0xff>; 61562306a36Sopenharmony_ci 61662306a36Sopenharmony_ci #address-cells = <3>; 61762306a36Sopenharmony_ci #size-cells = <2>; 61862306a36Sopenharmony_ci device_type = "pci"; 61962306a36Sopenharmony_ci 62062306a36Sopenharmony_ci /* Note: The HW does not support I/O resources. So, 62162306a36Sopenharmony_ci * only the memory resource range is being specified. 62262306a36Sopenharmony_ci */ 62362306a36Sopenharmony_ci ranges = <0x82000000 0 0x40000000 0x40000000 0 0x8000000>; 62462306a36Sopenharmony_ci 62562306a36Sopenharmony_ci dma-coherent; 62662306a36Sopenharmony_ci status = "disabled"; 62762306a36Sopenharmony_ci 62862306a36Sopenharmony_ci msi-parent = <&msi1>; 62962306a36Sopenharmony_ci msi1: msi { 63062306a36Sopenharmony_ci compatible = "brcm,iproc-msi"; 63162306a36Sopenharmony_ci msi-controller; 63262306a36Sopenharmony_ci interrupt-parent = <&gic>; 63362306a36Sopenharmony_ci interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>, 63462306a36Sopenharmony_ci <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, 63562306a36Sopenharmony_ci <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>, 63662306a36Sopenharmony_ci <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>; 63762306a36Sopenharmony_ci brcm,pcie-msi-inten; 63862306a36Sopenharmony_ci }; 63962306a36Sopenharmony_ci }; 64062306a36Sopenharmony_ci 64162306a36Sopenharmony_ci pcie2: pcie@18014000 { 64262306a36Sopenharmony_ci compatible = "brcm,iproc-pcie"; 64362306a36Sopenharmony_ci reg = <0x18014000 0x1000>; 64462306a36Sopenharmony_ci 64562306a36Sopenharmony_ci #interrupt-cells = <1>; 64662306a36Sopenharmony_ci interrupt-map-mask = <0 0 0 0>; 64762306a36Sopenharmony_ci interrupt-map = <0 0 0 0 &gic GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; 64862306a36Sopenharmony_ci 64962306a36Sopenharmony_ci linux,pci-domain = <2>; 65062306a36Sopenharmony_ci 65162306a36Sopenharmony_ci bus-range = <0x00 0xff>; 65262306a36Sopenharmony_ci 65362306a36Sopenharmony_ci #address-cells = <3>; 65462306a36Sopenharmony_ci #size-cells = <2>; 65562306a36Sopenharmony_ci device_type = "pci"; 65662306a36Sopenharmony_ci 65762306a36Sopenharmony_ci /* Note: The HW does not support I/O resources. So, 65862306a36Sopenharmony_ci * only the memory resource range is being specified. 65962306a36Sopenharmony_ci */ 66062306a36Sopenharmony_ci ranges = <0x82000000 0 0x48000000 0x48000000 0 0x8000000>; 66162306a36Sopenharmony_ci 66262306a36Sopenharmony_ci dma-coherent; 66362306a36Sopenharmony_ci status = "disabled"; 66462306a36Sopenharmony_ci 66562306a36Sopenharmony_ci msi-parent = <&msi2>; 66662306a36Sopenharmony_ci msi2: msi { 66762306a36Sopenharmony_ci compatible = "brcm,iproc-msi"; 66862306a36Sopenharmony_ci msi-controller; 66962306a36Sopenharmony_ci interrupt-parent = <&gic>; 67062306a36Sopenharmony_ci interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>, 67162306a36Sopenharmony_ci <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>, 67262306a36Sopenharmony_ci <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>, 67362306a36Sopenharmony_ci <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>; 67462306a36Sopenharmony_ci brcm,pcie-msi-inten; 67562306a36Sopenharmony_ci }; 67662306a36Sopenharmony_ci }; 67762306a36Sopenharmony_ci 67862306a36Sopenharmony_ci thermal-zones { 67962306a36Sopenharmony_ci cpu-thermal { 68062306a36Sopenharmony_ci polling-delay-passive = <0>; 68162306a36Sopenharmony_ci polling-delay = <1000>; 68262306a36Sopenharmony_ci coefficients = <(-556) 418000>; 68362306a36Sopenharmony_ci thermal-sensors = <&thermal>; 68462306a36Sopenharmony_ci 68562306a36Sopenharmony_ci trips { 68662306a36Sopenharmony_ci cpu-crit { 68762306a36Sopenharmony_ci temperature = <125000>; 68862306a36Sopenharmony_ci hysteresis = <0>; 68962306a36Sopenharmony_ci type = "critical"; 69062306a36Sopenharmony_ci }; 69162306a36Sopenharmony_ci }; 69262306a36Sopenharmony_ci 69362306a36Sopenharmony_ci cooling-maps { 69462306a36Sopenharmony_ci }; 69562306a36Sopenharmony_ci }; 69662306a36Sopenharmony_ci }; 69762306a36Sopenharmony_ci}; 698