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

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

/ {
	model = "Vesnin BMC";
	compatible = "yadro,vesnin-bmc", "aspeed,ast2400";

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

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

	reserved-memory {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		vga_memory: framebuffer@5f000000 {
			no-map;
			reg = <0x5f000000 0x01000000>; /* 16MB */
		};
		flash_memory: region@5c000000 {
			no-map;
			reg = <0x5c000000 0x02000000>; /* 32M */
		};
	};

	leds {
		compatible = "gpio-leds";

		heartbeat {
			gpios = <&gpio ASPEED_GPIO(R, 4) GPIO_ACTIVE_LOW>;
		};
		power_red {
			gpios = <&gpio ASPEED_GPIO(N, 1) GPIO_ACTIVE_LOW>;
		};

		id_blue {
			gpios = <&gpio ASPEED_GPIO(O, 0) GPIO_ACTIVE_LOW>;
		};

		alarm_red {
			gpios = <&gpio ASPEED_GPIO(N, 6) GPIO_ACTIVE_LOW>;
		};

		alarm_yel {
			gpios = <&gpio ASPEED_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
		};
	};

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

		button_checkstop {
			label = "checkstop";
			linux,code = <74>;
			gpios = <&gpio ASPEED_GPIO(P, 5) GPIO_ACTIVE_LOW>;
		};

		button_identify {
			label = "identify";
			linux,code = <152>;
			gpios = <&gpio ASPEED_GPIO(O, 7) GPIO_ACTIVE_LOW>;
		};
	};
};

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

	flash@1 {
		status = "okay";
		m25p,fast-read;
		label = "alt";
	};
};

&spi {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_spi1debug_default>;

	flash@0 {
		status = "okay";
		label = "pnor";
		m25p,fast-read;
	};
};

&mac0 {
	status = "okay";

	use-ncsi;
	no-hw-checksum;

	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_rmii1_default>;
};


&uart5 {
	status = "okay";
};

&lpc_ctrl {
	status = "okay";
	memory-region = <&flash_memory>;
	flash = <&spi>;
};

&ibt {
	status = "okay";
};

&uart3 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_txd2_default &pinctrl_rxd2_default>;
};

&i2c0 {
	status = "okay";

	eeprom@50 {
		compatible = "atmel,24c256";
		reg = <0x50>;
		pagesize = <64>;
	};
};

&i2c1 {
	status = "okay";

	tmp75@49 {
		compatible = "ti,tmp75";
		reg = <0x49>;
	};
};

&i2c2 {
	status = "okay";
};

&i2c3 {
	status = "okay";
};

&i2c4 {
	status = "okay";

	occ-hwmon@50 {
		compatible = "ibm,p8-occ-hwmon";
		reg = <0x50>;
	};
};

&i2c5 {
	status = "okay";

	occ-hwmon@51 {
		compatible = "ibm,p8-occ-hwmon";
		reg = <0x51>;
	};
};

&i2c6 {
	status = "okay";

	w83795g@2f {
		compatible = "nuvoton,w83795g";
		reg = <0x2f>;
	};
};

&i2c7 {
	status = "okay";

	occ-hwmon@56 {
		compatible = "ibm,p8-occ-hwmon";
		reg = <0x56>;
	};
};

&i2c9 {
	status = "okay";
};

&i2c10 {
	status = "okay";
};

&i2c11 {
	status = "okay";

	occ-hwmon@57 {
		compatible = "ibm,p8-occ-hwmon";
		reg = <0x57>;
	};
};

&i2c12 {
	status = "okay";

	rtc@68 {
		compatible = "maxim,ds3231";
		reg = <0x68>;
	};
};

&i2c13 {
	status = "okay";
};

&vuart {
	status = "okay";
};

&wdt2 {
	aspeed,alt-boot;
};
