// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "MPL CEC4";
	compatible = "mpl,cec4-10", "mpl,cec4", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x20000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk";
		stdout-path = &uart0;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pmx_led_health: pmx-led-health {
				marvell,pins = "mpp7";
				marvell,function = "gpo";
			};

			pmx_sata1: pmx-sata1 {
				marvell,pins = "mpp34";
				marvell,function = "sata1";
			};

			pmx_sata0: pmx-sata0 {
				marvell,pins = "mpp35";
				marvell,function = "sata0";
			};

			pmx_led_user1o: pmx-led-user1o {
				marvell,pins = "mpp40";
				marvell,function = "gpio";
			};

			pmx_led_user1g: pmx-led-user1g {
				marvell,pins = "mpp41";
				marvell,function = "gpio";
			};

			pmx_led_user0o: pmx-led-user0o {
				marvell,pins = "mpp44";
				marvell,function = "gpio";
			};

			pmx_led_user0g: pmx-led-user0g {
				marvell,pins = "mpp45";
				marvell,function = "gpio";
			};

			pmx_led_misc: pmx-led-misc {
				marvell,pins = "mpp46";
				marvell,function = "gpio";
			};

			pmx_sdio_cd: pmx-sdio-cd {
				marvell,pins = "mpp47";
				marvell,function = "gpio";
			};
		};

		i2c@11000 {
			status = "okay";

			rtc@51 {
				compatible = "nxp,pcf8563";
				reg = <0x51>;
			};

			eeprom@57 {
				compatible = "atmel,24c02";
				reg = <0x57>;
			};

		};

		serial@12000 {
			status = "okay";
		};

		rtc@10300 {
			status = "disabled";
		};

		sata@80000 {
			pinctrl-0 = <&pmx_sata0 &pmx_sata1>;
			pinctrl-names = "default";
			nr-ports = <2>;
			status = "okay";
		};

		mvsdio@90000 {
			pinctrl-0 = <&pmx_sdio &pmx_sdio_cd>;
			pinctrl-names = "default";
			status = "okay";
			cd-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
			/* No WP GPIO */
		};
	};

	gpio-leds {
		compatible = "gpio-leds";
		pinctrl-0 = < &pmx_led_health
			      &pmx_led_user1o
			      &pmx_led_user1g &pmx_led_user0o
			      &pmx_led_user0g &pmx_led_misc
			    >;
		pinctrl-names = "default";

		health {
			label = "status:green:health";
			gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
		};

		user1o {
			label = "user1:orange";
			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
			default-state = "on";
		};

		user1g {
			label = "user1:green";
			gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
			default-state = "on";
		};

		user0o {
			label = "user0:orange";
			gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
			default-state = "on";
		};

		user0g {
			label = "user0:green";
			gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
			default-state = "on";
		};

		misc {
			label = "status:orange:misc";
			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
			default-state = "on";
		};

	};
};

&nand {
	status = "okay";

	partition@0 {
		label = "uboot";
		reg = <0x0000000 0x100000>;
	};

	partition@100000 {
		label = "env";
		reg = <0x100000 0x80000>;
	};

	partition@180000 {
		label = "fdt";
		reg = <0x180000 0x80000>;
	};

	partition@200000 {
		label = "kernel";
		reg = <0x200000 0x400000>;
	};

	partition@600000 {
		label = "rootfs";
		reg = <0x600000 0x1fa00000>;
	};
};

&mdio {
	status = "okay";

	ethphy0: ethernet-phy@1 {
		reg = <1>;
	};

	ethphy1: ethernet-phy@2 {
		reg = <2>;
	};
};

&eth0 {
	status = "okay";
	ethernet0-port@0 {
		phy-handle = <&ethphy0>;
	};
};

&eth1 {
	status = "okay";
	ethernet1-port@0 {
		phy-handle = <&ethphy1>;
	};
};

&pciec {
	status = "okay";
};

&pcie0 {
	status = "okay";
};
