162306a36Sopenharmony_ci/*
262306a36Sopenharmony_ci * Broadcom BCM470X / BCM5301X ARM platform code.
362306a36Sopenharmony_ci * Generic DTS part for all BCM53010, BCM53011, BCM53012, BCM53014, BCM53015,
462306a36Sopenharmony_ci * BCM53016, BCM53017, BCM53018, BCM4707, BCM4708 and BCM4709 SoCs
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci * Licensed under the GNU/GPL. See COPYING for details.
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include "bcm-ns.dtsi"
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci/ {
1262306a36Sopenharmony_ci	mpcore-bus@19000000 {
1362306a36Sopenharmony_ci		a9pll: arm_clk@0 {
1462306a36Sopenharmony_ci			#clock-cells = <0>;
1562306a36Sopenharmony_ci			compatible = "brcm,nsp-armpll";
1662306a36Sopenharmony_ci			clocks = <&osc>;
1762306a36Sopenharmony_ci			reg = <0x00000 0x1000>;
1862306a36Sopenharmony_ci		};
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci		watchdog@20620 {
2162306a36Sopenharmony_ci			compatible = "arm,cortex-a9-twd-wdt";
2262306a36Sopenharmony_ci			reg = <0x20620 0x20>;
2362306a36Sopenharmony_ci			interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) |
2462306a36Sopenharmony_ci						  IRQ_TYPE_EDGE_RISING)>;
2562306a36Sopenharmony_ci			clocks = <&periph_clk>;
2662306a36Sopenharmony_ci		};
2762306a36Sopenharmony_ci	};
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci	pmu {
3062306a36Sopenharmony_ci		compatible = "arm,cortex-a9-pmu";
3162306a36Sopenharmony_ci		interrupts =
3262306a36Sopenharmony_ci			<GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
3362306a36Sopenharmony_ci			<GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
3462306a36Sopenharmony_ci	};
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci	clocks {
3762306a36Sopenharmony_ci		#address-cells = <1>;
3862306a36Sopenharmony_ci		#size-cells = <1>;
3962306a36Sopenharmony_ci		ranges;
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci		osc: oscillator {
4262306a36Sopenharmony_ci			#clock-cells = <0>;
4362306a36Sopenharmony_ci			compatible = "fixed-clock";
4462306a36Sopenharmony_ci			clock-frequency = <25000000>;
4562306a36Sopenharmony_ci		};
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci		iprocmed: iprocmed {
4862306a36Sopenharmony_ci			#clock-cells = <0>;
4962306a36Sopenharmony_ci			compatible = "fixed-factor-clock";
5062306a36Sopenharmony_ci			clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
5162306a36Sopenharmony_ci			clock-div = <2>;
5262306a36Sopenharmony_ci			clock-mult = <1>;
5362306a36Sopenharmony_ci		};
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci		iprocslow: iprocslow {
5662306a36Sopenharmony_ci			#clock-cells = <0>;
5762306a36Sopenharmony_ci			compatible = "fixed-factor-clock";
5862306a36Sopenharmony_ci			clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
5962306a36Sopenharmony_ci			clock-div = <4>;
6062306a36Sopenharmony_ci			clock-mult = <1>;
6162306a36Sopenharmony_ci		};
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci		periph_clk: periph_clk {
6462306a36Sopenharmony_ci			#clock-cells = <0>;
6562306a36Sopenharmony_ci			compatible = "fixed-factor-clock";
6662306a36Sopenharmony_ci			clocks = <&a9pll>;
6762306a36Sopenharmony_ci			clock-div = <2>;
6862306a36Sopenharmony_ci			clock-mult = <1>;
6962306a36Sopenharmony_ci		};
7062306a36Sopenharmony_ci	};
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci	mdio-mux@18003000 {
7362306a36Sopenharmony_ci		compatible = "mdio-mux-mmioreg", "mdio-mux";
7462306a36Sopenharmony_ci		mdio-parent-bus = <&mdio>;
7562306a36Sopenharmony_ci		#address-cells = <1>;
7662306a36Sopenharmony_ci		#size-cells = <0>;
7762306a36Sopenharmony_ci		reg = <0x18003000 0x4>;
7862306a36Sopenharmony_ci		mux-mask = <0x200>;
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci		mdio@0 {
8162306a36Sopenharmony_ci			reg = <0x0>;
8262306a36Sopenharmony_ci			#address-cells = <1>;
8362306a36Sopenharmony_ci			#size-cells = <0>;
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci			usb3_phy: usb3-phy@10 {
8662306a36Sopenharmony_ci				compatible = "brcm,ns-ax-usb3-phy";
8762306a36Sopenharmony_ci				reg = <0x10>;
8862306a36Sopenharmony_ci				usb3-dmp-syscon = <&usb3_dmp>;
8962306a36Sopenharmony_ci				#phy-cells = <0>;
9062306a36Sopenharmony_ci				status = "disabled";
9162306a36Sopenharmony_ci			};
9262306a36Sopenharmony_ci		};
9362306a36Sopenharmony_ci	};
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci	usb3_dmp: syscon@18105000 {
9662306a36Sopenharmony_ci		reg = <0x18105000 0x1000>;
9762306a36Sopenharmony_ci	};
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci	i2c0: i2c@18009000 {
10062306a36Sopenharmony_ci		compatible = "brcm,iproc-i2c";
10162306a36Sopenharmony_ci		reg = <0x18009000 0x50>;
10262306a36Sopenharmony_ci		interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
10362306a36Sopenharmony_ci		#address-cells = <1>;
10462306a36Sopenharmony_ci		#size-cells = <0>;
10562306a36Sopenharmony_ci		clock-frequency = <100000>;
10662306a36Sopenharmony_ci		status = "disabled";
10762306a36Sopenharmony_ci	};
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci	dmu-bus@1800c000 {
11062306a36Sopenharmony_ci		cru-bus@100 {
11162306a36Sopenharmony_ci			lcpll0: clock-controller@100 {
11262306a36Sopenharmony_ci				#clock-cells = <1>;
11362306a36Sopenharmony_ci				compatible = "brcm,nsp-lcpll0";
11462306a36Sopenharmony_ci				reg = <0x100 0x14>;
11562306a36Sopenharmony_ci				clocks = <&osc>;
11662306a36Sopenharmony_ci				clock-output-names = "lcpll0", "pcie_phy",
11762306a36Sopenharmony_ci						     "sdio", "ddr_phy";
11862306a36Sopenharmony_ci			};
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci			genpll: clock-controller@140 {
12162306a36Sopenharmony_ci				#clock-cells = <1>;
12262306a36Sopenharmony_ci				compatible = "brcm,nsp-genpll";
12362306a36Sopenharmony_ci				reg = <0x140 0x24>;
12462306a36Sopenharmony_ci				clocks = <&osc>;
12562306a36Sopenharmony_ci				clock-output-names = "genpll", "phy",
12662306a36Sopenharmony_ci						     "ethernetclk",
12762306a36Sopenharmony_ci						     "usbclk", "iprocfast",
12862306a36Sopenharmony_ci						     "sata1", "sata2";
12962306a36Sopenharmony_ci			};
13062306a36Sopenharmony_ci		};
13162306a36Sopenharmony_ci	};
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci	spi@18029200 {
13462306a36Sopenharmony_ci		compatible = "brcm,spi-nsp-qspi", "brcm,spi-bcm-qspi";
13562306a36Sopenharmony_ci		reg = <0x18029200 0x184>,
13662306a36Sopenharmony_ci		      <0x18029000 0x124>,
13762306a36Sopenharmony_ci		      <0x1811b408 0x004>,
13862306a36Sopenharmony_ci		      <0x180293a0 0x01c>;
13962306a36Sopenharmony_ci		reg-names = "mspi", "bspi", "intr_regs", "intr_status_reg";
14062306a36Sopenharmony_ci		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
14162306a36Sopenharmony_ci			     <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
14262306a36Sopenharmony_ci			     <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
14362306a36Sopenharmony_ci			     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
14462306a36Sopenharmony_ci			     <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
14562306a36Sopenharmony_ci			     <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
14662306a36Sopenharmony_ci			     <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
14762306a36Sopenharmony_ci		interrupt-names = "mspi_done",
14862306a36Sopenharmony_ci				  "mspi_halted",
14962306a36Sopenharmony_ci				  "spi_lr_fullness_reached",
15062306a36Sopenharmony_ci				  "spi_lr_session_aborted",
15162306a36Sopenharmony_ci				  "spi_lr_impatient",
15262306a36Sopenharmony_ci				  "spi_lr_session_done",
15362306a36Sopenharmony_ci				  "spi_lr_overread";
15462306a36Sopenharmony_ci		clocks = <&iprocmed>;
15562306a36Sopenharmony_ci		num-cs = <2>;
15662306a36Sopenharmony_ci		#address-cells = <1>;
15762306a36Sopenharmony_ci		#size-cells = <0>;
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ci		spi_nor: flash@0 {
16062306a36Sopenharmony_ci			compatible = "jedec,spi-nor";
16162306a36Sopenharmony_ci			reg = <0>;
16262306a36Sopenharmony_ci			spi-max-frequency = <20000000>;
16362306a36Sopenharmony_ci			status = "disabled";
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_ci			partitions {
16662306a36Sopenharmony_ci				compatible = "brcm,bcm947xx-cfe-partitions";
16762306a36Sopenharmony_ci			};
16862306a36Sopenharmony_ci		};
16962306a36Sopenharmony_ci	};
17062306a36Sopenharmony_ci};
171