// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2020 Fii USA Inc.

/dts-v1/;
#include "nuvoton-npcm730.dtsi"

#include <dt-bindings/gpio/gpio.h>

/ {
	model = "Fii Kudo Board";
	compatible = "fii,kudo", "nuvoton,npcm730";

	aliases {
		ethernet1 = &gmac0;
		serial0 = &serial0;
		serial1 = &serial1;
		serial2 = &serial2;
		serial3 = &serial3;
		i2c1 = &i2c1;
		i2c2 = &i2c2;
		i2c3 = &i2c3;
		i2c4 = &i2c4;
		i2c5 = &i2c5;
		i2c6 = &i2c6;
		i2c7 = &i2c7;
		i2c8 = &i2c8;
		i2c9 = &i2c9;
		i2c10 = &i2c10;
		i2c11 = &i2c11;
		i2c12 = &i2c12;
		i2c13 = &i2c13;
		i2c14 = &i2c14;
		i2c15 = &i2c15;
		spi0 = &spi0;
		spi1 = &spi1;
		fiu0 = &fiu0;
		fiu1 = &fiu3;
	};

	chosen {
		stdout-path = &serial3;
	};

	memory {
		reg = <0 0x40000000>;
	};

	iio-hwmon {
		compatible = "iio-hwmon";
		io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
			<&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>;
	};

	jtag_master {
		compatible = "nuvoton,npcm750-jtag-master";
		#address-cells = <1>;
		#size-cells = <1>;

		// dev/jtag0
		dev-num = <0>;
		// pspi or gpio
		mode = "pspi";

		// pspi2
		pspi-controller = <2>;
		reg = <0xf0201000 0x1000>;
		interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&clk NPCM7XX_CLK_APB5>;

		// TCK, TDI, TDO, TMS
		jtag-gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>,
				<&gpio0 18 GPIO_ACTIVE_HIGH>,
				<&gpio0 17 GPIO_ACTIVE_HIGH>,
				<&gpio0 16 GPIO_ACTIVE_HIGH>;
	};

	leds {
		compatible = "gpio-leds";
		heartbeat {
			label = "heartbeat";
			gpios = <&gpio0 14 1>;
		};
	};

	pinctrl: pinctrl@f0800000 {
		gpio61oh_pins: gpio61oh-pins {
			pins = "GPO61/nDTR1_BOUT1/STRAP6";
			bias-disable;
			output-high;
		};
		gpio62oh_pins: gpio62oh-pins {
			pins = "GPO62/nRTST1/STRAP5";
			bias-disable;
			output-high;
		};
		gpio161ol_pins: gpio161ol-pins {
			pins = "GPIO161/nLFRAME/nESPICS";
			bias-disable;
			output-low;
		};
		gpio163i_pins: gpio163i-pins {
			pins = "GPIO163/LCLK/ESPICLK";
			bias-disable;
			input-enable;
		};
		gpio167ol_pins: gpio167ol-pins {
			pins = "GPIO167/LAD3/ESPI_IO3";
			bias-disable;
			output-low;
		};
		gpio95i_pins: gpio95i-pins {
			pins = "GPIO95/nLRESET/nESPIRST";
			bias-disable;
			input-enable;
		};
		gpio65ol_pins: gpio65ol-pins {
			pins = "GPIO65/FANIN1";
			bias-disable;
			output-low;
		};
		gpio66oh_pins: gpio66oh-pins {
			pins = "GPIO66/FANIN2";
			bias-disable;
			output-high;
		};
		gpio67oh_pins: gpio67oh-pins {
			pins = "GPIO67/FANIN3";
			bias-disable;
			output-high;
		};
		gpio68ol_pins: gpio68ol-pins {
			pins = "GPIO68/FANIN4";
			bias-disable;
			output-low;
		};
		gpio69i_pins: gpio69i-pins {
			pins = "GPIO69/FANIN5";
			bias-disable;
			input-enable;
		};
		gpio70ol_pins: gpio70ol-pins {
			pins = "GPIO70/FANIN6";
			bias-disable;
			output-low;
		};
		gpio71i_pins: gpio71i-pins {
			pins = "GPIO71/FANIN7";
			bias-disable;
			input-enable;
		};
		gpio72i_pins: gpio72i-pins {
			pins = "GPIO72/FANIN8";
			bias-disable;
			input-enable;
		};
		gpio73i_pins: gpio73i-pins {
			pins = "GPIO73/FANIN9";
			bias-disable;
			input-enable;
		};
		gpio74i_pins: gpio74i-pins {
			pins = "GPIO74/FANIN10";
			bias-disable;
			input-enable;
		};
		gpio75i_pins: gpio75i-pins {
			pins = "GPIO75/FANIN11";
			bias-disable;
			input-enable;
		};
		gpio76i_pins: gpio76i-pins {
			pins = "GPIO76/FANIN12";
			bias-disable;
			input-enable;
		};
		gpio77i_pins: gpio77i-pins {
			pins = "GPIO77/FANIN13";
			bias-disable;
			input-enable;
		};
		gpio78i_pins: gpio78i-pins {
			pins = "GPIO78/FANIN14";
			bias-disable;
			input-enable;
		};
		gpio79ol_pins: gpio79ol-pins {
			pins = "GPIO79/FANIN15";
			bias-disable;
			output-low;
		};
		gpio80oh_pins: gpio80oh-pins {
			pins = "GPIO80/PWM0";
			bias-disable;
			output-high;
		};
		gpio81i_pins: gpio81i-pins {
			pins = "GPIO81/PWM1";
			bias-disable;
			input-enable;
		};
		gpio82i_pins: gpio82i-pins {
			pins = "GPIO82/PWM2";
			bias-disable;
			input-enable;
		};
		gpio83i_pins: gpio83i-pins {
			pins = "GPIO83/PWM3";
			bias-disable;
			input-enable;
		};
		gpio144i_pins: gpio144i-pins {
			pins = "GPIO144/PWM4";
			bias-disable;
			input-enable;
		};
		gpio145i_pins: gpio145i-pins {
			pins = "GPIO145/PWM5";
			bias-disable;
			input-enable;
		};
		gpio146i_pins: gpio146i-pins {
			pins = "GPIO146/PWM6";
			bias-disable;
			input-enable;
		};
		gpio147oh_pins: gpio147oh-pins {
			pins = "GPIO147/PWM7";
			bias-disable;
			output-high;
		};
		gpio168ol_pins: gpio168ol-pins {
			pins = "GPIO168/nCLKRUN/nESPIALERT";
			bias-disable;
			output-low;
		};
		gpio169oh_pins: gpio169oh-pins {
			pins = "GPIO169/nSCIPME";
			bias-disable;
			output-high;
		};
		gpio170ol_pins: gpio170ol-pins {
			pins = "GPIO170/nSMI";
			bias-disable;
			output-low;
		};
		gpio218oh_pins: gpio218oh-pins {
			pins = "GPIO218/nWDO1";
			bias-disable;
			output-high;
		};
		gpio37i_pins: gpio37i-pins {
			pins = "GPIO37/SMB3CSDA";
			bias-disable;
			input-enable;
		};
		gpio38i_pins: gpio38i-pins {
			pins = "GPIO38/SMB3CSCL";
			bias-disable;
			input-enable;
		};
		gpio39i_pins: gpio39i-pins {
			pins = "GPIO39/SMB3BSDA";
			bias-disable;
			input-enable;
		};
		gpio40i_pins: gpio40i-pins {
			pins = "GPIO40/SMB3BSCL";
			bias-disable;
			input-enable;
		};
		gpio121i_pins: gpio121i-pins {
			pins = "GPIO121/SMB2CSCL";
			bias-disable;
			input-enable;
		};
		gpio122i_pins: gpio122i-pins {
			pins = "GPIO122/SMB2BSDA";
			bias-disable;
			input-enable;
		};
		gpio123i_pins: gpio123i-pins {
			pins = "GPIO123/SMB2BSCL";
			bias-disable;
			input-enable;
		};
		gpio124i_pins: gpio124i-pins {
			pins = "GPIO124/SMB1CSDA";
			bias-disable;
			input-enable;
		};
		gpio125i_pins: gpio125i-pins {
			pins = "GPIO125/SMB1CSCL";
			bias-disable;
			input-enable;
		};
		gpio126i_pins: gpio126i-pins {
			pins = "GPIO126/SMB1BSDA";
			bias-disable;
			input-enable;
		};
		gpio127i_pins: gpio127i-pins {
			pins = "GPIO127/SMB1BSCL";
			bias-disable;
			input-enable;
		};
		gpio136i_pins: gpio136i-pins {
			pins = "GPIO136/SD1DT0";
			bias-disable;
			input-enable;
		};
		gpio137oh_pins: gpio137oh-pins {
			pins = "GPIO137/SD1DT1";
			bias-disable;
			output-high;
		};
		gpio138i_pins: gpio138i-pins {
			pins = "GPIO138/SD1DT2";
			bias-disable;
			input-enable;
		};
		gpio139i_pins: gpio139i-pins {
			pins = "GPIO139/SD1DT3";
			bias-disable;
			input-enable;
		};
		gpio140i_pins: gpio140i-pins {
			pins = "GPIO140/SD1CLK";
			bias-disable;
			input-enable;
		};
		gpio141i_pins: gpio141i-pins {
			pins = "GPIO141/SD1WP";
			bias-disable;
			input-enable;
		};
		gpio190oh_pins: gpio190oh-pins {
			pins = "GPIO190/nPRD_SMI";
			bias-disable;
			output-high;
		};
		gpio191oh_pins: gpio191oh-pins {
			pins = "GPIO191";
			bias-disable;
			output-high;
		};
		gpio195ol_pins: gpio195ol-pins {
			pins = "GPIO195/SMB0BSDA";
			bias-disable;
			output-low;
		};
		gpio196ol_pins: gpio196ol-pins {
			pins = "GPIO196/SMB0CSCL";
			bias-disable;
			output-low;
		};
		gpio199i_pins: gpio199i-pins {
			pins = "GPIO199/SMB0DSCL";
			bias-disable;
			input-enable;
		};
		gpio202ol_pins: gpio202ol-pins {
			pins = "GPIO202/SMB0CSDA";
			bias-disable;
			output-low;
		};
	};
};

&gmac0 {
	phy-mode = "rgmii-id";
	snps,eee-force-disable;
	status = "okay";
};

&ehci1 {
	status = "okay";
};

&fiu0 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi0cs1_pins>;
	status = "okay";
	flash@0 {
		compatible = "jedec,spi-nor";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0>;
		spi-max-frequency = <5000000>;
		spi-rx-bus-width = <2>;
		label = "bmc";
		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;
			u-boot@0 {
				label = "u-boot";
				reg = <0x0000000 0xC0000>;
				read-only;
			};
			u-boot-env@100000 {
				label = "u-boot-env";
				reg = <0x00100000 0x40000>;
			};
			kernel@200000 {
				label = "kernel";
				reg = <0x0200000 0x600000>;
			};
			rofs@800000 {
				label = "rofs";
				reg = <0x800000 0x3500000>;
			};
			rwfs@3d00000 {
				label = "rwfs";
				reg = <0x3d00000 0x300000>;
			};
		};
	};
	flash@1 {
		compatible = "jedec,spi-nor";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <1>;
		spi-max-frequency = <5000000>;
		spi-rx-bus-width = <2>;
		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;
			spare1@0 {
				label = "spi0-cs1-spare1";
				reg = <0x0 0x800000>;
			};
			spare2@800000 {
				label = "spi0-cs1-spare2";
				reg = <0x800000 0x0>;
			};
		};
	};
};

&fiu3 {
	pinctrl-0 = <&spi3_pins>;
	flash@0 {
		compatible = "jedec,spi-nor";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0>;
		spi-max-frequency = <5000000>;
		spi-rx-bus-width = <2>;
		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;
			system1@0 {
				label = "bios";
				reg = <0x0 0x0>;
			};
			system2@800000 {
				label = "spi3-system2";
				reg = <0x800000 0x0>;
			};
		};
	};
};

&watchdog1 {
	status = "okay";
};

&rng {
	status = "okay";
};

&serial0 {
	status = "okay";
};

&serial1 {
	status = "okay";
};

&serial2 {
	status = "okay";
};

&serial3 {
	status = "okay";
};

&adc {
	#io-channel-cells = <1>;
	status = "okay";
};

&i2c1 {
	status = "okay";
	i2c-mux@75 {
		compatible = "nxp,pca9548";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x75>;
		i2c-mux-idle-disconnect;

		i2c@2 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <2>;

			// Rear-Fan
			max31790@58 {
				compatible = "maxim,max31790";
				reg = <0x58>;
			};
		};

		i2c@3 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <3>;

			// Mid-Fan
			max31790@58 {
				compatible = "maxim,max31790";
				reg = <0x58>;
			};
		};

		i2c@4 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <4>;

			// INLET1_T
			temperature-sensor@5c {
				compatible = "national,lm75";
				reg = <0x5c>;
			};
		};

		i2c@5 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <5>;

			// OUTLET1_T
			temperature-sensor@5c {
				compatible = "national,lm75";
				reg = <0x5c>;
			};
		};

		i2c@6 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <6>;

			// OUTLET2_T
			temperature-sensor@5c {
				compatible = "national,lm75";
				reg = <0x5c>;
			};
		};

		i2c@7 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <7>;

			// OUTLET3_T
			temperature-sensor@5c {
				compatible = "national,lm75";
				reg = <0x5c>;
			};
		};
	};
	i2c-mux@77 {
		compatible = "nxp,pca9548";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x77>;
		i2c-mux-idle-disconnect;

		i2c@2 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <2>;

			// STB-T
			pmbus@74 {
				compatible = "pmbus";
				reg = <0x74>;
			};
		};
	};
};

&i2c2 {
	status = "okay";
	smpro@4f {
		compatible = "ampere,smpro";
		reg = <0x4f>;
	};

	smpro@4e {
		compatible = "ampere,smpro";
		reg = <0x4e>;
	};
};

&i2c3 {
	status = "okay";
};

&i2c4 {
	status = "okay";
	i2c-mux@77 {
		compatible = "nxp,pca9548";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x77>;
		i2c-mux-idle-disconnect;

		i2c@0 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0>;

			// ADC sensors
			adm1266@40 {
				compatible = "adi,adm1266";
				reg = <0x40>;
			};
		};

		i2c@1 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <1>;

			// ADC sensors
			adm1266@41 {
				compatible = "adi,adm1266";
				reg = <0x41>;
			};
		};
	};
};

&i2c5 {
	status = "okay";
};

&i2c6 {
	status = "okay";
};

&i2c7 {
	status = "okay";
};

&i2c8 {
	status = "okay";
};

&i2c9 {
	status = "okay";
};

&i2c10 {
	status = "okay";
};

&i2c11 {
	status = "okay";
};

&i2c12 {
	status = "okay";
	ssif-bmc@10 {
		compatible = "ssif-bmc";
		reg = <0x10>;
	};
};

&i2c13 {
	status = "okay";
	i2c-mux@77 {
		compatible = "nxp,pca9548";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x77>;
		i2c-mux-idle-disconnect;

		i2c@3 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <3>;

			// M2_ZONE_T
			temperature-sensor@28 {
				compatible = "national,lm75";
				reg = <0x28>;
			};
		};

		i2c@4 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <4>;

			// BATT_ZONE_T
			temperature-sensor@29 {
				compatible = "national,lm75";
				reg = <0x29>;
			};
		};

		i2c@5 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <5>;

			// NBM1_ZONE_T
			temperature-sensor@28 {
				compatible = "national,lm75";
				reg = <0x28>;
			};
		};
		i2c@6 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <6>;

			// NBM2_ZONE_T
			temperature-sensor@29 {
				compatible = "national,lm75";
				reg = <0x29>;
			};
		};
	};
};

&i2c14 {
	status = "okay";
};

&i2c15 {
	status = "okay";
};

&spi0 {
	cs-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
	status = "okay";
};

&pinctrl {
	pinctrl-names = "default";
	pinctrl-0 = <
			&gpio61oh_pins
			&gpio62oh_pins
			&gpio161ol_pins
			&gpio163i_pins
			&gpio167ol_pins
			&gpio95i_pins
			&gpio65ol_pins
			&gpio66oh_pins
			&gpio67oh_pins
			&gpio68ol_pins
			&gpio69i_pins
			&gpio70ol_pins
			&gpio71i_pins
			&gpio72i_pins
			&gpio73i_pins
			&gpio74i_pins
			&gpio75i_pins
			&gpio76i_pins
			&gpio77i_pins
			&gpio78i_pins
			&gpio79ol_pins
			&gpio80oh_pins
			&gpio81i_pins
			&gpio82i_pins
			&gpio83i_pins
			&gpio144i_pins
			&gpio145i_pins
			&gpio146i_pins
			&gpio147oh_pins
			&gpio168ol_pins
			&gpio169oh_pins
			&gpio170ol_pins
			&gpio218oh_pins
			&gpio37i_pins
			&gpio38i_pins
			&gpio39i_pins
			&gpio40i_pins
			&gpio121i_pins
			&gpio122i_pins
			&gpio123i_pins
			&gpio124i_pins
			&gpio125i_pins
			&gpio126i_pins
			&gpio127i_pins
			&gpio136i_pins
			&gpio137oh_pins
			&gpio138i_pins
			&gpio139i_pins
			&gpio140i_pins
			&gpio141i_pins
			&gpio190oh_pins
			&gpio191oh_pins
			&gpio195ol_pins
			&gpio196ol_pins
			&gpio199i_pins
			&gpio202ol_pins
			>;
};

&gcr {
	serial_port_mux: mux-controller {
		compatible = "mmio-mux";
		#mux-control-cells = <1>;

		mux-reg-masks = <0x38 0x07>;
		idle-states = <2>;
	};
};
