18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0 OR MIT)
28c2ecf20Sopenharmony_ci/* Copyright (c) 2017 Microsemi Corporation */
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ci/ {
58c2ecf20Sopenharmony_ci	#address-cells = <1>;
68c2ecf20Sopenharmony_ci	#size-cells = <1>;
78c2ecf20Sopenharmony_ci	compatible = "mscc,ocelot";
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci	cpus {
108c2ecf20Sopenharmony_ci		#address-cells = <1>;
118c2ecf20Sopenharmony_ci		#size-cells = <0>;
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci		cpu@0 {
148c2ecf20Sopenharmony_ci			compatible = "mips,mips24KEc";
158c2ecf20Sopenharmony_ci			device_type = "cpu";
168c2ecf20Sopenharmony_ci			clocks = <&cpu_clk>;
178c2ecf20Sopenharmony_ci			reg = <0>;
188c2ecf20Sopenharmony_ci		};
198c2ecf20Sopenharmony_ci	};
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci	aliases {
228c2ecf20Sopenharmony_ci		serial0 = &uart0;
238c2ecf20Sopenharmony_ci	};
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci	cpuintc: interrupt-controller {
268c2ecf20Sopenharmony_ci		#address-cells = <0>;
278c2ecf20Sopenharmony_ci		#interrupt-cells = <1>;
288c2ecf20Sopenharmony_ci		interrupt-controller;
298c2ecf20Sopenharmony_ci		compatible = "mti,cpu-interrupt-controller";
308c2ecf20Sopenharmony_ci	};
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci	cpu_clk: cpu-clock {
338c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
348c2ecf20Sopenharmony_ci		#clock-cells = <0>;
358c2ecf20Sopenharmony_ci		clock-frequency = <500000000>;
368c2ecf20Sopenharmony_ci	};
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci	ahb_clk: ahb-clk {
398c2ecf20Sopenharmony_ci		compatible = "fixed-factor-clock";
408c2ecf20Sopenharmony_ci		#clock-cells = <0>;
418c2ecf20Sopenharmony_ci		clocks = <&cpu_clk>;
428c2ecf20Sopenharmony_ci		clock-div = <2>;
438c2ecf20Sopenharmony_ci		clock-mult = <1>;
448c2ecf20Sopenharmony_ci	};
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci	ahb@70000000 {
478c2ecf20Sopenharmony_ci		compatible = "simple-bus";
488c2ecf20Sopenharmony_ci		#address-cells = <1>;
498c2ecf20Sopenharmony_ci		#size-cells = <1>;
508c2ecf20Sopenharmony_ci		ranges = <0 0x70000000 0x2000000>;
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci		interrupt-parent = <&intc>;
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci		cpu_ctrl: syscon@0 {
558c2ecf20Sopenharmony_ci			compatible = "mscc,ocelot-cpu-syscon", "syscon";
568c2ecf20Sopenharmony_ci			reg = <0x0 0x2c>;
578c2ecf20Sopenharmony_ci		};
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci		intc: interrupt-controller@70 {
608c2ecf20Sopenharmony_ci			compatible = "mscc,ocelot-icpu-intr";
618c2ecf20Sopenharmony_ci			reg = <0x70 0x70>;
628c2ecf20Sopenharmony_ci			#interrupt-cells = <1>;
638c2ecf20Sopenharmony_ci			interrupt-controller;
648c2ecf20Sopenharmony_ci			interrupt-parent = <&cpuintc>;
658c2ecf20Sopenharmony_ci			interrupts = <2>;
668c2ecf20Sopenharmony_ci		};
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci		uart0: serial@100000 {
698c2ecf20Sopenharmony_ci			pinctrl-0 = <&uart_pins>;
708c2ecf20Sopenharmony_ci			pinctrl-names = "default";
718c2ecf20Sopenharmony_ci			compatible = "ns16550a";
728c2ecf20Sopenharmony_ci			reg = <0x100000 0x20>;
738c2ecf20Sopenharmony_ci			interrupts = <6>;
748c2ecf20Sopenharmony_ci			clocks = <&ahb_clk>;
758c2ecf20Sopenharmony_ci			reg-io-width = <4>;
768c2ecf20Sopenharmony_ci			reg-shift = <2>;
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ci			status = "disabled";
798c2ecf20Sopenharmony_ci		};
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ci		i2c: i2c@100400 {
828c2ecf20Sopenharmony_ci			compatible = "mscc,ocelot-i2c", "snps,designware-i2c";
838c2ecf20Sopenharmony_ci			pinctrl-0 = <&i2c_pins>;
848c2ecf20Sopenharmony_ci			pinctrl-names = "default";
858c2ecf20Sopenharmony_ci			reg = <0x100400 0x100>, <0x198 0x8>;
868c2ecf20Sopenharmony_ci			#address-cells = <1>;
878c2ecf20Sopenharmony_ci			#size-cells = <0>;
888c2ecf20Sopenharmony_ci			interrupts = <8>;
898c2ecf20Sopenharmony_ci			clocks = <&ahb_clk>;
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_ci			status = "disabled";
928c2ecf20Sopenharmony_ci		};
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci		uart2: serial@100800 {
958c2ecf20Sopenharmony_ci			pinctrl-0 = <&uart2_pins>;
968c2ecf20Sopenharmony_ci			pinctrl-names = "default";
978c2ecf20Sopenharmony_ci			compatible = "ns16550a";
988c2ecf20Sopenharmony_ci			reg = <0x100800 0x20>;
998c2ecf20Sopenharmony_ci			interrupts = <7>;
1008c2ecf20Sopenharmony_ci			clocks = <&ahb_clk>;
1018c2ecf20Sopenharmony_ci			reg-io-width = <4>;
1028c2ecf20Sopenharmony_ci			reg-shift = <2>;
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci			status = "disabled";
1058c2ecf20Sopenharmony_ci		};
1068c2ecf20Sopenharmony_ci
1078c2ecf20Sopenharmony_ci		spi: spi@101000 {
1088c2ecf20Sopenharmony_ci			compatible = "mscc,ocelot-spi", "snps,dw-apb-ssi";
1098c2ecf20Sopenharmony_ci			#address-cells = <1>;
1108c2ecf20Sopenharmony_ci			#size-cells = <0>;
1118c2ecf20Sopenharmony_ci			reg = <0x101000 0x100>, <0x3c 0x18>;
1128c2ecf20Sopenharmony_ci			interrupts = <9>;
1138c2ecf20Sopenharmony_ci			clocks = <&ahb_clk>;
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ci			status = "disabled";
1168c2ecf20Sopenharmony_ci		};
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ci		switch@1010000 {
1198c2ecf20Sopenharmony_ci			compatible = "mscc,vsc7514-switch";
1208c2ecf20Sopenharmony_ci			reg = <0x1010000 0x10000>,
1218c2ecf20Sopenharmony_ci			      <0x1030000 0x10000>,
1228c2ecf20Sopenharmony_ci			      <0x1080000 0x100>,
1238c2ecf20Sopenharmony_ci			      <0x10e0000 0x10000>,
1248c2ecf20Sopenharmony_ci			      <0x11e0000 0x100>,
1258c2ecf20Sopenharmony_ci			      <0x11f0000 0x100>,
1268c2ecf20Sopenharmony_ci			      <0x1200000 0x100>,
1278c2ecf20Sopenharmony_ci			      <0x1210000 0x100>,
1288c2ecf20Sopenharmony_ci			      <0x1220000 0x100>,
1298c2ecf20Sopenharmony_ci			      <0x1230000 0x100>,
1308c2ecf20Sopenharmony_ci			      <0x1240000 0x100>,
1318c2ecf20Sopenharmony_ci			      <0x1250000 0x100>,
1328c2ecf20Sopenharmony_ci			      <0x1260000 0x100>,
1338c2ecf20Sopenharmony_ci			      <0x1270000 0x100>,
1348c2ecf20Sopenharmony_ci			      <0x1280000 0x100>,
1358c2ecf20Sopenharmony_ci			      <0x1800000 0x80000>,
1368c2ecf20Sopenharmony_ci			      <0x1880000 0x10000>,
1378c2ecf20Sopenharmony_ci			      <0x1040000 0x10000>,
1388c2ecf20Sopenharmony_ci			      <0x1050000 0x10000>,
1398c2ecf20Sopenharmony_ci			      <0x1060000 0x10000>;
1408c2ecf20Sopenharmony_ci			reg-names = "sys", "rew", "qs", "ptp", "port0", "port1",
1418c2ecf20Sopenharmony_ci				    "port2", "port3", "port4", "port5", "port6",
1428c2ecf20Sopenharmony_ci				    "port7", "port8", "port9", "port10", "qsys",
1438c2ecf20Sopenharmony_ci				    "ana", "s0", "s1", "s2";
1448c2ecf20Sopenharmony_ci			interrupts = <18 21 22>;
1458c2ecf20Sopenharmony_ci			interrupt-names = "ptp_rdy", "xtr", "inj";
1468c2ecf20Sopenharmony_ci
1478c2ecf20Sopenharmony_ci			ethernet-ports {
1488c2ecf20Sopenharmony_ci				#address-cells = <1>;
1498c2ecf20Sopenharmony_ci				#size-cells = <0>;
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ci				port0: port@0 {
1528c2ecf20Sopenharmony_ci					reg = <0>;
1538c2ecf20Sopenharmony_ci				};
1548c2ecf20Sopenharmony_ci				port1: port@1 {
1558c2ecf20Sopenharmony_ci					reg = <1>;
1568c2ecf20Sopenharmony_ci				};
1578c2ecf20Sopenharmony_ci				port2: port@2 {
1588c2ecf20Sopenharmony_ci					reg = <2>;
1598c2ecf20Sopenharmony_ci				};
1608c2ecf20Sopenharmony_ci				port3: port@3 {
1618c2ecf20Sopenharmony_ci					reg = <3>;
1628c2ecf20Sopenharmony_ci				};
1638c2ecf20Sopenharmony_ci				port4: port@4 {
1648c2ecf20Sopenharmony_ci					reg = <4>;
1658c2ecf20Sopenharmony_ci				};
1668c2ecf20Sopenharmony_ci				port5: port@5 {
1678c2ecf20Sopenharmony_ci					reg = <5>;
1688c2ecf20Sopenharmony_ci				};
1698c2ecf20Sopenharmony_ci				port6: port@6 {
1708c2ecf20Sopenharmony_ci					reg = <6>;
1718c2ecf20Sopenharmony_ci				};
1728c2ecf20Sopenharmony_ci				port7: port@7 {
1738c2ecf20Sopenharmony_ci					reg = <7>;
1748c2ecf20Sopenharmony_ci				};
1758c2ecf20Sopenharmony_ci				port8: port@8 {
1768c2ecf20Sopenharmony_ci					reg = <8>;
1778c2ecf20Sopenharmony_ci				};
1788c2ecf20Sopenharmony_ci				port9: port@9 {
1798c2ecf20Sopenharmony_ci					reg = <9>;
1808c2ecf20Sopenharmony_ci				};
1818c2ecf20Sopenharmony_ci				port10: port@10 {
1828c2ecf20Sopenharmony_ci					reg = <10>;
1838c2ecf20Sopenharmony_ci				};
1848c2ecf20Sopenharmony_ci			};
1858c2ecf20Sopenharmony_ci		};
1868c2ecf20Sopenharmony_ci
1878c2ecf20Sopenharmony_ci		reset@1070008 {
1888c2ecf20Sopenharmony_ci			compatible = "mscc,ocelot-chip-reset";
1898c2ecf20Sopenharmony_ci			reg = <0x1070008 0x4>;
1908c2ecf20Sopenharmony_ci		};
1918c2ecf20Sopenharmony_ci
1928c2ecf20Sopenharmony_ci		gpio: pinctrl@1070034 {
1938c2ecf20Sopenharmony_ci			compatible = "mscc,ocelot-pinctrl";
1948c2ecf20Sopenharmony_ci			reg = <0x1070034 0x68>;
1958c2ecf20Sopenharmony_ci			gpio-controller;
1968c2ecf20Sopenharmony_ci			#gpio-cells = <2>;
1978c2ecf20Sopenharmony_ci			gpio-ranges = <&gpio 0 0 22>;
1988c2ecf20Sopenharmony_ci			interrupt-controller;
1998c2ecf20Sopenharmony_ci			interrupts = <13>;
2008c2ecf20Sopenharmony_ci			#interrupt-cells = <2>;
2018c2ecf20Sopenharmony_ci
2028c2ecf20Sopenharmony_ci			i2c_pins: i2c-pins {
2038c2ecf20Sopenharmony_ci				pins = "GPIO_16", "GPIO_17";
2048c2ecf20Sopenharmony_ci				function = "twi";
2058c2ecf20Sopenharmony_ci			};
2068c2ecf20Sopenharmony_ci
2078c2ecf20Sopenharmony_ci			uart_pins: uart-pins {
2088c2ecf20Sopenharmony_ci				pins = "GPIO_6", "GPIO_7";
2098c2ecf20Sopenharmony_ci				function = "uart";
2108c2ecf20Sopenharmony_ci			};
2118c2ecf20Sopenharmony_ci
2128c2ecf20Sopenharmony_ci			uart2_pins: uart2-pins {
2138c2ecf20Sopenharmony_ci				pins = "GPIO_12", "GPIO_13";
2148c2ecf20Sopenharmony_ci				function = "uart2";
2158c2ecf20Sopenharmony_ci			};
2168c2ecf20Sopenharmony_ci
2178c2ecf20Sopenharmony_ci			miim1: miim1 {
2188c2ecf20Sopenharmony_ci				pins = "GPIO_14", "GPIO_15";
2198c2ecf20Sopenharmony_ci				function = "miim";
2208c2ecf20Sopenharmony_ci			};
2218c2ecf20Sopenharmony_ci
2228c2ecf20Sopenharmony_ci		};
2238c2ecf20Sopenharmony_ci
2248c2ecf20Sopenharmony_ci		mdio0: mdio@107009c {
2258c2ecf20Sopenharmony_ci			#address-cells = <1>;
2268c2ecf20Sopenharmony_ci			#size-cells = <0>;
2278c2ecf20Sopenharmony_ci			compatible = "mscc,ocelot-miim";
2288c2ecf20Sopenharmony_ci			reg = <0x107009c 0x24>, <0x10700f0 0x8>;
2298c2ecf20Sopenharmony_ci			interrupts = <14>;
2308c2ecf20Sopenharmony_ci			status = "disabled";
2318c2ecf20Sopenharmony_ci
2328c2ecf20Sopenharmony_ci			phy0: ethernet-phy@0 {
2338c2ecf20Sopenharmony_ci				reg = <0>;
2348c2ecf20Sopenharmony_ci			};
2358c2ecf20Sopenharmony_ci			phy1: ethernet-phy@1 {
2368c2ecf20Sopenharmony_ci				reg = <1>;
2378c2ecf20Sopenharmony_ci			};
2388c2ecf20Sopenharmony_ci			phy2: ethernet-phy@2 {
2398c2ecf20Sopenharmony_ci				reg = <2>;
2408c2ecf20Sopenharmony_ci			};
2418c2ecf20Sopenharmony_ci			phy3: ethernet-phy@3 {
2428c2ecf20Sopenharmony_ci				reg = <3>;
2438c2ecf20Sopenharmony_ci			};
2448c2ecf20Sopenharmony_ci		};
2458c2ecf20Sopenharmony_ci
2468c2ecf20Sopenharmony_ci		mdio1: mdio@10700c0 {
2478c2ecf20Sopenharmony_ci			#address-cells = <1>;
2488c2ecf20Sopenharmony_ci			#size-cells = <0>;
2498c2ecf20Sopenharmony_ci			compatible = "mscc,ocelot-miim";
2508c2ecf20Sopenharmony_ci			reg = <0x10700c0 0x24>;
2518c2ecf20Sopenharmony_ci			interrupts = <15>;
2528c2ecf20Sopenharmony_ci			pinctrl-names = "default";
2538c2ecf20Sopenharmony_ci			pinctrl-0 = <&miim1>;
2548c2ecf20Sopenharmony_ci			status = "disabled";
2558c2ecf20Sopenharmony_ci		};
2568c2ecf20Sopenharmony_ci
2578c2ecf20Sopenharmony_ci		hsio: syscon@10d0000 {
2588c2ecf20Sopenharmony_ci			compatible = "mscc,ocelot-hsio", "syscon", "simple-mfd";
2598c2ecf20Sopenharmony_ci			reg = <0x10d0000 0x10000>;
2608c2ecf20Sopenharmony_ci
2618c2ecf20Sopenharmony_ci			serdes: serdes {
2628c2ecf20Sopenharmony_ci				compatible = "mscc,vsc7514-serdes";
2638c2ecf20Sopenharmony_ci				#phy-cells = <2>;
2648c2ecf20Sopenharmony_ci			};
2658c2ecf20Sopenharmony_ci		};
2668c2ecf20Sopenharmony_ci	};
2678c2ecf20Sopenharmony_ci};
268