// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Device Tree file for Thecus N2350 board
 *
 * Copyright (C) 2018-2023 Tony Dinh <mibodhi@gmail.com>
 * Copyright (C) 2018 Manuel Jung <manuel.jung@hotmail.com>
 */

/dts-v1/;
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include "armada-385.dtsi"

/ {
	model = "Thecus N2350";
	compatible = "thecus,n2350", "marvell,armada385";

	aliases {
		ethernet0 = &eth0;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	memory {
		device_type = "memory";
		reg = <0x00000000 0x40000000>; /* 1GB */
	};

	soc {
		ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
			  MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
			  MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
			  MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
			  MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;

	};

	usb3_0_phy: usb3_0_phy {
		compatible = "usb-nop-xceiv";
		vcc-supply = <&usb3_0_power>;
	};

	usb3_1_phy: usb3_1_phy {
		compatible = "usb-nop-xceiv";
		vcc-supply = <&usb3_1_power>;
	};

	gpio-keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_power_button &pmx_copy_button &pmx_reset_button>;
		pinctrl-names = "default";

		button@1 {
			label = "Power Button";
			linux,code = <KEY_POWER>;
			gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
		};

		button@2 {
			label = "Copy Button";
			linux,code = <KEY_COPY>;
			gpios = <&gpio1 20 GPIO_ACTIVE_HIGH>;
		};

		button@3 {
			label = "Reset Button";
			linux,code = <KEY_RESTART>;
			gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
		};
	};

	gpio-leds {
		compatible = "gpio-leds";
		pinctrl-0 = <&pmx_sata1_white_led
				&pmx_sata1_red_led
				&pmx_sata2_white_led
				&pmx_sata2_red_led
				&pmx_sys_white_led
				&pmx_sys_red_led
				&pmx_pwr_blue_led
				&pmx_pwr_red_led
				&pmx_usb_white_led
				&pmx_usb_red_led>;

		pinctrl-names = "default";

		white_sata1 {
			label = "n2350:white:sata1";
			gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "ide-disk1";
		};

		red_sata1 {
			label = "n2350:red:sata1";
			gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
		};

		white-sata2 {
			label = "n2350:white:sata2";
			gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>;
		};

		red-sata2 {
			label = "n2350:red:sata2";
			gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
		};

		white-sys {
			label = "n2350:white:sys";
			gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "default-on";
		};

		red-sys {
			label = "n2350:red:sys";
			gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
		};

		blue-pwr {
			label = "n2350:blue:pwr";
			gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
		};

		red-pwr {
			label = "n2350:red:pwr";
			gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>;
		};

		white-usb {
			label = "n2350:white:usb";
			gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
		};

		red-usb {
			label = "n2350:red:usb";
			gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
		};
	};

	regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;

		usb3_0_power: regulator@1 {
			compatible = "regulator-fixed";
			reg = <1>;
			regulator-name = "USB3_0_Power";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			enable-active-high;
			regulator-always-on;
			regulator-boot-on;
			gpio = <&gpio0 21 GPIO_ACTIVE_HIGH>;
		};

		usb3_1_power: regulator@2 {
			compatible = "regulator-fixed";
			reg = <1>;
			regulator-name = "USB3_1_Power";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			enable-active-high;
			regulator-always-on;
			regulator-boot-on;
			gpio = <&gpio0 24 GPIO_ACTIVE_HIGH>;
		};

		reg_sata0: regulator@3 {
			compatible = "regulator-fixed";
			regulator-name = "pwr_en_sata0";
			regulator-min-microvolt = <12000000>;
			regulator-max-microvolt = <12000000>;
			enable-active-high;
			regulator-always-on;
			regulator-boot-on;
			gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
		};

		reg_5v_sata0: v5-sata0 {
			compatible = "regulator-fixed";
			regulator-name = "v5.0-sata0";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			vin-supply = <&reg_sata0>;
		};

		reg_12v_sata0: v12-sata0 {
			compatible = "regulator-fixed";
			regulator-name = "v12.0-sata0";
			regulator-min-microvolt = <12000000>;
			regulator-max-microvolt = <12000000>;
			vin-supply = <&reg_sata0>;
		};

		reg_sata1: regulator@4 {
			regulator-name = "pwr_en_sata1";
			compatible = "regulator-fixed";
			regulator-min-microvolt = <12000000>;
			regulator-max-microvolt = <12000000>;
			enable-active-high;
			regulator-always-on;
			regulator-boot-on;
			gpio = <&gpio1 13 GPIO_ACTIVE_HIGH>;
		};

		reg_5v_sata1: v5-sata1 {
			compatible = "regulator-fixed";
			regulator-name = "v5.0-sata1";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			vin-supply = <&reg_sata1>;
		};

		reg_12v_sata1: v12-sata1 {
			compatible = "regulator-fixed";
			regulator-name = "v12.0-sata1";
			regulator-min-microvolt = <12000000>;
			regulator-max-microvolt = <12000000>;
			vin-supply = <&reg_sata1>;
		};

	};

	gpio-poweroff {
		compatible = "gpio-poweroff";
		pinctrl-0 = <&pmx_pwr_off>;
		pinctrl-names = "default";
		gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
	};

};

&ahci0 {
	status = "okay";
};

&bm {
	status = "okay";
};

&bm_bppi {
	status = "okay";
};

&eth0 {
	status = "okay";
	phy = <&phy0>;
	phy-mode = "sgmii";
	buffer-manager = <&bm>;
	bm,pool-long = <0>;
	bm,pool-short = <1>;
};

&i2c0 {
	status = "okay";
	clock-frequency = <100000>;
};

&i2c1 {
	status = "okay";
	clock-frequency = <100000>;
};

&mdio {
	phy0: ethernet-phy@0 {
		reg = <1>;
	};
};

&nand_controller {
	status = "okay";

	nand@0 {
		status = "okay";
		reg = <0>;
		label = "pxa3xx_nand-0";
		nand-rb = <0>;
		marvell,nand-keep-config;
		nand-on-flash-bbt;
		nand-ecc-strength = <4>;
		nand-ecc-step-size = <512>;

		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;

			partition@0 {
				label = "rootfs";
				reg = <0x00000000 0x20000000>;
			};

		};
	};
};

&pciec {
	status = "okay";
	/*
	 * The two PCIe units are accessible through
	 * standard PCIe slots on the board.
	 */
	pcie@1,0 {
		/* Port 0, Lane 0 */
		status = "okay";
	};
	pcie@2,0 {
		/* Port 1, Lane 0 */
		status = "okay";
	};
};

&pinctrl {
	pinctrl-names = "default";

	pmx_power_button: pmx-power-button {
		marvell,pins = "mpp49";
		marvell,function = "gpio";
	};

	pmx_copy_button: pmx-copy-button {
		marvell,pins = "mpp52";
		marvell,function = "gpio";
	};

	pmx_reset_button: pmx-reset-button {
		marvell,pins = "mpp50";
		marvell,function = "gpio";
	};

	pmx_sata1_white_led: pmx-sata1-white-led {
		marvell,pins = "mpp20";
		marvell,function = "gpio";
	};

	pmx_sata1_red_led: pmx-sata1-red-led {
		marvell,pins = "mpp46";
		marvell,function = "gpio";
	};

	pmx_sata2_white_led: pmx-sata2-white-led {
		marvell,pins = "mpp19";
		marvell,function = "gpio";
	};

	pmx_sata2_red_led: pmx-sata2-red-led {
		marvell,pins = "mpp47";
		marvell,function = "gpio";
	};

	pmx_sys_white_led: pmx-sys-white-led {
		marvell,pins = "mpp14";
		marvell,function = "gpio";
	};

	pmx_sys_red_led: pmx-sys-red-led {
		marvell,pins = "mpp15";
		marvell,function = "gpio";
	};

	pmx_buzzer: pmx-buzzer {
		marvell,pins = "mpp51";
		marvell,function = "gpio";
	};

	pmx_pwr_off: pmx-pwr-off {
		marvell,pins = "mpp54";
		marvell,function = "gpio";
	};

	pmx_pwr_blue_led: pmx-pwr-blue-led {
		marvell,pins = "mpp43";
		marvell,function = "gpio";
	};

	pmx_pwr_red_led: pmx-pwr-red-led {
		marvell,pins = "mpp18";
		marvell,function = "gpio";
	};

	pmx_usb_white_led: pmx-usb-white-led {
		marvell,pins = "mpp16";
		marvell,function = "gpio";
	};

	pmx_usb_red_led: pmx-usb-red-led {
		marvell,pins = "mpp17";
		marvell,function = "gpio";
	};
};

&sdhci {
	broken-cd;
	wp-inverted;
	bus-width = <8>;
	status = "okay";
	no-1-8-v;
};

&spi1 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi1_pins>;
	status = "okay";

	/* spi: 4M Flash Macronix MX25L3205D */
	spi-flash@0 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "macronix,mx25l3205d", "jedec,spi-nor";
		reg = <0>;

		spi-max-frequency = <108000000>;
		spi-cpha;

		partition@0 {
			label = "u-boot";
			reg = <0x00000000 0x00100000>;
		};

		partition@100000 {
			label = "u-boot-env";
			reg = <0x00100000 0x00010000>;
		};
	};
};

&uart0 {
	status = "okay";
};

&usb0 {
	status = "okay";
};

&usb3_0 {
	status = "okay";
};

&usb3_1 {
	status = "okay";
};
