// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2018 Microsemi Corporation
 */

/ {
	#address-cells = <1>;
	#size-cells = <1>;
	compatible = "mscc,ocelot";

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			compatible = "mips,mips24KEc";
			device_type = "cpu";
			clocks = <&cpu_clk>;
			reg = <0>;
		};
	};

	aliases {
		serial0 = &uart0;
	};

	cpuintc: interrupt-controller@0 {
		#address-cells = <0>;
		#interrupt-cells = <1>;
		interrupt-controller;
		compatible = "mti,cpu-interrupt-controller";
	};

	cpu_clk: cpu-clock {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <500000000>;
	};

	sys_clk: sys-clk {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <250000000>;
	};

	ahb_clk: ahb-clk {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <250000000>;
	};

	ahb {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0 0x70000000 0x2000000>;

		interrupt-parent = <&intc>;

		cpu_ctrl: syscon@0 {
			compatible = "mscc,ocelot-cpu-syscon", "syscon";
			reg = <0x0 0x2c>;
		};

		intc: interrupt-controller@70 {
			compatible = "mscc,ocelot-icpu-intr";
			reg = <0x70 0x70>;
			#interrupt-cells = <1>;
			interrupt-controller;
			interrupt-parent = <&cpuintc>;
			interrupts = <2>;
		};

		uart0: serial@100000 {
			pinctrl-0 = <&uart_pins>;
			pinctrl-names = "default";
			compatible = "ns16550a";
			reg = <0x100000 0x20>;
			interrupts = <6>;
			clocks = <&ahb_clk>;
			reg-io-width = <4>;
			reg-shift = <2>;

			status = "disabled";
		};

		uart2: serial@100800 {
			pinctrl-0 = <&uart2_pins>;
			pinctrl-names = "default";
			compatible = "ns16550a";
			reg = <0x100800 0x20>;
			interrupts = <7>;
			clocks = <&ahb_clk>;
			reg-io-width = <4>;
			reg-shift = <2>;

			status = "disabled";
		};

		spi0: spi-master@101000 {
			#address-cells = <1>;
			#size-cells = <0>;
			compatible = "snps,dw-apb-ssi";
			reg = <0x101000 0x40>;
			num-chipselect = <4>;
			bus-num = <0>;
			reg-io-width = <4>;
			reg-shift = <2>;
			spi-max-frequency = <18000000>; /* input clock */
			clocks = <&ahb_clk>;

			status = "disabled";
		};

		switch@1010000 {
			pinctrl-0 = <&miim1_pins>;
			pinctrl-names = "default";

			compatible = "mscc,vsc7514-switch";
			reg = <0x1010000 0x10000>, /* VTSS_TO_SYS */
			      <0x1030000 0x10000>, /* VTSS_TO_REW */
			      <0x1080000 0x100>, /* VTSS_TO_DEVCPU_QS */
			      <0x10d0000 0x10000>, /* VTSS_TO_HSIO */
			      <0x11e0000 0x100>, /* VTSS_TO_DEV_0 */
			      <0x11f0000 0x100>, /* VTSS_TO_DEV_1 */
			      <0x1200000 0x100>, /* VTSS_TO_DEV_2 */
			      <0x1210000 0x100>, /* VTSS_TO_DEV_3 */
			      <0x1220000 0x100>, /* VTSS_TO_DEV_4 */
			      <0x1230000 0x100>, /* VTSS_TO_DEV_5 */
			      <0x1240000 0x100>, /* VTSS_TO_DEV_6 */
			      <0x1250000 0x100>, /* VTSS_TO_DEV_7 */
			      <0x1260000 0x100>, /* VTSS_TO_DEV_8 */
			      <0x1270000 0x100>, /* NA */
			      <0x1280000 0x100>, /* NA */
			      <0x1800000 0x80000>, /* VTSS_TO_QSYS */
			      <0x1880000 0x10000>; /* VTSS_TO_ANA */
			reg-names = "sys", "rew", "qs", "hsio", "port0",
				    "port1", "port2", "port3", "port4", "port5",
				    "port6", "port7", "port8", "port9",
				    "port10", "qsys", "ana";
			interrupts = <21 22>;
			interrupt-names = "xtr", "inj";
			status = "okay";

			ethernet-ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port0: port@0 {
					reg = <0>;
				};
				port1: port@1 {
					reg = <1>;
				};
				port2: port@2 {
					reg = <2>;
				};
				port3: port@3 {
					reg = <3>;
				};
				port4: port@4 {
					reg = <4>;
				};
				port5: port@5 {
					reg = <5>;
				};
				port6: port@6 {
					reg = <6>;
				};
				port7: port@7 {
					reg = <7>;
				};
				port8: port@8 {
					reg = <8>;
				};
				port9: port@9 {
					reg = <9>;
				};
				port10: port@10 {
					reg = <10>;
				};
			};
		};

		mdio0: mdio@107009c {
			#address-cells = <1>;
			#size-cells = <0>;
			compatible = "mscc,ocelot-miim";
			reg = <0x107009c 0x24>, <0x10700f0 0x8>;
			interrupts = <14>;
			status = "disabled";

			phy0: ethernet-phy@0 {
				reg = <0>;
			};
			phy1: ethernet-phy@1 {
				reg = <1>;
			};
			phy2: ethernet-phy@2 {
				reg = <2>;
			};
			phy3: ethernet-phy@3 {
				reg = <3>;
			};
		};

		reset@1070008 {
			compatible = "mscc,ocelot-chip-reset";
			reg = <0x1070008 0x4>;
		};

		gpio: pinctrl@1070034 {
			compatible = "mscc,ocelot-pinctrl";
			reg = <0x1070034 0x68>;
			gpio-controller;
			#gpio-cells = <2>;
			gpio-ranges = <&gpio 0 0 22>;

			sgpio_pins: sgpio-pins {
				pins = "GPIO_0", "GPIO_1", "GPIO_2", "GPIO_3";
				function = "sg0";
			};

			uart_pins: uart-pins {
				pins = "GPIO_6", "GPIO_7";
				function = "uart";
			};

			uart2_pins: uart2-pins {
				pins = "GPIO_12", "GPIO_13";
				function = "uart2";
			};

			spi_cs1_pin: spi-cs1-pin {
				pins = "GPIO_8";
				function = "si";
			};

			miim1_pins: miim1-pins {
				pins = "GPIO_14", "GPIO_15";
				function = "miim1";
			};

			spi_cs2_pin: spi-cs2-pin {
				pins = "GPIO_9";
				function = "si";
			};

			spi_cs3_pin: spi-cs3-pin {
				pins = "GPIO_16";
				function = "si";
			};

			spi_cs4_pin: spi-cs4-pin {
				pins = "GPIO_17";
				function = "si";
			};
		};

		sgpio: gpio@10700f8 {
			compatible = "mscc,ocelot-sgpio";
			status = "disabled";
			clocks = <&sys_clk>;
			pinctrl-0 = <&sgpio_pins>;
			pinctrl-names = "default";
			reg = <0x10700f8 0x100>;
			gpio-controller;
			#gpio-cells = <2>;
			gpio-ranges = <&sgpio 0 0 64>;
		};
	};
};
