|
|
@@ -0,0 +1,659 @@
|
|
|
+From 3d6098a662b7ff5b80c4b75c54fcd1b2baf9f150 Mon Sep 17 00:00:00 2001
|
|
|
+From: Linus Walleij <[email protected]>
|
|
|
+Date: Mon, 24 Apr 2023 09:38:28 +0200
|
|
|
+Subject: [PATCH 3/5] arm: dts: Import device tree for Broadcom Northstar
|
|
|
+MIME-Version: 1.0
|
|
|
+Content-Type: text/plain; charset=UTF-8
|
|
|
+Content-Transfer-Encoding: 8bit
|
|
|
+
|
|
|
+This brings in the main SoC device tree used by the
|
|
|
+Broadcom Northstar chipset, i.e. BCM4709x and BCM5301x.
|
|
|
+This is taken from the v6.3 Linux kernel.
|
|
|
+
|
|
|
+Cc: Rafał Miłecki <[email protected]>
|
|
|
+Signed-off-by: Linus Walleij <[email protected]>
|
|
|
+---
|
|
|
+ arch/arm/dts/bcm5301x.dtsi | 581 ++++++++++++++++++++++++++++
|
|
|
+ include/dt-bindings/clock/bcm-nsp.h | 51 +++
|
|
|
+ 2 files changed, 632 insertions(+)
|
|
|
+ create mode 100644 arch/arm/dts/bcm5301x.dtsi
|
|
|
+ create mode 100644 include/dt-bindings/clock/bcm-nsp.h
|
|
|
+
|
|
|
+--- /dev/null
|
|
|
++++ b/arch/arm/dts/bcm5301x.dtsi
|
|
|
+@@ -0,0 +1,581 @@
|
|
|
++/*
|
|
|
++ * Broadcom BCM470X / BCM5301X ARM platform code.
|
|
|
++ * Generic DTS part for all BCM53010, BCM53011, BCM53012, BCM53014, BCM53015,
|
|
|
++ * BCM53016, BCM53017, BCM53018, BCM4707, BCM4708 and BCM4709 SoCs
|
|
|
++ *
|
|
|
++ * Copyright 2013-2014 Hauke Mehrtens <[email protected]>
|
|
|
++ *
|
|
|
++ * Licensed under the GNU/GPL. See COPYING for details.
|
|
|
++ */
|
|
|
++
|
|
|
++#include <dt-bindings/clock/bcm-nsp.h>
|
|
|
++#include <dt-bindings/gpio/gpio.h>
|
|
|
++#include <dt-bindings/input/input.h>
|
|
|
++#include <dt-bindings/interrupt-controller/irq.h>
|
|
|
++#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
|
++
|
|
|
++/ {
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <1>;
|
|
|
++ interrupt-parent = <&gic>;
|
|
|
++
|
|
|
++ chipcommon-a-bus@18000000 {
|
|
|
++ compatible = "simple-bus";
|
|
|
++ ranges = <0x00000000 0x18000000 0x00001000>;
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <1>;
|
|
|
++
|
|
|
++ uart0: serial@300 {
|
|
|
++ compatible = "ns16550";
|
|
|
++ reg = <0x0300 0x100>;
|
|
|
++ interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
++ clocks = <&iprocslow>;
|
|
|
++ status = "disabled";
|
|
|
++ };
|
|
|
++
|
|
|
++ uart1: serial@400 {
|
|
|
++ compatible = "ns16550";
|
|
|
++ reg = <0x0400 0x100>;
|
|
|
++ interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
++ clocks = <&iprocslow>;
|
|
|
++ pinctrl-names = "default";
|
|
|
++ pinctrl-0 = <&pinmux_uart1>;
|
|
|
++ status = "disabled";
|
|
|
++ };
|
|
|
++ };
|
|
|
++
|
|
|
++ mpcore-bus@19000000 {
|
|
|
++ compatible = "simple-bus";
|
|
|
++ ranges = <0x00000000 0x19000000 0x00023000>;
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <1>;
|
|
|
++
|
|
|
++ a9pll: arm_clk@0 {
|
|
|
++ #clock-cells = <0>;
|
|
|
++ compatible = "brcm,nsp-armpll";
|
|
|
++ clocks = <&osc>;
|
|
|
++ reg = <0x00000 0x1000>;
|
|
|
++ };
|
|
|
++
|
|
|
++ scu@20000 {
|
|
|
++ compatible = "arm,cortex-a9-scu";
|
|
|
++ reg = <0x20000 0x100>;
|
|
|
++ };
|
|
|
++
|
|
|
++ timer@20200 {
|
|
|
++ compatible = "arm,cortex-a9-global-timer";
|
|
|
++ reg = <0x20200 0x100>;
|
|
|
++ interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>;
|
|
|
++ clocks = <&periph_clk>;
|
|
|
++ };
|
|
|
++
|
|
|
++ timer@20600 {
|
|
|
++ compatible = "arm,cortex-a9-twd-timer";
|
|
|
++ reg = <0x20600 0x20>;
|
|
|
++ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
|
|
|
++ IRQ_TYPE_EDGE_RISING)>;
|
|
|
++ clocks = <&periph_clk>;
|
|
|
++ };
|
|
|
++
|
|
|
++ watchdog@20620 {
|
|
|
++ compatible = "arm,cortex-a9-twd-wdt";
|
|
|
++ reg = <0x20620 0x20>;
|
|
|
++ interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) |
|
|
|
++ IRQ_TYPE_EDGE_RISING)>;
|
|
|
++ clocks = <&periph_clk>;
|
|
|
++ };
|
|
|
++
|
|
|
++ gic: interrupt-controller@21000 {
|
|
|
++ compatible = "arm,cortex-a9-gic";
|
|
|
++ #interrupt-cells = <3>;
|
|
|
++ #address-cells = <0>;
|
|
|
++ interrupt-controller;
|
|
|
++ reg = <0x21000 0x1000>,
|
|
|
++ <0x20100 0x100>;
|
|
|
++ };
|
|
|
++
|
|
|
++ L2: cache-controller@22000 {
|
|
|
++ compatible = "arm,pl310-cache";
|
|
|
++ reg = <0x22000 0x1000>;
|
|
|
++ cache-unified;
|
|
|
++ arm,shared-override;
|
|
|
++ prefetch-data = <1>;
|
|
|
++ prefetch-instr = <1>;
|
|
|
++ cache-level = <2>;
|
|
|
++ };
|
|
|
++ };
|
|
|
++
|
|
|
++ pmu {
|
|
|
++ compatible = "arm,cortex-a9-pmu";
|
|
|
++ interrupts =
|
|
|
++ <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
++ };
|
|
|
++
|
|
|
++ clocks {
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <1>;
|
|
|
++ ranges;
|
|
|
++
|
|
|
++ osc: oscillator {
|
|
|
++ #clock-cells = <0>;
|
|
|
++ compatible = "fixed-clock";
|
|
|
++ clock-frequency = <25000000>;
|
|
|
++ };
|
|
|
++
|
|
|
++ iprocmed: iprocmed {
|
|
|
++ #clock-cells = <0>;
|
|
|
++ compatible = "fixed-factor-clock";
|
|
|
++ clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
|
|
|
++ clock-div = <2>;
|
|
|
++ clock-mult = <1>;
|
|
|
++ };
|
|
|
++
|
|
|
++ iprocslow: iprocslow {
|
|
|
++ #clock-cells = <0>;
|
|
|
++ compatible = "fixed-factor-clock";
|
|
|
++ clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
|
|
|
++ clock-div = <4>;
|
|
|
++ clock-mult = <1>;
|
|
|
++ };
|
|
|
++
|
|
|
++ periph_clk: periph_clk {
|
|
|
++ #clock-cells = <0>;
|
|
|
++ compatible = "fixed-factor-clock";
|
|
|
++ clocks = <&a9pll>;
|
|
|
++ clock-div = <2>;
|
|
|
++ clock-mult = <1>;
|
|
|
++ };
|
|
|
++ };
|
|
|
++
|
|
|
++ axi@18000000 {
|
|
|
++ compatible = "brcm,bus-axi";
|
|
|
++ reg = <0x18000000 0x1000>;
|
|
|
++ ranges = <0x00000000 0x18000000 0x00100000>;
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <1>;
|
|
|
++
|
|
|
++ #interrupt-cells = <1>;
|
|
|
++ interrupt-map-mask = <0x000fffff 0xffff>;
|
|
|
++ interrupt-map =
|
|
|
++ /* ChipCommon */
|
|
|
++ <0x00000000 0 &gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++
|
|
|
++ /* Switch Register Access Block */
|
|
|
++ <0x00007000 0 &gic GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00007000 1 &gic GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00007000 2 &gic GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00007000 3 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00007000 4 &gic GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00007000 5 &gic GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00007000 6 &gic GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00007000 7 &gic GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00007000 8 &gic GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00007000 9 &gic GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00007000 10 &gic GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00007000 11 &gic GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00007000 12 &gic GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++
|
|
|
++ /* PCIe Controller 0 */
|
|
|
++ <0x00012000 0 &gic GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00012000 1 &gic GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00012000 2 &gic GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00012000 3 &gic GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00012000 4 &gic GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00012000 5 &gic GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++
|
|
|
++ /* PCIe Controller 1 */
|
|
|
++ <0x00013000 0 &gic GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00013000 1 &gic GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00013000 2 &gic GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00013000 3 &gic GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00013000 4 &gic GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00013000 5 &gic GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++
|
|
|
++ /* PCIe Controller 2 */
|
|
|
++ <0x00014000 0 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00014000 1 &gic GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00014000 2 &gic GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00014000 3 &gic GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00014000 4 &gic GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00014000 5 &gic GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++
|
|
|
++ /* USB 2.0 Controller */
|
|
|
++ <0x00021000 0 &gic GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++
|
|
|
++ /* USB 3.0 Controller */
|
|
|
++ <0x00023000 0 &gic GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++
|
|
|
++ /* Ethernet Controller 0 */
|
|
|
++ <0x00024000 0 &gic GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++
|
|
|
++ /* Ethernet Controller 1 */
|
|
|
++ <0x00025000 0 &gic GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++
|
|
|
++ /* Ethernet Controller 2 */
|
|
|
++ <0x00026000 0 &gic GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++
|
|
|
++ /* Ethernet Controller 3 */
|
|
|
++ <0x00027000 0 &gic GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++
|
|
|
++ /* NAND Controller */
|
|
|
++ <0x00028000 0 &gic GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00028000 1 &gic GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00028000 2 &gic GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00028000 3 &gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00028000 4 &gic GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00028000 5 &gic GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00028000 6 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <0x00028000 7 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
++
|
|
|
++ chipcommon: chipcommon@0 {
|
|
|
++ reg = <0x00000000 0x1000>;
|
|
|
++
|
|
|
++ gpio-controller;
|
|
|
++ #gpio-cells = <2>;
|
|
|
++ interrupt-controller;
|
|
|
++ #interrupt-cells = <2>;
|
|
|
++ };
|
|
|
++
|
|
|
++ pcie0: pcie@12000 {
|
|
|
++ reg = <0x00012000 0x1000>;
|
|
|
++ };
|
|
|
++
|
|
|
++ pcie1: pcie@13000 {
|
|
|
++ reg = <0x00013000 0x1000>;
|
|
|
++ };
|
|
|
++
|
|
|
++ pcie2: pcie@14000 {
|
|
|
++ reg = <0x00014000 0x1000>;
|
|
|
++ };
|
|
|
++
|
|
|
++ usb2: usb2@21000 {
|
|
|
++ reg = <0x00021000 0x1000>;
|
|
|
++
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <1>;
|
|
|
++ ranges;
|
|
|
++
|
|
|
++ interrupt-parent = <&gic>;
|
|
|
++
|
|
|
++ ehci: usb@21000 {
|
|
|
++ #usb-cells = <0>;
|
|
|
++
|
|
|
++ compatible = "generic-ehci";
|
|
|
++ reg = <0x00021000 0x1000>;
|
|
|
++ interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
++ phys = <&usb2_phy>;
|
|
|
++
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <0>;
|
|
|
++
|
|
|
++ ehci_port1: port@1 {
|
|
|
++ reg = <1>;
|
|
|
++ #trigger-source-cells = <0>;
|
|
|
++ };
|
|
|
++
|
|
|
++ ehci_port2: port@2 {
|
|
|
++ reg = <2>;
|
|
|
++ #trigger-source-cells = <0>;
|
|
|
++ };
|
|
|
++ };
|
|
|
++
|
|
|
++ ohci: usb@22000 {
|
|
|
++ #usb-cells = <0>;
|
|
|
++
|
|
|
++ compatible = "generic-ohci";
|
|
|
++ reg = <0x00022000 0x1000>;
|
|
|
++ interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
++
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <0>;
|
|
|
++
|
|
|
++ ohci_port1: port@1 {
|
|
|
++ reg = <1>;
|
|
|
++ #trigger-source-cells = <0>;
|
|
|
++ };
|
|
|
++
|
|
|
++ ohci_port2: port@2 {
|
|
|
++ reg = <2>;
|
|
|
++ #trigger-source-cells = <0>;
|
|
|
++ };
|
|
|
++ };
|
|
|
++ };
|
|
|
++
|
|
|
++ usb3: usb3@23000 {
|
|
|
++ reg = <0x00023000 0x1000>;
|
|
|
++
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <1>;
|
|
|
++ ranges;
|
|
|
++
|
|
|
++ interrupt-parent = <&gic>;
|
|
|
++
|
|
|
++ xhci: usb@23000 {
|
|
|
++ #usb-cells = <0>;
|
|
|
++
|
|
|
++ compatible = "generic-xhci";
|
|
|
++ reg = <0x00023000 0x1000>;
|
|
|
++ interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
++ phys = <&usb3_phy>;
|
|
|
++ phy-names = "usb";
|
|
|
++
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <0>;
|
|
|
++
|
|
|
++ xhci_port1: port@1 {
|
|
|
++ reg = <1>;
|
|
|
++ #trigger-source-cells = <0>;
|
|
|
++ };
|
|
|
++ };
|
|
|
++ };
|
|
|
++
|
|
|
++ gmac0: ethernet@24000 {
|
|
|
++ reg = <0x24000 0x800>;
|
|
|
++ };
|
|
|
++
|
|
|
++ gmac1: ethernet@25000 {
|
|
|
++ reg = <0x25000 0x800>;
|
|
|
++ };
|
|
|
++
|
|
|
++ gmac2: ethernet@26000 {
|
|
|
++ reg = <0x26000 0x800>;
|
|
|
++ };
|
|
|
++
|
|
|
++ gmac3: ethernet@27000 {
|
|
|
++ reg = <0x27000 0x800>;
|
|
|
++ };
|
|
|
++ };
|
|
|
++
|
|
|
++ pwm: pwm@18002000 {
|
|
|
++ compatible = "brcm,iproc-pwm";
|
|
|
++ reg = <0x18002000 0x28>;
|
|
|
++ clocks = <&osc>;
|
|
|
++ #pwm-cells = <3>;
|
|
|
++ status = "disabled";
|
|
|
++ };
|
|
|
++
|
|
|
++ mdio: mdio@18003000 {
|
|
|
++ compatible = "brcm,iproc-mdio";
|
|
|
++ reg = <0x18003000 0x8>;
|
|
|
++ #size-cells = <0>;
|
|
|
++ #address-cells = <1>;
|
|
|
++ };
|
|
|
++
|
|
|
++ mdio-mux@18003000 {
|
|
|
++ compatible = "mdio-mux-mmioreg", "mdio-mux";
|
|
|
++ mdio-parent-bus = <&mdio>;
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <0>;
|
|
|
++ reg = <0x18003000 0x4>;
|
|
|
++ mux-mask = <0x200>;
|
|
|
++
|
|
|
++ mdio@0 {
|
|
|
++ reg = <0x0>;
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <0>;
|
|
|
++
|
|
|
++ usb3_phy: usb3-phy@10 {
|
|
|
++ compatible = "brcm,ns-ax-usb3-phy";
|
|
|
++ reg = <0x10>;
|
|
|
++ usb3-dmp-syscon = <&usb3_dmp>;
|
|
|
++ #phy-cells = <0>;
|
|
|
++ status = "disabled";
|
|
|
++ };
|
|
|
++ };
|
|
|
++ };
|
|
|
++
|
|
|
++ usb3_dmp: syscon@18105000 {
|
|
|
++ reg = <0x18105000 0x1000>;
|
|
|
++ };
|
|
|
++
|
|
|
++ uart2: serial@18008000 {
|
|
|
++ compatible = "ns16550a";
|
|
|
++ reg = <0x18008000 0x20>;
|
|
|
++ clocks = <&iprocslow>;
|
|
|
++ interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
++ reg-shift = <2>;
|
|
|
++ status = "disabled";
|
|
|
++ };
|
|
|
++
|
|
|
++ i2c0: i2c@18009000 {
|
|
|
++ compatible = "brcm,iproc-i2c";
|
|
|
++ reg = <0x18009000 0x50>;
|
|
|
++ interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <0>;
|
|
|
++ clock-frequency = <100000>;
|
|
|
++ status = "disabled";
|
|
|
++ };
|
|
|
++
|
|
|
++ dmu-bus@1800c000 {
|
|
|
++ compatible = "simple-bus";
|
|
|
++ ranges = <0 0x1800c000 0x1000>;
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <1>;
|
|
|
++
|
|
|
++ cru-bus@100 {
|
|
|
++ compatible = "brcm,ns-cru", "simple-mfd";
|
|
|
++ reg = <0x100 0x1a4>;
|
|
|
++ ranges;
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <1>;
|
|
|
++
|
|
|
++ lcpll0: clock-controller@100 {
|
|
|
++ #clock-cells = <1>;
|
|
|
++ compatible = "brcm,nsp-lcpll0";
|
|
|
++ reg = <0x100 0x14>;
|
|
|
++ clocks = <&osc>;
|
|
|
++ clock-output-names = "lcpll0", "pcie_phy",
|
|
|
++ "sdio", "ddr_phy";
|
|
|
++ };
|
|
|
++
|
|
|
++ genpll: clock-controller@140 {
|
|
|
++ #clock-cells = <1>;
|
|
|
++ compatible = "brcm,nsp-genpll";
|
|
|
++ reg = <0x140 0x24>;
|
|
|
++ clocks = <&osc>;
|
|
|
++ clock-output-names = "genpll", "phy",
|
|
|
++ "ethernetclk",
|
|
|
++ "usbclk", "iprocfast",
|
|
|
++ "sata1", "sata2";
|
|
|
++ };
|
|
|
++
|
|
|
++ usb2_phy: phy@164 {
|
|
|
++ compatible = "brcm,ns-usb2-phy";
|
|
|
++ reg = <0x164 0x4>;
|
|
|
++ brcm,syscon-clkset = <&cru_clkset>;
|
|
|
++ clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
|
|
|
++ clock-names = "phy-ref-clk";
|
|
|
++ #phy-cells = <0>;
|
|
|
++ };
|
|
|
++
|
|
|
++ cru_clkset: syscon@180 {
|
|
|
++ compatible = "brcm,cru-clkset", "syscon";
|
|
|
++ reg = <0x180 0x4>;
|
|
|
++ };
|
|
|
++
|
|
|
++ pinctrl: pinctrl@1c0 {
|
|
|
++ compatible = "brcm,bcm4708-pinmux";
|
|
|
++ reg = <0x1c0 0x24>;
|
|
|
++ reg-names = "cru_gpio_control";
|
|
|
++
|
|
|
++ spi-pins {
|
|
|
++ groups = "spi_grp";
|
|
|
++ function = "spi";
|
|
|
++ };
|
|
|
++
|
|
|
++ pinmux_i2c: i2c-pins {
|
|
|
++ groups = "i2c_grp";
|
|
|
++ function = "i2c";
|
|
|
++ };
|
|
|
++
|
|
|
++ pinmux_pwm: pwm-pins {
|
|
|
++ groups = "pwm0_grp", "pwm1_grp",
|
|
|
++ "pwm2_grp", "pwm3_grp";
|
|
|
++ function = "pwm";
|
|
|
++ };
|
|
|
++
|
|
|
++ pinmux_uart1: uart1-pins {
|
|
|
++ groups = "uart1_grp";
|
|
|
++ function = "uart1";
|
|
|
++ };
|
|
|
++ };
|
|
|
++
|
|
|
++ thermal: thermal@2c0 {
|
|
|
++ compatible = "brcm,ns-thermal";
|
|
|
++ reg = <0x2c0 0x10>;
|
|
|
++ #thermal-sensor-cells = <0>;
|
|
|
++ };
|
|
|
++ };
|
|
|
++ };
|
|
|
++
|
|
|
++ srab: ethernet-switch@18007000 {
|
|
|
++ compatible = "brcm,bcm53011-srab", "brcm,bcm5301x-srab";
|
|
|
++ reg = <0x18007000 0x1000>;
|
|
|
++
|
|
|
++ status = "disabled";
|
|
|
++
|
|
|
++ /* ports are defined in board DTS */
|
|
|
++ ports {
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <0>;
|
|
|
++ };
|
|
|
++ };
|
|
|
++
|
|
|
++ rng: rng@18004000 {
|
|
|
++ compatible = "brcm,bcm5301x-rng";
|
|
|
++ reg = <0x18004000 0x14>;
|
|
|
++ };
|
|
|
++
|
|
|
++ nand_controller: nand-controller@18028000 {
|
|
|
++ compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand";
|
|
|
++ reg = <0x18028000 0x600>, <0x1811a408 0x600>, <0x18028f00 0x20>;
|
|
|
++ reg-names = "nand", "iproc-idm", "iproc-ext";
|
|
|
++ interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
++
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <0>;
|
|
|
++
|
|
|
++ brcm,nand-has-wp;
|
|
|
++ };
|
|
|
++
|
|
|
++ spi@18029200 {
|
|
|
++ compatible = "brcm,spi-nsp-qspi", "brcm,spi-bcm-qspi";
|
|
|
++ reg = <0x18029200 0x184>,
|
|
|
++ <0x18029000 0x124>,
|
|
|
++ <0x1811b408 0x004>,
|
|
|
++ <0x180293a0 0x01c>;
|
|
|
++ reg-names = "mspi", "bspi", "intr_regs", "intr_status_reg";
|
|
|
++ interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
|
|
|
++ <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
++ interrupt-names = "mspi_done",
|
|
|
++ "mspi_halted",
|
|
|
++ "spi_lr_fullness_reached",
|
|
|
++ "spi_lr_session_aborted",
|
|
|
++ "spi_lr_impatient",
|
|
|
++ "spi_lr_session_done",
|
|
|
++ "spi_lr_overread";
|
|
|
++ clocks = <&iprocmed>;
|
|
|
++ clock-names = "iprocmed";
|
|
|
++ num-cs = <2>;
|
|
|
++ #address-cells = <1>;
|
|
|
++ #size-cells = <0>;
|
|
|
++
|
|
|
++ spi_nor: flash@0 {
|
|
|
++ compatible = "jedec,spi-nor";
|
|
|
++ reg = <0>;
|
|
|
++ spi-max-frequency = <20000000>;
|
|
|
++ status = "disabled";
|
|
|
++
|
|
|
++ partitions {
|
|
|
++ compatible = "brcm,bcm947xx-cfe-partitions";
|
|
|
++ };
|
|
|
++ };
|
|
|
++ };
|
|
|
++
|
|
|
++ thermal-zones {
|
|
|
++ cpu_thermal: cpu-thermal {
|
|
|
++ polling-delay-passive = <0>;
|
|
|
++ polling-delay = <1000>;
|
|
|
++ coefficients = <(-556) 418000>;
|
|
|
++ thermal-sensors = <&thermal>;
|
|
|
++
|
|
|
++ trips {
|
|
|
++ cpu-crit {
|
|
|
++ temperature = <125000>;
|
|
|
++ hysteresis = <0>;
|
|
|
++ type = "critical";
|
|
|
++ };
|
|
|
++ };
|
|
|
++
|
|
|
++ cooling-maps {
|
|
|
++ };
|
|
|
++ };
|
|
|
++ };
|
|
|
++};
|
|
|
+--- /dev/null
|
|
|
++++ b/include/dt-bindings/clock/bcm-nsp.h
|
|
|
+@@ -0,0 +1,51 @@
|
|
|
++/*
|
|
|
++ * BSD LICENSE
|
|
|
++ *
|
|
|
++ * Copyright(c) 2015 Broadcom Corporation. All rights reserved.
|
|
|
++ *
|
|
|
++ * Redistribution and use in source and binary forms, with or without
|
|
|
++ * modification, are permitted provided that the following conditions
|
|
|
++ * are met:
|
|
|
++ *
|
|
|
++ * * Redistributions of source code must retain the above copyright
|
|
|
++ * notice, this list of conditions and the following disclaimer.
|
|
|
++ * * Redistributions in binary form must reproduce the above copyright
|
|
|
++ * notice, this list of conditions and the following disclaimer in
|
|
|
++ * the documentation and/or other materials provided with the
|
|
|
++ * distribution.
|
|
|
++ * * Neither the name of Broadcom Corporation nor the names of its
|
|
|
++ * contributors may be used to endorse or promote products derived
|
|
|
++ * from this software without specific prior written permission.
|
|
|
++ *
|
|
|
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
|
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
|
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
|
++ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
|
++ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
|
++ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
|
++ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
|
++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
|
++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
|
++ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
++ */
|
|
|
++
|
|
|
++#ifndef _CLOCK_BCM_NSP_H
|
|
|
++#define _CLOCK_BCM_NSP_H
|
|
|
++
|
|
|
++/* GENPLL clock channel ID */
|
|
|
++#define BCM_NSP_GENPLL 0
|
|
|
++#define BCM_NSP_GENPLL_PHY_CLK 1
|
|
|
++#define BCM_NSP_GENPLL_ENET_SW_CLK 2
|
|
|
++#define BCM_NSP_GENPLL_USB_PHY_REF_CLK 3
|
|
|
++#define BCM_NSP_GENPLL_IPROCFAST_CLK 4
|
|
|
++#define BCM_NSP_GENPLL_SATA1_CLK 5
|
|
|
++#define BCM_NSP_GENPLL_SATA2_CLK 6
|
|
|
++
|
|
|
++/* LCPLL0 clock channel ID */
|
|
|
++#define BCM_NSP_LCPLL0 0
|
|
|
++#define BCM_NSP_LCPLL0_PCIE_PHY_REF_CLK 1
|
|
|
++#define BCM_NSP_LCPLL0_SDIO_CLK 2
|
|
|
++#define BCM_NSP_LCPLL0_DDR_PHY_CLK 3
|
|
|
++
|
|
|
++#endif /* _CLOCK_BCM_NSP_H */
|