// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2014 Claudio Leite <leitec@staticky.com>
 *
 */

/dts-v1/;

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

/ {
	model = "D-Link DIR-665";
	compatible = "dlink,dir-665", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>; /* 128 MB */
	};

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

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pinctrl-0 =< &pmx_led_usb
				     &pmx_led_internet_blue
				     &pmx_led_internet_amber
				     &pmx_led_5g &pmx_led_status_blue
				     &pmx_led_wps &pmx_led_status_amber
				     &pmx_led_24g
				     &pmx_btn_restart &pmx_btn_wps>;
			pinctrl-names = "default";

			pmx_led_usb: pmx-led-usb {
				marvell,pins = "mpp12";
				marvell,function = "gpio";
			};
			pmx_led_internet_blue: pmx-led-internet-blue {
				marvell,pins = "mpp42";
				marvell,function = "gpio";
			};
			pmx_led_internet_amber: pmx-led-internet-amber {
				marvell,pins = "mpp43";
				marvell,function = "gpio";
			};
			pmx_led_5g: pmx-led-5g {
				marvell,pins = "mpp44";
				marvell,function = "gpio";
			};
			pmx_led_status_blue: pmx-led-status-blue {
				marvell,pins = "mpp45";
				marvell,function = "gpio";
			};
			pmx_led_wps: pmx-led-wps {
				marvell,pins = "mpp47";
				marvell,function = "gpio";
			};
			pmx_led_status_amber: pmx-led-status-amber {
				marvell,pins = "mpp48";
				marvell,function = "gpio";
			};
			pmx_led_24g: pmx-led-24g {
				marvell,pins = "mpp49";
				marvell,function = "gpio";
			};
			pmx_btn_restart: pmx-btn-restart {
				marvell,pins = "mpp28";
				marvell,function = "gpio";
			};
			pmx_btn_wps: pmx-btn-wps {
				marvell,pins = "mpp46";
				marvell,function = "gpio";
			};
		};

		spi@10600 {
			status = "okay";
			flash@0 {
				#address-cells = <1>;
				#size-cells = <1>;
				compatible = "mxicy,mx25l12805d", "jedec,spi-nor";
				spi-max-frequency = <50000000>;
				reg = <0>;

				partition@0 {
					label = "uboot";
					reg = <0x0 0x30000>;
					read-only;
				};

				partition@30000 {
					label = "nvram";
					reg = <0x30000 0x10000>;
					read-only;
				};

				partition@40000 {
					label = "kernel";
					reg = <0x40000 0x180000>;
				};

				partition@1c0000 {
					label = "rootfs";
					reg = <0x1c0000 0xe00000>;
				};

				cal_data: partition@fc0000 {
					label = "cal_data";
					reg = <0xfc0000 0x10000>;
					read-only;
				};

				partition@fd0000 {
					label = "lang_pack";
					reg = <0xfd0000 0x30000>;
					read-only;
				};
			};
		};

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

		i2c@11000 {
			status = "okay";
		};

		ehci@50000 {
			status = "okay";
		};
	};

	gpio-leds {
		compatible = "gpio-leds";

		blue-usb {
			label = "dir665:blue:usb";
			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
		};
		blue-internet {
			/* Can only be turned on if the Internet
			 * Ethernet port has Link
			 */
			label = "dir665:blue:internet";
			gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
		};
		amber-internet {
			label = "dir665:amber:internet";
			gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
		};
		blue-wifi5g {
			label = "dir665:blue:5g";
			gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
		};
		blue-status {
			label = "dir665:blue:status";
			gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
		};
		blue-wps {
			label = "dir665:blue:wps";
			gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
		};
		amber-status {
			label = "dir665:amber:status";
			gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
		};
		blue-24g {
			label = "dir665:blue:24g";
			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;

		reset {
			label = "reset";
			linux,code = <KEY_RESTART>;
			gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
		};
		wps {
			label = "wps";
			linux,code = <KEY_WPS_BUTTON>;
			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
		};
	};
};

&mdio {
	status = "okay";

	switch@0 {
		compatible = "marvell,mv88e6085";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0>;

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

			port@0 {
				reg = <0>;
				label = "lan4";
			};

			port@1 {
				reg = <1>;
				label = "lan3";
			};

			port@2 {
				reg = <2>;
				label = "lan2";
			};

			port@3 {
				reg = <3>;
				label = "lan1";
			};

			port@4 {
				reg = <4>;
				label = "wan";
			};

			port@6 {
				reg = <6>;
				label = "cpu";
				ethernet = <&eth0port>;
				fixed-link {
					speed = <1000>;
					full-duplex;
				};
			};
		};
	};
};

/* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set
 * fixed speed and duplex. */
&eth0 {
	status = "okay";

	ethernet0-port@0 {
		speed = <1000>;
		duplex = <1>;
	};
};

/* eth1 is connected to the switch as well. However DSA only supports a
 * single CPU port. So leave this port disabled to avoid confusion. */

&eth1 {
	status = "disabled";
};

/* There is no battery on the boards, so the RTC does not keep time
 * when there is no power, making it useless. */
&rtc {
	status = "disabled";
};

&pciec {
	status = "okay";
};

&pcie0 {
	status = "okay";
};
