// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright 2022 Facebook Inc.

/dts-v1/;
#include "aspeed-g6.dtsi"
#include <dt-bindings/gpio/aspeed-gpio.h>
#include <dt-bindings/leds/leds-pca955x.h>
#include <dt-bindings/i2c/i2c.h>

/ {
	model = "Facebook Greatlakes BMC";
	compatible = "facebook,greatlakes-bmc", "aspeed,ast2600";

	aliases {
		serial4 = &uart5;
	};

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

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

&uart1 {
	status = "okay";
};

&uart2 {
	status = "okay";
};

&uart3 {
	status = "okay";
};

&uart4 {
	status = "okay";
};

&uart5 {
	status = "okay";
};

&wdt1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_wdtrst1_default>;
	aspeed,reset-type = "soc";
	aspeed,external-signal;
	aspeed,ext-push-pull;
	aspeed,ext-active-high;
	aspeed,ext-pulse-duration = <256>;
};

&mac3 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_rmii4_default>;
	no-hw-checksum;
	use-ncsi;
	mellanox,multi-host;
	ncsi-ctrl,start-redo-probe;
	ncsi-ctrl,no-channel-monitor;
	ncsi-package = <1>;
	ncsi-channel = <1>;
	ncsi-rexmit = <1>;
	ncsi-timeout = <2>;
};

&rtc {
	status = "okay";
};

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

&i2c0 {
	status = "okay";
	multi-master;
	ipmb@10 {
		compatible = "ipmb-dev";
		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
		i2c-protocol;
	};
};

&i2c1 {
	status = "okay";
	multi-master;
	ipmb@10 {
		compatible = "ipmb-dev";
		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
		i2c-protocol;
	};
};

&i2c2 {
	status = "okay";
	multi-master;
	ipmb@10 {
		compatible = "ipmb-dev";
		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
		i2c-protocol;
	};
};

&i2c3 {
	status = "okay";
	multi-master;
	ipmb@10 {
		compatible = "ipmb-dev";
		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
		i2c-protocol;
	};
};

&i2c4 {
	status = "okay";
};

&i2c5 {
	status = "okay";
};

&i2c6 {
	status = "okay";
};

&i2c7 {
	status = "okay";
};

&i2c8 {
	status = "okay";
	mctp-controller;
	temperature-sensor@1f {
		compatible = "ti,tmp421";
		reg = <0x1f>;
	};
	// NIC EEPROM
	eeprom@50 {
		compatible = "st,24c32";
		reg = <0x50>;
	};
	mctp@10 {
		compatible = "mctp-i2c-controller";
		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
	};
};

&i2c9 {
	status = "okay";
	multi-master;
	ipmb@10 {
		compatible = "ipmb-dev";
		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
		i2c-protocol;
	};
};

&i2c10 {
	status = "okay";
};

&i2c11 {
	status = "okay";
	eeprom@51 {
		compatible = "atmel,24c128";
		reg = <0x51>;
	};
	eeprom@54 {
		compatible = "atmel,24c128";
		reg = <0x54>;
	};
};

&i2c12 {
	status = "okay";
	temperature-sensor@4f {
		compatible = "lm75";
		reg = <0x4f>;
	};
};

&i2c13 {
	status = "okay";
};

&adc0 {
	status = "okay";
	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>;
};

&adc1 {
	status = "okay";
	pinctrl-0 = <&pinctrl_adc8_default &pinctrl_adc10_default
			&pinctrl_adc11_default &pinctrl_adc12_default
			&pinctrl_adc13_default &pinctrl_adc14_default>;
};


&ehci0 {
	status = "okay";
};

&ehci1 {
	status = "okay";
};

&uhci {
	status = "okay";
};

&gpio0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_gpiu1_default &pinctrl_gpiu7_default>;

	gpio-line-names =
	/*A0-A7*/ "","","","","","","","",
	/*B0-B7*/ "power-bmc-nic","presence-ocp-debug",
		  "power-bmc-slot1","power-bmc-slot2",
		  "power-bmc-slot3","power-bmc-slot4","","",
	/*C0-C7*/ "presence-ocp-nic","","","reset-cause-nic-primary",
		  "reset-cause-nic-secondary","","","",
	/*D0-D7*/ "","","","","","","","",
	/*E0-E7*/ "","","","","","","","",
	/*F0-F7*/ "slot1-bmc-reset-button","slot2-bmc-reset-button",
		  "slot3-bmc-reset-button","slot4-bmc-reset-button",
		  "","","","presence-emmc",
	/*G0-G7*/ "","","","","","","","",
	/*H0-H7*/ "","","","",
		  "presence-mb-slot1","presence-mb-slot2",
		  "presence-mb-slot3","presence-mb-slot4",
	/*I0-I7*/ "","","","","","","bb-bmc-button","",
	/*J0-J7*/ "","","","","","","","",
	/*K0-K7*/ "","","","","","","","",
	/*L0-L7*/ "","","","","","","","",
	/*M0-M7*/ "","power-nic-bmc-enable","","usb-bmc-enable","","reset-cause-usb-hub","","",
	/*N0-N7*/ "","","","","bmc-ready","","","",
	/*O0-O7*/ "","","","","","","fan0-bmc-cpld-enable","fan1-bmc-cpld-enable",
	/*P0-P7*/ "fan2-bmc-cpld-enable","fan3-bmc-cpld-enable",
		  "reset-cause-pcie-slot1","reset-cause-pcie-slot2",
		  "reset-cause-pcie-slot3","reset-cause-pcie-slot4","","",
	/*Q0-Q7*/ "","","","","","","","",
	/*R0-R7*/ "","","","","","","","",
	/*S0-S7*/ "","","power-p5v-usb","presence-bmc-tpm","","","","",
	/*T0-T7*/ "","","","","","","","",
	/*U0-U7*/ "","","","","","","","GND",
	/*V0-V7*/ "bmc-slot1-ac-button","bmc-slot2-ac-button",
		  "bmc-slot3-ac-button","bmc-slot4-ac-button",
		  "","","","",
	/*W0-W7*/ "","","","","","","","",
	/*X0-X7*/ "","","","","","","","",
	/*Y0-Y7*/ "","","","reset-cause-emmc","","","","",
	/*Z0-Z7*/ "","","","","","","","";
};

&gpio1 {
	gpio-line-names =
	/*18A0-18A7*/ "","","","","","","","",
	/*18B0-18B7*/ "","","","","","","","",
	/*18C0-18C7*/ "","","","","","","","",
	/*18D0-18D7*/ "","","","","","","","",
	/*18E0-18E3*/ "","","","","","","","";
};
