// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Device tree for the uDPU board.
 * Based on Marvell Armada 3720 development board (DB-88F3720-DDR3)
 * Copyright (C) 2016 Marvell
 * Copyright (C) 2019 Methode Electronics
 * Copyright (C) 2019 Telus
 *
 * Vladimir Vid <vladimir.vid@sartura.hr>
 */

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include "armada-372x.dtsi"

/ {
	model = "Methode uDPU Board";
	compatible = "methode,udpu", "marvell,armada3720";

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

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

	leds {
		pinctrl-names = "default";
		compatible = "gpio-leds";

		power1 {
			label = "udpu:green:power";
			gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
		};

		power2 {
			label = "udpu:red:power";
			gpios = <&gpionb 12 GPIO_ACTIVE_LOW>;
		};

		network1 {
			label = "udpu:green:network";
			gpios = <&gpionb 13 GPIO_ACTIVE_LOW>;
		};

		network2 {
			label = "udpu:red:network";
			gpios = <&gpionb 14 GPIO_ACTIVE_LOW>;
		};

		alarm1 {
			label = "udpu:green:alarm";
			gpios = <&gpionb 15 GPIO_ACTIVE_LOW>;
		};

		alarm2 {
			label = "udpu:red:alarm";
			gpios = <&gpionb 16 GPIO_ACTIVE_LOW>;
		};
	};

	sfp_eth0: sfp-eth0 {
		compatible = "sff,sfp";
		i2c-bus = <&i2c0>;
		los-gpios = <&gpiosb 2 GPIO_ACTIVE_HIGH>;
		mod-def0-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
		tx-disable-gpios = <&gpiosb 4 GPIO_ACTIVE_HIGH>;
		tx-fault-gpios = <&gpiosb 5 GPIO_ACTIVE_HIGH>;
		maximum-power-milliwatt = <3000>;
	};

	sfp_eth1: sfp-eth1 {
		compatible = "sff,sfp";
		i2c-bus = <&i2c1>;
		los-gpios = <&gpiosb 7 GPIO_ACTIVE_HIGH>;
		mod-def0-gpios = <&gpiosb 8 GPIO_ACTIVE_LOW>;
		tx-disable-gpios = <&gpiosb 9 GPIO_ACTIVE_HIGH>;
		tx-fault-gpios = <&gpiosb 10 GPIO_ACTIVE_HIGH>;
		maximum-power-milliwatt = <3000>;
	};
};

&sdhci0 {
	status = "okay";
	bus-width = <8>;
	mmc-ddr-1_8v;
	mmc-hs400-1_8v;
	marvell,pad-type = "fixed-1-8v";
	non-removable;
	no-sd;
	no-sdio;
};

&spi0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&spi_quad_pins>;

	flash@0 {
		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <54000000>;

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

			partition@0 {
				label = "firmware";
				reg = <0x0 0x180000>;
			};

			partition@180000 {
				label = "u-boot-env";
				reg = <0x180000 0x10000>;
			};
		};
	};
};

&pinctrl_nb {
	i2c1_recovery_pins: i2c1-recovery-pins {
		groups = "i2c1";
		function = "gpio";
	};

	i2c2_recovery_pins: i2c2-recovery-pins {
		groups = "i2c2";
		function = "gpio";
	};
};

&i2c0 {
	status = "okay";
	pinctrl-names = "default", "recovery";
	pinctrl-0 = <&i2c1_pins>;
	pinctrl-1 = <&i2c1_recovery_pins>;
	/delete-property/mrvl,i2c-fast-mode;
	scl-gpios = <&gpionb 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
	sda-gpios = <&gpionb 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
};

&i2c1 {
	status = "okay";
	pinctrl-names = "default", "recovery";
	pinctrl-0 = <&i2c2_pins>;
	pinctrl-1 = <&i2c2_recovery_pins>;
	/delete-property/mrvl,i2c-fast-mode;
	scl-gpios = <&gpionb 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
	sda-gpios = <&gpionb 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;

	nct375@48 {
		status = "okay";
		compatible = "ti,tmp75c";
		reg = <0x48>;
	};

	nct375@49 {
		status = "okay";
		compatible = "ti,tmp75c";
		reg = <0x49>;
	};
};

&eth0 {
	phy-mode = "sgmii";
	status = "okay";
	managed = "in-band-status";
	phys = <&comphy1 0>;
	sfp = <&sfp_eth0>;
};

&eth1 {
	phy-mode = "sgmii";
	status = "okay";
	managed = "in-band-status";
	phys = <&comphy0 1>;
	sfp = <&sfp_eth1>;
};

&usb3 {
	status = "okay";
	phys = <&usb2_utmi_otg_phy>;
	phy-names = "usb2-utmi-otg-phy";
};

&uart0 {
	status = "okay";
};
