18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci/ {
38c2ecf20Sopenharmony_ci	#address-cells = <1>;
48c2ecf20Sopenharmony_ci	#size-cells = <1>;
58c2ecf20Sopenharmony_ci	compatible = "brcm,bcm7125";
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci	cpus {
88c2ecf20Sopenharmony_ci		#address-cells = <1>;
98c2ecf20Sopenharmony_ci		#size-cells = <0>;
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci		mips-hpt-frequency = <202500000>;
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci		cpu@0 {
148c2ecf20Sopenharmony_ci			compatible = "brcm,bmips4380";
158c2ecf20Sopenharmony_ci			device_type = "cpu";
168c2ecf20Sopenharmony_ci			reg = <0>;
178c2ecf20Sopenharmony_ci		};
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci		cpu@1 {
208c2ecf20Sopenharmony_ci			compatible = "brcm,bmips4380";
218c2ecf20Sopenharmony_ci			device_type = "cpu";
228c2ecf20Sopenharmony_ci			reg = <1>;
238c2ecf20Sopenharmony_ci		};
248c2ecf20Sopenharmony_ci	};
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci	aliases {
278c2ecf20Sopenharmony_ci		uart0 = &uart0;
288c2ecf20Sopenharmony_ci	};
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci	cpu_intc: interrupt-controller {
318c2ecf20Sopenharmony_ci		#address-cells = <0>;
328c2ecf20Sopenharmony_ci		compatible = "mti,cpu-interrupt-controller";
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci		interrupt-controller;
358c2ecf20Sopenharmony_ci		#interrupt-cells = <1>;
368c2ecf20Sopenharmony_ci	};
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci	clocks {
398c2ecf20Sopenharmony_ci		uart_clk: uart_clk {
408c2ecf20Sopenharmony_ci			compatible = "fixed-clock";
418c2ecf20Sopenharmony_ci			#clock-cells = <0>;
428c2ecf20Sopenharmony_ci			clock-frequency = <81000000>;
438c2ecf20Sopenharmony_ci		};
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci		upg_clk: upg_clk {
468c2ecf20Sopenharmony_ci			compatible = "fixed-clock";
478c2ecf20Sopenharmony_ci			#clock-cells = <0>;
488c2ecf20Sopenharmony_ci			clock-frequency = <27000000>;
498c2ecf20Sopenharmony_ci		};
508c2ecf20Sopenharmony_ci	};
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci	rdb {
538c2ecf20Sopenharmony_ci		#address-cells = <1>;
548c2ecf20Sopenharmony_ci		#size-cells = <1>;
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci		compatible = "simple-bus";
578c2ecf20Sopenharmony_ci		ranges = <0 0x10000000 0x01000000>;
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci		periph_intc: interrupt-controller@441400 {
608c2ecf20Sopenharmony_ci			compatible = "brcm,bcm7038-l1-intc";
618c2ecf20Sopenharmony_ci			reg = <0x441400 0x30>, <0x441600 0x30>;
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci			interrupt-controller;
648c2ecf20Sopenharmony_ci			#interrupt-cells = <1>;
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci			interrupt-parent = <&cpu_intc>;
678c2ecf20Sopenharmony_ci			interrupts = <2>, <3>;
688c2ecf20Sopenharmony_ci		};
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci		sun_l2_intc: interrupt-controller@401800 {
718c2ecf20Sopenharmony_ci			compatible = "brcm,l2-intc";
728c2ecf20Sopenharmony_ci			reg = <0x401800 0x30>;
738c2ecf20Sopenharmony_ci			interrupt-controller;
748c2ecf20Sopenharmony_ci			#interrupt-cells = <1>;
758c2ecf20Sopenharmony_ci			interrupt-parent = <&periph_intc>;
768c2ecf20Sopenharmony_ci			interrupts = <23>;
778c2ecf20Sopenharmony_ci		};
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci		gisb-arb@400000 {
808c2ecf20Sopenharmony_ci			compatible = "brcm,bcm7400-gisb-arb";
818c2ecf20Sopenharmony_ci			reg = <0x400000 0xdc>;
828c2ecf20Sopenharmony_ci			native-endian;
838c2ecf20Sopenharmony_ci			interrupt-parent = <&sun_l2_intc>;
848c2ecf20Sopenharmony_ci			interrupts = <0>, <2>;
858c2ecf20Sopenharmony_ci			brcm,gisb-arb-master-mask = <0x2f7>;
868c2ecf20Sopenharmony_ci			brcm,gisb-arb-master-names = "ssp_0", "cpu_0", "pci_0",
878c2ecf20Sopenharmony_ci						     "bsp_0", "rdc_0", "rptd_0",
888c2ecf20Sopenharmony_ci						     "avd_0", "jtag_0";
898c2ecf20Sopenharmony_ci		};
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_ci		upg_irq0_intc: interrupt-controller@406780 {
928c2ecf20Sopenharmony_ci			compatible = "brcm,bcm7120-l2-intc";
938c2ecf20Sopenharmony_ci			reg = <0x406780 0x8>;
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ci			brcm,int-map-mask = <0x44>, <0xf000000>, <0x100000>;
968c2ecf20Sopenharmony_ci			brcm,int-fwd-mask = <0x70000>;
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ci			interrupt-controller;
998c2ecf20Sopenharmony_ci			#interrupt-cells = <1>;
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ci			interrupt-parent = <&periph_intc>;
1028c2ecf20Sopenharmony_ci			interrupts = <18>, <19>, <20>;
1038c2ecf20Sopenharmony_ci			interrupt-names = "upg_main", "upg_bsc", "upg_spi";
1048c2ecf20Sopenharmony_ci		};
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci		sun_top_ctrl: syscon@404000 {
1078c2ecf20Sopenharmony_ci			compatible = "brcm,bcm7125-sun-top-ctrl", "syscon";
1088c2ecf20Sopenharmony_ci			reg = <0x404000 0x60c>;
1098c2ecf20Sopenharmony_ci			native-endian;
1108c2ecf20Sopenharmony_ci		};
1118c2ecf20Sopenharmony_ci
1128c2ecf20Sopenharmony_ci		reboot {
1138c2ecf20Sopenharmony_ci			compatible = "brcm,bcm7038-reboot";
1148c2ecf20Sopenharmony_ci			syscon = <&sun_top_ctrl 0x8 0x14>;
1158c2ecf20Sopenharmony_ci		};
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ci		uart0: serial@406b00 {
1188c2ecf20Sopenharmony_ci			compatible = "ns16550a";
1198c2ecf20Sopenharmony_ci			reg = <0x406b00 0x20>;
1208c2ecf20Sopenharmony_ci			reg-io-width = <0x4>;
1218c2ecf20Sopenharmony_ci			reg-shift = <0x2>;
1228c2ecf20Sopenharmony_ci			native-endian;
1238c2ecf20Sopenharmony_ci			interrupt-parent = <&periph_intc>;
1248c2ecf20Sopenharmony_ci			interrupts = <21>;
1258c2ecf20Sopenharmony_ci			clocks = <&uart_clk>;
1268c2ecf20Sopenharmony_ci			status = "disabled";
1278c2ecf20Sopenharmony_ci		};
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ci		uart1: serial@406b40 {
1308c2ecf20Sopenharmony_ci			compatible = "ns16550a";
1318c2ecf20Sopenharmony_ci			reg = <0x406b40 0x20>;
1328c2ecf20Sopenharmony_ci			reg-io-width = <0x4>;
1338c2ecf20Sopenharmony_ci			reg-shift = <0x2>;
1348c2ecf20Sopenharmony_ci			native-endian;
1358c2ecf20Sopenharmony_ci			interrupt-parent = <&periph_intc>;
1368c2ecf20Sopenharmony_ci			interrupts = <64>;
1378c2ecf20Sopenharmony_ci			clocks = <&uart_clk>;
1388c2ecf20Sopenharmony_ci			status = "disabled";
1398c2ecf20Sopenharmony_ci		};
1408c2ecf20Sopenharmony_ci
1418c2ecf20Sopenharmony_ci		uart2: serial@406b80 {
1428c2ecf20Sopenharmony_ci			compatible = "ns16550a";
1438c2ecf20Sopenharmony_ci			reg = <0x406b80 0x20>;
1448c2ecf20Sopenharmony_ci			reg-io-width = <0x4>;
1458c2ecf20Sopenharmony_ci			reg-shift = <0x2>;
1468c2ecf20Sopenharmony_ci			native-endian;
1478c2ecf20Sopenharmony_ci			interrupt-parent = <&periph_intc>;
1488c2ecf20Sopenharmony_ci			interrupts = <65>;
1498c2ecf20Sopenharmony_ci			clocks = <&uart_clk>;
1508c2ecf20Sopenharmony_ci			status = "disabled";
1518c2ecf20Sopenharmony_ci		};
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_ci		bsca: i2c@406200 {
1548c2ecf20Sopenharmony_ci		      clock-frequency = <390000>;
1558c2ecf20Sopenharmony_ci		      compatible = "brcm,brcmstb-i2c";
1568c2ecf20Sopenharmony_ci		      interrupt-parent = <&upg_irq0_intc>;
1578c2ecf20Sopenharmony_ci		      reg = <0x406200 0x58>;
1588c2ecf20Sopenharmony_ci		      interrupts = <24>;
1598c2ecf20Sopenharmony_ci		      interrupt-names = "upg_bsca";
1608c2ecf20Sopenharmony_ci		      status = "disabled";
1618c2ecf20Sopenharmony_ci		};
1628c2ecf20Sopenharmony_ci
1638c2ecf20Sopenharmony_ci		bscb: i2c@406280 {
1648c2ecf20Sopenharmony_ci		      clock-frequency = <390000>;
1658c2ecf20Sopenharmony_ci		      compatible = "brcm,brcmstb-i2c";
1668c2ecf20Sopenharmony_ci		      interrupt-parent = <&upg_irq0_intc>;
1678c2ecf20Sopenharmony_ci		      reg = <0x406280 0x58>;
1688c2ecf20Sopenharmony_ci		      interrupts = <25>;
1698c2ecf20Sopenharmony_ci		      interrupt-names = "upg_bscb";
1708c2ecf20Sopenharmony_ci		      status = "disabled";
1718c2ecf20Sopenharmony_ci		};
1728c2ecf20Sopenharmony_ci
1738c2ecf20Sopenharmony_ci		bscc: i2c@406300 {
1748c2ecf20Sopenharmony_ci		      clock-frequency = <390000>;
1758c2ecf20Sopenharmony_ci		      compatible = "brcm,brcmstb-i2c";
1768c2ecf20Sopenharmony_ci		      interrupt-parent = <&upg_irq0_intc>;
1778c2ecf20Sopenharmony_ci		      reg = <0x406300 0x58>;
1788c2ecf20Sopenharmony_ci		      interrupts = <26>;
1798c2ecf20Sopenharmony_ci		      interrupt-names = "upg_bscc";
1808c2ecf20Sopenharmony_ci		      status = "disabled";
1818c2ecf20Sopenharmony_ci		};
1828c2ecf20Sopenharmony_ci
1838c2ecf20Sopenharmony_ci		bscd: i2c@406380 {
1848c2ecf20Sopenharmony_ci		      clock-frequency = <390000>;
1858c2ecf20Sopenharmony_ci		      compatible = "brcm,brcmstb-i2c";
1868c2ecf20Sopenharmony_ci		      interrupt-parent = <&upg_irq0_intc>;
1878c2ecf20Sopenharmony_ci		      reg = <0x406380 0x58>;
1888c2ecf20Sopenharmony_ci		      interrupts = <27>;
1898c2ecf20Sopenharmony_ci		      interrupt-names = "upg_bscd";
1908c2ecf20Sopenharmony_ci		      status = "disabled";
1918c2ecf20Sopenharmony_ci		};
1928c2ecf20Sopenharmony_ci
1938c2ecf20Sopenharmony_ci		pwma: pwm@406580 {
1948c2ecf20Sopenharmony_ci			compatible = "brcm,bcm7038-pwm";
1958c2ecf20Sopenharmony_ci			reg = <0x406580 0x28>;
1968c2ecf20Sopenharmony_ci			#pwm-cells = <2>;
1978c2ecf20Sopenharmony_ci			clocks = <&upg_clk>;
1988c2ecf20Sopenharmony_ci			status = "disabled";
1998c2ecf20Sopenharmony_ci		};
2008c2ecf20Sopenharmony_ci
2018c2ecf20Sopenharmony_ci		watchdog: watchdog@4067e8 {
2028c2ecf20Sopenharmony_ci			clocks = <&upg_clk>;
2038c2ecf20Sopenharmony_ci			compatible = "brcm,bcm7038-wdt";
2048c2ecf20Sopenharmony_ci			reg = <0x4067e8 0x14>;
2058c2ecf20Sopenharmony_ci			status = "disabled";
2068c2ecf20Sopenharmony_ci		};
2078c2ecf20Sopenharmony_ci
2088c2ecf20Sopenharmony_ci		upg_gio: gpio@406700 {
2098c2ecf20Sopenharmony_ci			compatible = "brcm,brcmstb-gpio";
2108c2ecf20Sopenharmony_ci			reg = <0x406700 0x80>;
2118c2ecf20Sopenharmony_ci			#gpio-cells = <2>;
2128c2ecf20Sopenharmony_ci			#interrupt-cells = <2>;
2138c2ecf20Sopenharmony_ci			gpio-controller;
2148c2ecf20Sopenharmony_ci			interrupt-controller;
2158c2ecf20Sopenharmony_ci			interrupt-parent = <&upg_irq0_intc>;
2168c2ecf20Sopenharmony_ci			interrupts = <6>;
2178c2ecf20Sopenharmony_ci			brcm,gpio-bank-widths = <32 32 32 18>;
2188c2ecf20Sopenharmony_ci		};
2198c2ecf20Sopenharmony_ci
2208c2ecf20Sopenharmony_ci		ehci0: usb@488300 {
2218c2ecf20Sopenharmony_ci			compatible = "brcm,bcm7125-ehci", "generic-ehci";
2228c2ecf20Sopenharmony_ci			reg = <0x488300 0x100>;
2238c2ecf20Sopenharmony_ci			native-endian;
2248c2ecf20Sopenharmony_ci			interrupt-parent = <&periph_intc>;
2258c2ecf20Sopenharmony_ci			interrupts = <60>;
2268c2ecf20Sopenharmony_ci			status = "disabled";
2278c2ecf20Sopenharmony_ci		};
2288c2ecf20Sopenharmony_ci
2298c2ecf20Sopenharmony_ci		ohci0: usb@488400 {
2308c2ecf20Sopenharmony_ci			compatible = "brcm,bcm7125-ohci", "generic-ohci";
2318c2ecf20Sopenharmony_ci			reg = <0x488400 0x100>;
2328c2ecf20Sopenharmony_ci			native-endian;
2338c2ecf20Sopenharmony_ci			interrupt-parent = <&periph_intc>;
2348c2ecf20Sopenharmony_ci			interrupts = <61>;
2358c2ecf20Sopenharmony_ci			status = "disabled";
2368c2ecf20Sopenharmony_ci		};
2378c2ecf20Sopenharmony_ci
2388c2ecf20Sopenharmony_ci		spi_l2_intc: interrupt-controller@411d00 {
2398c2ecf20Sopenharmony_ci			compatible = "brcm,l2-intc";
2408c2ecf20Sopenharmony_ci			reg = <0x411d00 0x30>;
2418c2ecf20Sopenharmony_ci			interrupt-controller;
2428c2ecf20Sopenharmony_ci			#interrupt-cells = <1>;
2438c2ecf20Sopenharmony_ci			interrupt-parent = <&periph_intc>;
2448c2ecf20Sopenharmony_ci			interrupts = <79>;
2458c2ecf20Sopenharmony_ci		};
2468c2ecf20Sopenharmony_ci
2478c2ecf20Sopenharmony_ci		qspi: spi@443000 {
2488c2ecf20Sopenharmony_ci			#address-cells = <0x1>;
2498c2ecf20Sopenharmony_ci			#size-cells = <0x0>;
2508c2ecf20Sopenharmony_ci			compatible = "brcm,spi-bcm-qspi",
2518c2ecf20Sopenharmony_ci				     "brcm,spi-brcmstb-qspi";
2528c2ecf20Sopenharmony_ci			clocks = <&upg_clk>;
2538c2ecf20Sopenharmony_ci			reg = <0x440920 0x4 0x443200 0x188 0x443000 0x50>;
2548c2ecf20Sopenharmony_ci			reg-names = "cs_reg", "hif_mspi", "bspi";
2558c2ecf20Sopenharmony_ci			interrupts = <0x0 0x1 0x2 0x3 0x4 0x5 0x6>;
2568c2ecf20Sopenharmony_ci			interrupt-parent = <&spi_l2_intc>;
2578c2ecf20Sopenharmony_ci			interrupt-names = "spi_lr_fullness_reached",
2588c2ecf20Sopenharmony_ci					  "spi_lr_session_aborted",
2598c2ecf20Sopenharmony_ci					  "spi_lr_impatient",
2608c2ecf20Sopenharmony_ci					  "spi_lr_session_done",
2618c2ecf20Sopenharmony_ci					  "spi_lr_overread",
2628c2ecf20Sopenharmony_ci					  "mspi_done",
2638c2ecf20Sopenharmony_ci					  "mspi_halted";
2648c2ecf20Sopenharmony_ci			status = "disabled";
2658c2ecf20Sopenharmony_ci		};
2668c2ecf20Sopenharmony_ci
2678c2ecf20Sopenharmony_ci		mspi: spi@406400 {
2688c2ecf20Sopenharmony_ci			#address-cells = <1>;
2698c2ecf20Sopenharmony_ci			#size-cells = <0>;
2708c2ecf20Sopenharmony_ci			compatible = "brcm,spi-bcm-qspi",
2718c2ecf20Sopenharmony_ci				     "brcm,spi-brcmstb-mspi";
2728c2ecf20Sopenharmony_ci			clocks = <&upg_clk>;
2738c2ecf20Sopenharmony_ci			reg = <0x406400 0x180>;
2748c2ecf20Sopenharmony_ci			reg-names = "mspi";
2758c2ecf20Sopenharmony_ci			interrupts = <0x14>;
2768c2ecf20Sopenharmony_ci			interrupt-parent = <&upg_irq0_intc>;
2778c2ecf20Sopenharmony_ci			interrupt-names = "mspi_done";
2788c2ecf20Sopenharmony_ci			status = "disabled";
2798c2ecf20Sopenharmony_ci		};
2808c2ecf20Sopenharmony_ci	};
2818c2ecf20Sopenharmony_ci};
282