// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright 2019 IBM Corp.
/dts-v1/;

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

/ {
	model = "Tacoma";
	compatible = "ibm,tacoma-bmc", "aspeed,ast2600";

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

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

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

		flash_memory: region@ba000000 {
			no-map;
			reg = <0xb8000000 0x4000000>; /* 64M */
		};

		vga_memory: region@bf000000 {
			no-map;
			compatible = "shared-dma-pool";
			reg = <0xbf000000 0x01000000>;	/* 16M */
		};
	};

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

		ps0-presence {
			label = "ps0-presence";
			gpios = <&gpio0 ASPEED_GPIO(H, 3) GPIO_ACTIVE_LOW>;
			linux,code = <ASPEED_GPIO(H, 3)>;
		};

		ps1-presence {
			label = "ps1-presence";
			gpios = <&gpio0 ASPEED_GPIO(E, 5) GPIO_ACTIVE_LOW>;
			linux,code = <ASPEED_GPIO(E, 5)>;
		};
	};

	gpio-keys-polled {
		compatible = "gpio-keys-polled";
		#address-cells = <1>;
		#size-cells = <0>;
		poll-interval = <1000>;

		fan0-presence {
			label = "fan0-presence";
			gpios = <&pca0 4 GPIO_ACTIVE_LOW>;
			linux,code = <4>;
		};

		fan1-presence {
			label = "fan1-presence";
			gpios = <&pca0 5 GPIO_ACTIVE_LOW>;
			linux,code = <5>;
		};

		fan2-presence {
			label = "fan2-presence";
			gpios = <&pca0 6 GPIO_ACTIVE_LOW>;
			linux,code = <6>;
		};

		fan3-presence {
			label = "fan3-presence";
			gpios = <&pca0 7 GPIO_ACTIVE_LOW>;
			linux,code = <7>;
		};
	};

	iio-hwmon-dps310 {
		compatible = "iio-hwmon";
		io-channels = <&dps 0>;
	};

	iio-hwmon-bmp280 {
		compatible = "iio-hwmon";
		io-channels = <&bmp 1>;
	};
};

&ehci1 {
	status = "okay";
};

&gpio0 {
	gpio-line-names =
	/*A0-A7*/	"","","","","","","","",
	/*B0-B7*/	"fsi-mux","","","","","","","",
	/*C0-C7*/	"","","","","","","","",
	/*D0-D7*/	"","","","","","","","",
	/*E0-E7*/	"power-button","","","checkstop","","presence-ps1","","led-rear-fault",
	/*F0-F7*/	"","","","","","","","",
	/*G0-G7*/	"","","","","","","","",
	/*H0-H7*/	"","","","presence-ps0","","","","",
	/*I0-I7*/	"","","","","","","","",
	/*J0-J7*/	"","","","","","","","",
	/*K0-K7*/	"","","","","","","","",
	/*L0-L7*/	"","","","","","","","",
	/*M0-M7*/	"","","","","","","","",
	/*N0-N7*/	"","","","","","","","",
	/*O0-O7*/	"led-rear-power","led-rear-id","","usb-power","","","","",
	/*P0-P7*/	"","","","","","","","",
	/*Q0-Q7*/	"cfam-reset","","","","","","","fsi-routing",
	/*R0-R7*/	"","","","","","","","",
	/*S0-S7*/	"","","","","","","","",
	/*T0-T7*/	"","","","","","","","",
	/*U0-U7*/	"","","","","","","","",
	/*V0-V7*/	"","","","","","","","",
	/*W0-W7*/	"","","","","","","","",
	/*X0-X7*/	"","","","","","","","",
	/*Y0-Y7*/	"","","","","","","","",
	/*Z0-Z7*/	"","","","","","","","",
	/*AA0-AA7*/	"","","","","","","","",
	/*AB0-AB7*/	"","","","","","","","",
	/*AC0-AC7*/	"","","","","","","","";
};

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

	flash@1 {
		status = "okay";
		m25p,fast-read;
		label = "alt-bmc";
		spi-max-frequency = <50000000>;
	};
};

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

	flash@0 {
		status = "okay";
		m25p,fast-read;
		label = "pnor";
		spi-max-frequency = <100000000>;
	};
};

&mac2 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_rmii3_default>;
	clocks = <&syscon ASPEED_CLK_GATE_MAC3CLK>,
		 <&syscon ASPEED_CLK_MAC3RCLK>;
	clock-names = "MACCLK", "RCLK";
	use-ncsi;
};

&emmc_controller {
	status = "okay";
};

&emmc {
	status = "okay";
};

&fsim0 {
	status = "okay";

	#address-cells = <2>;
	#size-cells = <0>;

	fsi-routing-gpios = <&gpio0 ASPEED_GPIO(Q, 7) GPIO_ACTIVE_HIGH>;
	fsi-mux-gpios = <&gpio0 ASPEED_GPIO(B, 0) GPIO_ACTIVE_HIGH>;
	cfam-reset-gpios = <&gpio0 ASPEED_GPIO(Q, 0) GPIO_ACTIVE_LOW>;

	cfam@0,0 {
		reg = <0 0>;
		#address-cells = <1>;
		#size-cells = <1>;
		chip-id = <0>;

		scom@1000 {
			compatible = "ibm,fsi2pib";
			reg = <0x1000 0x400>;
		};

		i2c@1800 {
			compatible = "ibm,fsi-i2c-master";
			reg = <0x1800 0x400>;
			#address-cells = <1>;
			#size-cells = <0>;

			cfam0_i2c0: i2c-bus@0 {
				reg = <0>;
			};

			cfam0_i2c1: i2c-bus@1 {
				reg = <1>;
			};

			cfam0_i2c2: i2c-bus@2 {
				reg = <2>;
			};

			cfam0_i2c3: i2c-bus@3 {
				reg = <3>;
			};

			cfam0_i2c4: i2c-bus@4 {
				reg = <4>;
			};

			cfam0_i2c5: i2c-bus@5 {
				reg = <5>;
			};

			cfam0_i2c6: i2c-bus@6 {
				reg = <6>;
			};

			cfam0_i2c7: i2c-bus@7 {
				reg = <7>;
			};

			cfam0_i2c8: i2c-bus@8 {
				reg = <8>;
			};

			cfam0_i2c9: i2c-bus@9 {
				reg = <9>;
			};

			cfam0_i2c10: i2c-bus@a {
				reg = <10>;
			};

			cfam0_i2c11: i2c-bus@b {
				reg = <11>;
			};

			cfam0_i2c12: i2c-bus@c {
				reg = <12>;
			};

			cfam0_i2c13: i2c-bus@d {
				reg = <13>;
			};

			cfam0_i2c14: i2c-bus@e {
				reg = <14>;
			};
		};

		sbefifo@2400 {
			compatible = "ibm,p9-sbefifo";
			reg = <0x2400 0x400>;
			#address-cells = <1>;
			#size-cells = <0>;

			fsi_occ0: occ {
				compatible = "ibm,p9-occ";
			};
		};

		fsi_hub0: hub@3400 {
			compatible = "fsi-master-hub";
			reg = <0x3400 0x400>;
			#address-cells = <2>;
			#size-cells = <0>;

			no-scan-on-init;
		};
	};
};

&fsi_hub0 {
	cfam@1,0 {
		reg = <1 0>;
		#address-cells = <1>;
		#size-cells = <1>;
		chip-id = <1>;

		scom@1000 {
			compatible = "ibm,fsi2pib";
			reg = <0x1000 0x400>;
		};

		i2c@1800 {
			compatible = "ibm,fsi-i2c-master";
			reg = <0x1800 0x400>;
			#address-cells = <1>;
			#size-cells = <0>;

			cfam1_i2c0: i2c-bus@0 {
				reg = <0>;
			};

			cfam1_i2c1: i2c-bus@1 {
				reg = <1>;
			};

			cfam1_i2c2: i2c-bus@2 {
				reg = <2>;
			};

			cfam1_i2c3: i2c-bus@3 {
				reg = <3>;
			};

			cfam1_i2c4: i2c-bus@4 {
				reg = <4>;
			};

			cfam1_i2c5: i2c-bus@5 {
				reg = <5>;
			};

			cfam1_i2c6: i2c-bus@6 {
				reg = <6>;
			};

			cfam1_i2c7: i2c-bus@7 {
				reg = <7>;
			};

			cfam1_i2c8: i2c-bus@8 {
				reg = <8>;
			};

			cfam1_i2c9: i2c-bus@9 {
				reg = <9>;
			};

			cfam1_i2c10: i2c-bus@a {
				reg = <10>;
			};

			cfam1_i2c11: i2c-bus@b {
				reg = <11>;
			};

			cfam1_i2c12: i2c-bus@c {
				reg = <12>;
			};

			cfam1_i2c13: i2c-bus@d {
				reg = <13>;
			};

			cfam1_i2c14: i2c-bus@e {
				reg = <14>;
			};
		};

		sbefifo@2400 {
			compatible = "ibm,p9-sbefifo";
			reg = <0x2400 0x400>;
			#address-cells = <1>;
			#size-cells = <0>;

			fsi_occ1: occ {
				compatible = "ibm,p9-occ";
			};
		};

		fsi_hub1: hub@3400 {
			compatible = "fsi-master-hub";
			reg = <0x3400 0x400>;
			#address-cells = <2>;
			#size-cells = <0>;

			no-scan-on-init;
		};
	};
};

/* Legacy OCC numbering (to get rid of when userspace is fixed) */
&fsi_occ0 {
	reg = <1>;
};

&fsi_occ1 {
	reg = <2>;
};

/ {
	aliases {
		i2c100 = &cfam0_i2c0;
		i2c101 = &cfam0_i2c1;
		i2c102 = &cfam0_i2c2;
		i2c103 = &cfam0_i2c3;
		i2c104 = &cfam0_i2c4;
		i2c105 = &cfam0_i2c5;
		i2c106 = &cfam0_i2c6;
		i2c107 = &cfam0_i2c7;
		i2c108 = &cfam0_i2c8;
		i2c109 = &cfam0_i2c9;
		i2c110 = &cfam0_i2c10;
		i2c111 = &cfam0_i2c11;
		i2c112 = &cfam0_i2c12;
		i2c113 = &cfam0_i2c13;
		i2c114 = &cfam0_i2c14;
		i2c200 = &cfam1_i2c0;
		i2c201 = &cfam1_i2c1;
		i2c202 = &cfam1_i2c2;
		i2c203 = &cfam1_i2c3;
		i2c204 = &cfam1_i2c4;
		i2c205 = &cfam1_i2c5;
		i2c206 = &cfam1_i2c6;
		i2c207 = &cfam1_i2c7;
		i2c208 = &cfam1_i2c8;
		i2c209 = &cfam1_i2c9;
		i2c210 = &cfam1_i2c10;
		i2c211 = &cfam1_i2c11;
		i2c212 = &cfam1_i2c12;
		i2c213 = &cfam1_i2c13;
		i2c214 = &cfam1_i2c14;
	};

};

&i2c0 {
	status = "okay";
};

&i2c1 {
	status = "okay";

	tpm: tpm@2e {
		compatible = "tcg,tpm-tis-i2c";
		reg = <0x2e>;
	};
};

&i2c2 {
	status = "okay";
};

&i2c3 {
	status = "okay";

	bmp: bmp280@77 {
		compatible = "bosch,bmp280";
		reg = <0x77>;
		#io-channel-cells = <1>;
	};

	max31785@52 {
		compatible = "maxim,max31785a";
		reg = <0x52>;
		#address-cells = <1>;
		#size-cells = <0>;

		fan@0 {
			compatible = "pmbus-fan";
			reg = <0>;
			tach-pulses = <2>;
			maxim,fan-rotor-input = "tach";
			maxim,fan-pwm-freq = <25000>;
			maxim,fan-dual-tach;
			maxim,fan-no-watchdog;
			maxim,fan-no-fault-ramp;
			maxim,fan-ramp = <2>;
			maxim,fan-fault-pin-mon;
		};

		fan@1 {
			compatible = "pmbus-fan";
			reg = <1>;
			tach-pulses = <2>;
			maxim,fan-rotor-input = "tach";
			maxim,fan-pwm-freq = <25000>;
			maxim,fan-dual-tach;
			maxim,fan-no-watchdog;
			maxim,fan-no-fault-ramp;
			maxim,fan-ramp = <2>;
			maxim,fan-fault-pin-mon;
		};

		fan@2 {
			compatible = "pmbus-fan";
			reg = <2>;
			tach-pulses = <2>;
			maxim,fan-rotor-input = "tach";
			maxim,fan-pwm-freq = <25000>;
			maxim,fan-dual-tach;
			maxim,fan-no-watchdog;
			maxim,fan-no-fault-ramp;
			maxim,fan-ramp = <2>;
			maxim,fan-fault-pin-mon;
		};

		fan@3 {
			compatible = "pmbus-fan";
			reg = <3>;
			tach-pulses = <2>;
			maxim,fan-rotor-input = "tach";
			maxim,fan-pwm-freq = <25000>;
			maxim,fan-dual-tach;
			maxim,fan-no-watchdog;
			maxim,fan-no-fault-ramp;
			maxim,fan-ramp = <2>;
			maxim,fan-fault-pin-mon;
		};
	};

	dps: dps310@76 {
		compatible = "infineon,dps310";
		reg = <0x76>;
		#io-channel-cells = <0>;
	};

	pca0: pca9552@60 {
		compatible = "nxp,pca9552";
		reg = <0x60>;
		#address-cells = <1>;
		#size-cells = <0>;

		gpio-controller;
		#gpio-cells = <2>;

		gpio@0 {
			reg = <0>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@1 {
			reg = <1>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@2 {
			reg = <2>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@3 {
			reg = <3>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@4 {
			reg = <4>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@5 {
			reg = <5>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@6 {
			reg = <6>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@7 {
			reg = <7>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@8 {
			reg = <8>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@9 {
			reg = <9>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@10 {
			reg = <10>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@11 {
			reg = <11>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@12 {
			reg = <12>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@13 {
			reg = <13>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@14 {
			reg = <14>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@15 {
			reg = <15>;
			type = <PCA955X_TYPE_GPIO>;
		};
	};

	power-supply@68 {
		compatible = "ibm,cffps1";
		reg = <0x68>;
	};

	power-supply@69 {
		compatible = "ibm,cffps1";
		reg = <0x69>;
	};
};

&i2c4 {
	status = "okay";

	tmp423a@4c {
		compatible = "ti,tmp423";
		reg = <0x4c>;
	};

	ir35221@70 {
		compatible = "infineon,ir35221";
		reg = <0x70>;
	};

	ir35221@71 {
		compatible = "infineon,ir35221";
		reg = <0x71>;
	};
};

&i2c5 {
	status = "okay";

	tmp423a@4c {
		compatible = "ti,tmp423";
		reg = <0x4c>;
	};

	ir35221@70 {
		compatible = "infineon,ir35221";
		reg = <0x70>;
	};

	ir35221@71 {
		compatible = "infineon,ir35221";
		reg = <0x71>;
	};
};

&i2c7 {
	status = "okay";
};

&i2c9 {
	status = "okay";

	tmp275@4a {
		compatible = "ti,tmp275";
		reg = <0x4a>;
	};
};

&i2c10 {
	status = "okay";
};

&i2c11 {
	status = "okay";

	pca9552: pca9552@60 {
		compatible = "nxp,pca9552";
		reg = <0x60>;
		#address-cells = <1>;
		#size-cells = <0>;
		gpio-controller;
		#gpio-cells = <2>;

		gpio-line-names = "PS_SMBUS_RESET_N", "APSS_RESET_N",
			"GPU0_TH_OVERT_N_BUFF",	"GPU1_TH_OVERT_N_BUFF",
			"GPU2_TH_OVERT_N_BUFF", "GPU3_TH_OVERT_N_BUFF",
			"GPU4_TH_OVERT_N_BUFF",	"GPU5_TH_OVERT_N_BUFF",
			"GPU0_PWR_GOOD_BUFF", "GPU1_PWR_GOOD_BUFF",
			"GPU2_PWR_GOOD_BUFF", "GPU3_PWR_GOOD_BUFF",
			"GPU4_PWR_GOOD_BUFF", "GPU5_PWR_GOOD_BUFF",
			"12V_BREAKER_FLT_N", "THROTTLE_UNLATCHED_N";

		gpio@0 {
			reg = <0>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@1 {
			reg = <1>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@2 {
			reg = <2>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@3 {
			reg = <3>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@4 {
			reg = <4>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@5 {
			reg = <5>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@6 {
			reg = <6>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@7 {
			reg = <7>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@8 {
			reg = <8>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@9 {
			reg = <9>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@10 {
			reg = <10>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@11 {
			reg = <11>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@12 {
			reg = <12>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@13 {
			reg = <13>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@14 {
			reg = <14>;
			type = <PCA955X_TYPE_GPIO>;
		};

		gpio@15 {
			reg = <15>;
			type = <PCA955X_TYPE_GPIO>;
		};
	};

	rtc@32 {
		compatible = "epson,rx8900";
		reg = <0x32>;
	};

	eeprom@51 {
		compatible = "atmel,24c64";
		reg = <0x51>;
	};

	ucd90160@64 {
		compatible = "ti,ucd90160";
		reg = <0x64>;
	};
};

&i2c12 {
	status = "okay";
};

&i2c13 {
	status = "okay";
};

&ibt {
	status = "okay";
};

&uart1 {
	status = "okay";
	// Workaround for A0
	compatible = "snps,dw-apb-uart";
};

&uart5 {
	// Workaround for A0
	compatible = "snps,dw-apb-uart";
};

&vuart1 {
	status = "okay";
};

&vuart2 {
	status = "okay";
};

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

&wdt1 {
	aspeed,reset-type = "none";
	aspeed,external-signal;
	aspeed,ext-push-pull;
	aspeed,ext-active-high;

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

&wdt2 {
	status = "okay";
};

&pinctrl {
	/* Hog these as no driver is probed for the entire LPC block */
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_lpc_default>,
		    <&pinctrl_lsirq_default>;
};

&xdma {
	status = "okay";
	memory-region = <&vga_memory>;
};
