// SPDX-License-Identifier: GPL-2.0+
/*
 * Device Tree file for Lenovo Hr855xg2 platform
 *
 * Copyright (C) 2019-present Lenovo
 */

/dts-v1/;

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

/ {
	model = "HR855XG2 BMC";
	compatible = "lenovo,hr855xg2-bmc", "aspeed,ast2500";

	aliases {
		i2c14 = &i2c_riser1;
		i2c15 = &i2c_riser2;
		i2c16 = &i2c_riser3;
		i2c17 = &i2c_M2;
		i2c18 = &channel_0;
		i2c19 = &channel_1;
		i2c20 = &channel_2;
		i2c21 = &channel_3;
	};

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

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

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

		flash_memory: region@98000000 {
			no-map;
			reg = <0x98000000 0x00100000>; /* 1M */
		};

		gfx_memory: framebuffer {
			size = <0x01000000>;
			alignment = <0x01000000>;
			compatible = "shared-dma-pool";
			reusable;
		};
	};

	leds {
		compatible = "gpio-leds";

		heartbeat {
			gpios = <&gpio ASPEED_GPIO(C, 7) GPIO_ACTIVE_LOW>;
		};

		fault {
			gpios = <&gpio ASPEED_GPIO(G, 3) GPIO_ACTIVE_LOW>;
		};
	};

	iio-hwmon {
		compatible = "iio-hwmon";
		io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
		<&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>,
		<&adc 8>, <&adc 9>, <&adc 10>,<&adc 11>,
		<&adc 12>,<&adc 13>,<&adc 14>;
	};

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

};

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

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

&lpc_snoop {
	status = "okay";
	snoop-ports = <0x80>;
};

&uart1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_txd1_default
			&pinctrl_rxd1_default>;
};

&uart2 {
	/* Rear RS-232 connector */
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_txd2_default
			&pinctrl_rxd2_default
			&pinctrl_nrts2_default
			&pinctrl_ndtr2_default
			&pinctrl_ndsr2_default
			&pinctrl_ncts2_default
			&pinctrl_ndcd2_default
			&pinctrl_nri2_default>;
};

&uart3 {
	status = "okay";
};

&uart5 {
	status = "okay";
};

&ibt {
	status = "okay";
};

&mac0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_rmii1_default>;
	clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>,
		 <&syscon ASPEED_CLK_MAC1RCLK>;
	clock-names = "MACCLK", "RCLK";
	use-ncsi;
};

&mac1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>;
};

&adc {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_adc0_default
			&pinctrl_adc1_default
			&pinctrl_adc2_default
			&pinctrl_adc3_default
			&pinctrl_adc4_default
			&pinctrl_adc5_default
			&pinctrl_adc6_default
			&pinctrl_adc7_default
			&pinctrl_adc8_default
			&pinctrl_adc9_default
			&pinctrl_adc10_default
			&pinctrl_adc11_default
			&pinctrl_adc12_default
			&pinctrl_adc13_default
			&pinctrl_adc14_default
			&pinctrl_adc15_default>;
};

&i2c0 {
	status = "okay";

	i2c-mux@70 {
		compatible = "nxp,pca9545";
		reg = <0x70>;
		#address-cells = <1>;
		#size-cells = <0>;

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

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

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

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

&i2c1 {
	status = "okay";
	bus-frequency = <90000>;
	HotSwap@10 {
		compatible = "adi,adm1272";
		reg = <0x10>;
	};

	VR@45 {
		compatible = "pmbus";
		reg = <0x45>;
	};
};

&i2c2 {
	status = "okay";
};

&i2c3 {
	status = "okay";
	i2c-mux@70 {
		compatible = "nxp,pca9546";
		reg = <0x70>;
		#address-cells = <1>;
		#size-cells = <0>;

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

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

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

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

&i2c4 {
	status = "okay";
};

&i2c5 {
	status = "okay";
};

&i2c6 {
	status = "okay";
	/* temp1 */
	tmp75@49 {
		compatible = "national,lm75";
		reg = <0x49>;
	};

	/* temp2 */
	tmp75@4d {
		compatible = "national,lm75";
		reg = <0x4d>;
	};

	eeprom@54 {
		compatible = "atmel,24c256";
		reg = <0x54>;
		pagesize = <16>;
	};
};

&i2c7 {
	status = "okay";
};

&i2c8 {
	status = "okay";
};

&i2c9 {
	status = "okay";
};

&i2c10 {
	status = "okay";
};

&i2c11 {
	status = "okay";
};

&i2c13 {
	status = "okay";
};

&ehci1 {
	status = "okay";
};

&uhci {
	status = "okay";
};

&gfx {
	status = "okay";
	memory-region = <&gfx_memory>;
};

&pwm_tacho {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pwm0_default
	&pinctrl_pwm1_default
	&pinctrl_pwm2_default
	&pinctrl_pwm3_default
	&pinctrl_pwm4_default
	&pinctrl_pwm5_default
	&pinctrl_pwm6_default
	&pinctrl_pwm7_default>;

	fan@0 {
		reg = <0x00>;
		aspeed,fan-tach-ch = /bits/ 8 <0x00>;
	};

	fan@1 {
		reg = <0x00>;
		aspeed,fan-tach-ch = /bits/ 8 <0x01>;
	};

	fan@2 {
		reg = <0x01>;
		aspeed,fan-tach-ch = /bits/ 8 <0x02>;
	};

	fan@3 {
		reg = <0x01>;
		aspeed,fan-tach-ch = /bits/ 8 <0x03>;
	};

	fan@4 {
		reg = <0x02>;
		aspeed,fan-tach-ch = /bits/ 8 <0x04>;
	};

	fan@5 {
		reg = <0x02>;
		aspeed,fan-tach-ch = /bits/ 8 <0x05>;
	};

	fan@6 {
		reg = <0x03>;
		aspeed,fan-tach-ch = /bits/ 8 <0x06>;
	};

	fan@7 {
		reg = <0x03>;
		aspeed,fan-tach-ch = /bits/ 8 <0x07>;
	};

	fan@8 {
		reg = <0x04>;
		aspeed,fan-tach-ch = /bits/ 8 <0x08>;
	};

	fan@9 {
		reg = <0x04>;
		aspeed,fan-tach-ch = /bits/ 8 <0x09>;
	};

	fan@10 {
		reg = <0x05>;
		aspeed,fan-tach-ch = /bits/ 8 <0x0a>;
	};

	fan@11 {
		reg = <0x05>;
		aspeed,fan-tach-ch = /bits/ 8 <0x0b>;
	};

	fan@12 {
		reg = <0x06>;
		aspeed,fan-tach-ch = /bits/ 8 <0x0c>;
	};

	fan@13 {
		reg = <0x06>;
		aspeed,fan-tach-ch = /bits/ 8 <0x0d>;
	};

	fan@14 {
		reg = <0x07>;
		aspeed,fan-tach-ch = /bits/ 8 <0x0e>;
	};

	fan@15 {
		reg = <0x07>;
		aspeed,fan-tach-ch = /bits/ 8 <0x0f>;
	};

	fan@16 {
		reg = <0x07>;
		aspeed,fan-tach-ch = /bits/ 8 <0x0f>;
	};
};

&gpio {

	pin-gpio-a1-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(A, 1) GPIO_ACTIVE_LOW>;
		output-high;
		line-name = "BMC_EMMC_RST_N";
	};

	pin-gpio-a3-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(A, 3) GPIO_ACTIVE_LOW>;
		output-high;
		line-name = "PCH_PWROK_BMC_FPGA";
	};

	pin-gpio-b5-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(B, 5) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "IRQ_BMC_PCH_SMI_LPC_N";
	};

	pin-gpio-b7-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(B, 7) GPIO_ACTIVE_LOW>;
		output-low;
		line-name = "CPU_SM_WP";
	};

	pin-gpio-e0-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(E, 0) GPIO_ACTIVE_HIGH>;
		input;
		line-name = "PDB_PSU_SEL";
	};

	pin-gpio-e2-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(E, 2) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "LOCATOR_LED_N";
	};

	pin-gpio-e5-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(E, 5) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "FM_BMC_DBP_PRESENT_R1_N";
	};

	pin-gpio-e6-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(E, 6) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "BMC_ME_SECURITY_OVERRIDE_N";
	};

	pin-gpio-f0-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(F, 0) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "IRQ_BMC_PCH_NMI_R";
	};

	pin-gpio-f1-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(F, 1) GPIO_ACTIVE_HIGH>;
		input;
		line-name = "CPU2_PROCDIS_BMC_N";
	};

	pin-gpio-f2-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(F, 2) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "RM_THROTTLE_EN_N";
	};

	pin-gpio-f3-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(F, 3) GPIO_ACTIVE_HIGH>;
		output-low;
		line-name = "FM_PMBUS_ALERT_B_EN";
	};

	pin-gpio-f4-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(F, 4) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "BMC_FORCE_NM_THROTTLE_N";
	};

	pin-gpio-f6-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(F, 6) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "FM_BMC_CPU_PWR_DEBUG_N";
	};

	pin-gpio-g7-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(G, 7) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "BMC_PCIE_I2C_MUX_RST_N";
	};

	pin-gpio-h6-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(H, 6) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "FM_BMC_DBP_PRESENT_R2_N";
	};

	pin-gpio-i3-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(I, 3) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "SPI_BMC_BIOS_WP_N";
	};

	pin-gpio-j1-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(J, 1) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "BMC_USB_SEL";
	};

	pin-gpio-j2-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(J, 2) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "PDB_SMB_RST_N";
	};

	pin-gpio-j3-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(J, 3) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "SPI_BMC_BIOS_HOLD_N";
	};

	pin-gpio-l0-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(L, 0) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "PDB_FAN_TACH_SEL";
	};

	pin-gpio-l1-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(L, 1) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "SYS_RESET_BMC_FPGA_N";
	};

	pin-gpio-l4-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(L, 4) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "FM_EFUSE_FAN_G1_EN";
	};

	pin-gpio-l5-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(L, 5) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "FM_EFUSE_FAN_G2_EN";
	};

	pin-gpio-r6-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(R, 6) GPIO_ACTIVE_HIGH>;
		input;
		line-name = "CPU3_PROCDIS_BMC_N";
	};

	pin-gpio-r7-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(R, 7) GPIO_ACTIVE_HIGH>;
		input;
		line-name = "CPU4_PROCDIS_BMC_N";
	};

	pin-gpio-s1-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(S, 1) GPIO_ACTIVE_HIGH>;
		output-low;
		line-name = "DBP_SYSPWROK_BMC";
	};

	pin-gpio-s2-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(S, 2) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "PCH_RST_RSMRST_N";
	};

	pin-gpio-s6-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(S, 6) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "BMC_HW_STRAP_5";
	};

	pin-gpio-z3-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "FM_BMC_PCH_SCI_LPC_N";
	};

	pin-gpio-aa0-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(AA, 0) GPIO_ACTIVE_HIGH>;
		output-low;
		line-name = "FW_PSU_ALERT_EN_N";
	};

	pin-gpio-aa4-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(AA, 4) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "DBP_CPU_PREQ_N";
	};

	pin-gpio-ab3-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(AB, 3) GPIO_ACTIVE_HIGH>;
		output-low;
		line-name = "BMC_WDTRST";
	};

	pin-gpio-ac6-hog {
		gpio-hog;
		gpios = <ASPEED_GPIO(AC, 6) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "ESPI_BMC_ALERT_N";
	};

};
