// SPDX-License-Identifier: GPL-2.0+
/dts-v1/;

#include "aspeed-g5.dtsi"
#include <dt-bindings/gpio/aspeed-gpio.h>

/ {
	model = "HXT StarDragon 4800 REP2 AST2520";
	compatible = "hxt,stardragon4800-rep2-bmc", "aspeed,ast2500";

	chosen {
		stdout-path = &uart5;
		bootargs = "console=ttyS4,115200 earlyprintk";
	};

	memory@80000000 {
		reg = <0x80000000 0x40000000>;
	};

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

	iio-hwmon-battery {
		compatible = "iio-hwmon";
		io-channels = <&adc 7>;
	};

	leds {
		compatible = "gpio-leds";

		system_fault1 {
			label = "System_fault1";
			gpios = <&gpio ASPEED_GPIO(I, 3) GPIO_ACTIVE_LOW>;
		};

		system_fault2 {
			label = "System_fault2";
			gpios = <&gpio ASPEED_GPIO(I, 2) GPIO_ACTIVE_LOW>;
		};
	};
};

&fmc {
	status = "okay";
	flash@0 {
		status = "okay";
		m25p,fast-read;
		label = "bmc";
#include "openbmc-flash-layout.dtsi"
	};
};

&spi1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_spi1_default>;
	flash@0 {
		status = "okay";
	};
};

&spi2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_spi2ck_default
			&pinctrl_spi2miso_default
			&pinctrl_spi2mosi_default
			&pinctrl_spi2cs0_default>;
};

&uart3 {
	status = "okay";

	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_txd3_default &pinctrl_rxd3_default>;
	current-speed = <115200>;
};

&uart5 {
	status = "okay";
};

&mac0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_rgmii1_default &pinctrl_mdio1_default>;
};

&mac1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_rmii2_default>;
	use-ncsi;
};

&i2c0 {
	status = "okay";
};

&i2c1 {
	status = "okay";

	tmp421@1e {
		compatible = "ti,tmp421";
		reg = <0x1e>;
	};
	tmp421@2a {
		compatible = "ti,tmp421";
		reg = <0x2a>;
	};
	tmp421@1c {
		compatible = "ti,tmp421";
		reg = <0x1c>;
	};
};

&i2c2 {
	status = "okay";
};

&i2c3 {
	status = "okay";
};

&i2c4 {
	status = "okay";
};

&i2c5 {
	status = "okay";
};

&i2c6 {
	status = "okay";

	tmp421@1f {
		compatible = "ti,tmp421";
		reg = <0x1f>;
	};
	nvt210@4c {
		compatible = "nvt210";
		reg = <0x4c>;
	};
	eeprom@50 {
		compatible = "atmel,24c128";
		reg = <0x50>;
		pagesize = <128>;
	};
};

&i2c7 {
	status = "okay";
};

&i2c8 {
	status = "okay";

	pca9641@70 {
		compatible = "nxp,pca9641";
		reg = <0x70>;
		i2c-arb {
			#address-cells = <1>;
			#size-cells = <0>;
			eeprom@50 {
				compatible = "atmel,24c02";
				reg = <0x50>;
			};
			dps650ab@58 {
				compatible = "dps650ab";
				reg = <0x58>;
			};
		};
	};

	dps650ab@58 {
		compatible = "delta,dps650ab";
		reg = <0x58>;
	};

	dps650ab@59 {
		compatible = "delta,dps650ab";
		reg = <0x59>;
	};
};

&i2c9 {
	status = "okay";
};

&vuart {
	status = "okay";
};

&gfx {
	status = "okay";
};

&pinctrl {
	aspeed,external-nodes = <&gfx &lhc>;
};

&gpio {
	pin_gpio_c7 {
		gpio-hog;
		gpios = <ASPEED_GPIO(C, 7) GPIO_ACTIVE_HIGH>;
		output-low;
		line-name = "BIOS_SPI_MUX_S";
	};
	pin_gpio_d1 {
		gpio-hog;
		gpios = <ASPEED_GPIO(D, 1) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "PHY2_RESET_N";
	};
};
