// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Device Tree file for CZ.NIC Turris Mox Board
 * 2019 by Marek Behún <kabel@kernel.org>
 */

/dts-v1/;

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

/ {
	model = "CZ.NIC Turris Mox Board";
	compatible = "cznic,turris-mox", "marvell,armada3720",
		     "marvell,armada3710";

	aliases {
		spi0 = &spi0;
		ethernet1 = &eth1;
		mmc0 = &sdhci0;
		mmc1 = &sdhci1;
	};

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

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

	leds {
		compatible = "gpio-leds";
		red {
			label = "mox:red:activity";
			gpios = <&gpiosb 21 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "default-on";
		};
	};

	gpio-keys {
		compatible = "gpio-keys";

		reset {
			label = "reset";
			linux,code = <KEY_RESTART>;
			gpios = <&gpiosb 20 GPIO_ACTIVE_LOW>;
			debounce-interval = <60>;
		};
	};

	exp_usb3_vbus: usb3-vbus {
		compatible = "regulator-fixed";
		regulator-name = "usb3-vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		enable-active-high;
		regulator-always-on;
		gpio = <&gpiosb 0 GPIO_ACTIVE_HIGH>;
	};

	vsdc_reg: vsdc-reg {
		compatible = "regulator-gpio";
		regulator-name = "vsdc";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;

		gpios = <&gpiosb 23 GPIO_ACTIVE_HIGH>;
		gpios-states = <0>;
		states = <1800000 0x1
			  3300000 0x0>;
		enable-active-high;
	};

	vsdio_reg: vsdio-reg {
		compatible = "regulator-gpio";
		regulator-name = "vsdio";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;

		gpios = <&gpiosb 22 GPIO_ACTIVE_HIGH>;
		gpios-states = <0>;
		states = <1800000 0x1
			  3300000 0x0>;
		enable-active-high;
	};

	sdhci1_pwrseq: sdhci1-pwrseq {
		compatible = "mmc-pwrseq-simple";
		reset-gpios = <&gpionb 19 GPIO_ACTIVE_HIGH>;
		status = "okay";
	};

	sfp: sfp {
		compatible = "sff,sfp";
		i2c-bus = <&i2c0>;
		los-gpio = <&moxtet_sfp 0 GPIO_ACTIVE_HIGH>;
		tx-fault-gpio = <&moxtet_sfp 1 GPIO_ACTIVE_HIGH>;
		mod-def0-gpio = <&moxtet_sfp 2 GPIO_ACTIVE_LOW>;
		tx-disable-gpio = <&moxtet_sfp 4 GPIO_ACTIVE_HIGH>;
		rate-select0-gpio = <&moxtet_sfp 5 GPIO_ACTIVE_HIGH>;
		maximum-power-milliwatt = <3000>;

		/* enabled by U-Boot if SFP module is present */
		status = "disabled";
	};

	firmware {
		armada-3700-rwtm {
			compatible = "marvell,armada-3700-rwtm-firmware", "cznic,turris-mox-rwtm";
		};
	};
};

&i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c1_pins>;
	clock-frequency = <100000>;
	/delete-property/ mrvl,i2c-fast-mode;
	status = "okay";

	rtc@6f {
		compatible = "microchip,mcp7940x";
		reg = <0x6f>;
	};
};

&pcie0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>;
	status = "okay";
	reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
	/*
	 * U-Boot port for Turris Mox has a bug which always expects that "ranges" DT property
	 * contains exactly 2 ranges with 3 (child) address cells, 2 (parent) address cells and
	 * 2 size cells and also expects that the second range starts at 16 MB offset. If these
	 * conditions are not met then U-Boot crashes during loading kernel DTB file. PCIe address
	 * space is 128 MB long, so the best split between MEM and IO is to use fixed 16 MB window
	 * for IO and the rest 112 MB (64+32+16) for MEM, despite that maximal IO size is just 64 kB.
	 * This bug is not present in U-Boot ports for other Armada 3700 devices and is fixed in
	 * U-Boot version 2021.07. See relevant U-Boot commits (the last one contains fix):
	 * https://source.denx.de/u-boot/u-boot/-/commit/cb2ddb291ee6fcbddd6d8f4ff49089dfe580f5d7
	 * https://source.denx.de/u-boot/u-boot/-/commit/c64ac3b3185aeb3846297ad7391fc6df8ecd73bf
	 * https://source.denx.de/u-boot/u-boot/-/commit/4a82fca8e330157081fc132a591ebd99ba02ee33
	 */
	#address-cells = <3>;
	#size-cells = <2>;
	ranges = <0x81000000 0 0xe8000000   0 0xe8000000   0 0x01000000   /* Port 0 IO */
		  0x82000000 0 0xe9000000   0 0xe9000000   0 0x07000000>; /* Port 0 MEM */

	/* enabled by U-Boot if PCIe module is present */
	status = "disabled";
};

&uart0 {
	status = "okay";
};

&eth0 {
	pinctrl-names = "default";
	pinctrl-0 = <&rgmii_pins>;
	phy-mode = "rgmii-id";
	phy-handle = <&phy1>;
	status = "okay";
};

&eth1 {
	phy-mode = "2500base-x";
	managed = "in-band-status";
	phys = <&comphy0 1>;
};

&sdhci0 {
	wp-inverted;
	bus-width = <4>;
	cd-gpios = <&gpionb 10 GPIO_ACTIVE_HIGH>;
	vqmmc-supply = <&vsdc_reg>;
	marvell,pad-type = "sd";
	status = "okay";
};

&sdhci1 {
	pinctrl-names = "default";
	pinctrl-0 = <&sdio_pins>;
	non-removable;
	bus-width = <4>;
	marvell,pad-type = "sd";
	vqmmc-supply = <&vsdio_reg>;
	mmc-pwrseq = <&sdhci1_pwrseq>;
	/* forbid SDR104 for FCC purposes */
	sdhci-caps-mask = <0x2 0x0>;
	status = "okay";
};

&spi0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&spi_quad_pins &spi_cs1_pins>;
	assigned-clocks = <&nb_periph_clk 7>;
	assigned-clock-parents = <&tbg 1>;
	assigned-clock-rates = <20000000>;

	spi-flash@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <20000000>;

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

			partition@0 {
				label = "secure-firmware";
				reg = <0x0 0x20000>;
			};

			partition@20000 {
				label = "a53-firmware";
				reg = <0x20000 0x160000>;
			};

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

			partition@190000 {
				label = "Rescue system";
				reg = <0x190000 0x660000>;
			};

			partition@7f0000 {
				label = "dtb";
				reg = <0x7f0000 0x10000>;
			};
		};
	};

	moxtet: moxtet@1 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "cznic,moxtet";
		reg = <1>;
		reset-gpios = <&gpiosb 2 GPIO_ACTIVE_LOW>;
		spi-max-frequency = <10000000>;
		spi-cpol;
		spi-cpha;
		interrupt-controller;
		#interrupt-cells = <1>;
		interrupt-parent = <&gpiosb>;
		interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
		status = "okay";

		moxtet_sfp: gpio@0 {
			compatible = "cznic,moxtet-gpio";
			gpio-controller;
			#gpio-cells = <2>;
			reg = <0>;
			status = "disabled";
		};
	};
};

&usb2 {
	status = "okay";
};

&comphy2 {
	connector {
		compatible = "usb-a-connector";
		phy-supply = <&exp_usb3_vbus>;
	};
};

&usb3 {
	status = "okay";
	phys = <&comphy2 0>;
};

&mdio {
	pinctrl-names = "default";
	pinctrl-0 = <&smi_pins>;
	status = "okay";

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

	/* switch nodes are enabled by U-Boot if modules are present */
	switch0@10 {
		compatible = "marvell,mv88e6190";
		reg = <0x10 0>;
		dsa,member = <0 0>;
		interrupt-parent = <&moxtet>;
		interrupts = <MOXTET_IRQ_PERIDOT(0)>;
		status = "disabled";

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

			switch0phy1: switch0phy1@1 {
				reg = <0x1>;
			};

			switch0phy2: switch0phy2@2 {
				reg = <0x2>;
			};

			switch0phy3: switch0phy3@3 {
				reg = <0x3>;
			};

			switch0phy4: switch0phy4@4 {
				reg = <0x4>;
			};

			switch0phy5: switch0phy5@5 {
				reg = <0x5>;
			};

			switch0phy6: switch0phy6@6 {
				reg = <0x6>;
			};

			switch0phy7: switch0phy7@7 {
				reg = <0x7>;
			};

			switch0phy8: switch0phy8@8 {
				reg = <0x8>;
			};
		};

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

			port@1 {
				reg = <0x1>;
				label = "lan1";
				phy-handle = <&switch0phy1>;
			};

			port@2 {
				reg = <0x2>;
				label = "lan2";
				phy-handle = <&switch0phy2>;
			};

			port@3 {
				reg = <0x3>;
				label = "lan3";
				phy-handle = <&switch0phy3>;
			};

			port@4 {
				reg = <0x4>;
				label = "lan4";
				phy-handle = <&switch0phy4>;
			};

			port@5 {
				reg = <0x5>;
				label = "lan5";
				phy-handle = <&switch0phy5>;
			};

			port@6 {
				reg = <0x6>;
				label = "lan6";
				phy-handle = <&switch0phy6>;
			};

			port@7 {
				reg = <0x7>;
				label = "lan7";
				phy-handle = <&switch0phy7>;
			};

			port@8 {
				reg = <0x8>;
				label = "lan8";
				phy-handle = <&switch0phy8>;
			};

			port@9 {
				reg = <0x9>;
				label = "cpu";
				ethernet = <&eth1>;
				phy-mode = "2500base-x";
				managed = "in-band-status";
			};

			switch0port10: port@a {
				reg = <0xa>;
				label = "dsa";
				phy-mode = "2500base-x";
				managed = "in-band-status";
				link = <&switch1port9 &switch2port9>;
				status = "disabled";
			};

			port-sfp@a {
				reg = <0xa>;
				label = "sfp";
				sfp = <&sfp>;
				phy-mode = "sgmii";
				managed = "in-band-status";
				status = "disabled";
			};
		};
	};

	switch0@2 {
		compatible = "marvell,mv88e6085";
		reg = <0x2 0>;
		dsa,member = <0 0>;
		interrupt-parent = <&moxtet>;
		interrupts = <MOXTET_IRQ_TOPAZ>;
		status = "disabled";

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

			switch0phy1_topaz: switch0phy1@11 {
				reg = <0x11>;
			};

			switch0phy2_topaz: switch0phy2@12 {
				reg = <0x12>;
			};

			switch0phy3_topaz: switch0phy3@13 {
				reg = <0x13>;
			};

			switch0phy4_topaz: switch0phy4@14 {
				reg = <0x14>;
			};
		};

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

			port@1 {
				reg = <0x1>;
				label = "lan1";
				phy-handle = <&switch0phy1_topaz>;
			};

			port@2 {
				reg = <0x2>;
				label = "lan2";
				phy-handle = <&switch0phy2_topaz>;
			};

			port@3 {
				reg = <0x3>;
				label = "lan3";
				phy-handle = <&switch0phy3_topaz>;
			};

			port@4 {
				reg = <0x4>;
				label = "lan4";
				phy-handle = <&switch0phy4_topaz>;
			};

			port@5 {
				reg = <0x5>;
				label = "cpu";
				phy-mode = "2500base-x";
				managed = "in-band-status";
				ethernet = <&eth1>;
			};
		};
	};

	switch1@11 {
		compatible = "marvell,mv88e6190";
		reg = <0x11 0>;
		dsa,member = <0 1>;
		interrupt-parent = <&moxtet>;
		interrupts = <MOXTET_IRQ_PERIDOT(1)>;
		status = "disabled";

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

			switch1phy1: switch1phy1@1 {
				reg = <0x1>;
			};

			switch1phy2: switch1phy2@2 {
				reg = <0x2>;
			};

			switch1phy3: switch1phy3@3 {
				reg = <0x3>;
			};

			switch1phy4: switch1phy4@4 {
				reg = <0x4>;
			};

			switch1phy5: switch1phy5@5 {
				reg = <0x5>;
			};

			switch1phy6: switch1phy6@6 {
				reg = <0x6>;
			};

			switch1phy7: switch1phy7@7 {
				reg = <0x7>;
			};

			switch1phy8: switch1phy8@8 {
				reg = <0x8>;
			};
		};

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

			port@1 {
				reg = <0x1>;
				label = "lan9";
				phy-handle = <&switch1phy1>;
			};

			port@2 {
				reg = <0x2>;
				label = "lan10";
				phy-handle = <&switch1phy2>;
			};

			port@3 {
				reg = <0x3>;
				label = "lan11";
				phy-handle = <&switch1phy3>;
			};

			port@4 {
				reg = <0x4>;
				label = "lan12";
				phy-handle = <&switch1phy4>;
			};

			port@5 {
				reg = <0x5>;
				label = "lan13";
				phy-handle = <&switch1phy5>;
			};

			port@6 {
				reg = <0x6>;
				label = "lan14";
				phy-handle = <&switch1phy6>;
			};

			port@7 {
				reg = <0x7>;
				label = "lan15";
				phy-handle = <&switch1phy7>;
			};

			port@8 {
				reg = <0x8>;
				label = "lan16";
				phy-handle = <&switch1phy8>;
			};

			switch1port9: port@9 {
				reg = <0x9>;
				label = "dsa";
				phy-mode = "2500base-x";
				managed = "in-band-status";
				link = <&switch0port10>;
			};

			switch1port10: port@a {
				reg = <0xa>;
				label = "dsa";
				phy-mode = "2500base-x";
				managed = "in-band-status";
				link = <&switch2port9>;
				status = "disabled";
			};

			port-sfp@a {
				reg = <0xa>;
				label = "sfp";
				sfp = <&sfp>;
				phy-mode = "sgmii";
				managed = "in-band-status";
				status = "disabled";
			};
		};
	};

	switch1@2 {
		compatible = "marvell,mv88e6085";
		reg = <0x2 0>;
		dsa,member = <0 1>;
		interrupt-parent = <&moxtet>;
		interrupts = <MOXTET_IRQ_TOPAZ>;
		status = "disabled";

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

			switch1phy1_topaz: switch1phy1@11 {
				reg = <0x11>;
			};

			switch1phy2_topaz: switch1phy2@12 {
				reg = <0x12>;
			};

			switch1phy3_topaz: switch1phy3@13 {
				reg = <0x13>;
			};

			switch1phy4_topaz: switch1phy4@14 {
				reg = <0x14>;
			};
		};

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

			port@1 {
				reg = <0x1>;
				label = "lan9";
				phy-handle = <&switch1phy1_topaz>;
			};

			port@2 {
				reg = <0x2>;
				label = "lan10";
				phy-handle = <&switch1phy2_topaz>;
			};

			port@3 {
				reg = <0x3>;
				label = "lan11";
				phy-handle = <&switch1phy3_topaz>;
			};

			port@4 {
				reg = <0x4>;
				label = "lan12";
				phy-handle = <&switch1phy4_topaz>;
			};

			port@5 {
				reg = <0x5>;
				label = "dsa";
				phy-mode = "2500base-x";
				managed = "in-band-status";
				link = <&switch0port10>;
			};
		};
	};

	switch2@12 {
		compatible = "marvell,mv88e6190";
		reg = <0x12 0>;
		dsa,member = <0 2>;
		interrupt-parent = <&moxtet>;
		interrupts = <MOXTET_IRQ_PERIDOT(2)>;
		status = "disabled";

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

			switch2phy1: switch2phy1@1 {
				reg = <0x1>;
			};

			switch2phy2: switch2phy2@2 {
				reg = <0x2>;
			};

			switch2phy3: switch2phy3@3 {
				reg = <0x3>;
			};

			switch2phy4: switch2phy4@4 {
				reg = <0x4>;
			};

			switch2phy5: switch2phy5@5 {
				reg = <0x5>;
			};

			switch2phy6: switch2phy6@6 {
				reg = <0x6>;
			};

			switch2phy7: switch2phy7@7 {
				reg = <0x7>;
			};

			switch2phy8: switch2phy8@8 {
				reg = <0x8>;
			};
		};

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

			port@1 {
				reg = <0x1>;
				label = "lan17";
				phy-handle = <&switch2phy1>;
			};

			port@2 {
				reg = <0x2>;
				label = "lan18";
				phy-handle = <&switch2phy2>;
			};

			port@3 {
				reg = <0x3>;
				label = "lan19";
				phy-handle = <&switch2phy3>;
			};

			port@4 {
				reg = <0x4>;
				label = "lan20";
				phy-handle = <&switch2phy4>;
			};

			port@5 {
				reg = <0x5>;
				label = "lan21";
				phy-handle = <&switch2phy5>;
			};

			port@6 {
				reg = <0x6>;
				label = "lan22";
				phy-handle = <&switch2phy6>;
			};

			port@7 {
				reg = <0x7>;
				label = "lan23";
				phy-handle = <&switch2phy7>;
			};

			port@8 {
				reg = <0x8>;
				label = "lan24";
				phy-handle = <&switch2phy8>;
			};

			switch2port9: port@9 {
				reg = <0x9>;
				label = "dsa";
				phy-mode = "2500base-x";
				managed = "in-band-status";
				link = <&switch1port10 &switch0port10>;
			};

			port-sfp@a {
				reg = <0xa>;
				label = "sfp";
				sfp = <&sfp>;
				phy-mode = "sgmii";
				managed = "in-band-status";
				status = "disabled";
			};
		};
	};

	switch2@2 {
		compatible = "marvell,mv88e6085";
		reg = <0x2 0>;
		dsa,member = <0 2>;
		interrupt-parent = <&moxtet>;
		interrupts = <MOXTET_IRQ_TOPAZ>;
		status = "disabled";

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

			switch2phy1_topaz: switch2phy1@11 {
				reg = <0x11>;
			};

			switch2phy2_topaz: switch2phy2@12 {
				reg = <0x12>;
			};

			switch2phy3_topaz: switch2phy3@13 {
				reg = <0x13>;
			};

			switch2phy4_topaz: switch2phy4@14 {
				reg = <0x14>;
			};
		};

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

			port@1 {
				reg = <0x1>;
				label = "lan17";
				phy-handle = <&switch2phy1_topaz>;
			};

			port@2 {
				reg = <0x2>;
				label = "lan18";
				phy-handle = <&switch2phy2_topaz>;
			};

			port@3 {
				reg = <0x3>;
				label = "lan19";
				phy-handle = <&switch2phy3_topaz>;
			};

			port@4 {
				reg = <0x4>;
				label = "lan20";
				phy-handle = <&switch2phy4_topaz>;
			};

			port@5 {
				reg = <0x5>;
				label = "dsa";
				phy-mode = "2500base-x";
				managed = "in-band-status";
				link = <&switch1port10 &switch0port10>;
			};
		};
	};
};
