| // SPDX-License-Identifier: GPL-2.0 | 
 | /dts-v1/; | 
 | #include "aspeed-g5.dtsi" | 
 | #include <dt-bindings/gpio/aspeed-gpio.h> | 
 |  | 
 | / { | 
 | 	model = "Zaius BMC"; | 
 | 	compatible = "ingrasys,zaius-bmc", "aspeed,ast2500"; | 
 |  | 
 | 	aliases { | 
 | 		i2c15 = &i2cpcie0; | 
 | 		i2c16 = &i2cpcie1; | 
 | 		i2c17 = &i2cpcie2; | 
 | 		i2c19 = &i2cpcie3; | 
 | 		i2c20 = &i2cpcie4; | 
 | 	}; | 
 |  | 
 | 	chosen { | 
 | 		stdout-path = &uart5; | 
 | 		bootargs = "console=ttyS4,115200 earlycon"; | 
 | 	}; | 
 |  | 
 | 	memory@80000000 { | 
 | 		reg = <0x80000000 0x40000000>; | 
 | 	}; | 
 |  | 
 | 	reserved-memory { | 
 | 		#address-cells = <1>; | 
 | 		#size-cells = <1>; | 
 | 		ranges; | 
 |  | 
 | 		flash_memory: region@98000000 { | 
 | 			no-map; | 
 | 			reg = <0x98000000 0x04000000>; /* 64M */ | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	onewire0 { | 
 | 		compatible = "w1-gpio"; | 
 | 		gpios = <&gpio ASPEED_GPIO(H, 0) GPIO_ACTIVE_HIGH>; | 
 | 	}; | 
 |  | 
 | 	onewire1 { | 
 | 		compatible = "w1-gpio"; | 
 | 		gpios = <&gpio ASPEED_GPIO(H, 1) GPIO_ACTIVE_HIGH>; | 
 | 	}; | 
 |  | 
 | 	onewire2 { | 
 | 		compatible = "w1-gpio"; | 
 | 		gpios = <&gpio ASPEED_GPIO(H, 2) GPIO_ACTIVE_HIGH>; | 
 | 	}; | 
 |  | 
 | 	onewire3 { | 
 | 		compatible = "w1-gpio"; | 
 | 		gpios = <&gpio ASPEED_GPIO(H, 3) GPIO_ACTIVE_HIGH>; | 
 | 	}; | 
 |  | 
 | 	gpio-keys { | 
 | 		compatible = "gpio-keys"; | 
 |  | 
 | 		event-checkstop { | 
 | 			label = "checkstop"; | 
 | 			gpios = <&gpio ASPEED_GPIO(F, 7) GPIO_ACTIVE_LOW>; | 
 | 			linux,code = <ASPEED_GPIO(F, 7)>; | 
 | 		}; | 
 |  | 
 | 		event-pcie-e2b-present{ | 
 | 			label = "pcie-e2b-present"; | 
 | 			gpios = <&gpio ASPEED_GPIO(E, 7) GPIO_ACTIVE_LOW>; | 
 | 			linux,code = <ASPEED_GPIO(E, 7)>; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	leds { | 
 | 		compatible = "gpio-leds"; | 
 |  | 
 | 		sys_boot_status { | 
 | 			label = "System boot status"; | 
 | 			gpios = <&gpio ASPEED_GPIO(D, 5) GPIO_ACTIVE_LOW>; | 
 | 		}; | 
 |  | 
 | 		attention { | 
 | 			label = "Attention"; | 
 | 			gpios = <&gpio ASPEED_GPIO(D, 6) GPIO_ACTIVE_LOW>; | 
 | 		}; | 
 |  | 
 | 		plt_fault { | 
 | 			label = "Platform fault"; | 
 | 			gpios = <&gpio ASPEED_GPIO(D, 7) GPIO_ACTIVE_LOW>; | 
 | 		}; | 
 |  | 
 | 		hdd_fault { | 
 | 			label = "Onboard drive fault"; | 
 | 			gpios = <&gpio ASPEED_GPIO(AA, 2) GPIO_ACTIVE_LOW>; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	fsi: gpio-fsi { | 
 | 		compatible = "fsi-master-gpio", "fsi-master"; | 
 | 		#address-cells = <2>; | 
 | 		#size-cells = <0>; | 
 | 		no-gpio-delays; | 
 |  | 
 | 		trans-gpios = <&gpio ASPEED_GPIO(O, 6) GPIO_ACTIVE_HIGH>; | 
 | 		enable-gpios = <&gpio ASPEED_GPIO(D, 0) GPIO_ACTIVE_HIGH>; | 
 | 		clock-gpios = <&gpio ASPEED_GPIO(G, 0) GPIO_ACTIVE_HIGH>; | 
 | 		data-gpios = <&gpio ASPEED_GPIO(G, 1) GPIO_ACTIVE_HIGH>; | 
 | 		mux-gpios = <&gpio ASPEED_GPIO(P, 6) GPIO_ACTIVE_HIGH>; | 
 | 	}; | 
 |  | 
 | 	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 13>, <&adc 14>, <&adc 15>; | 
 | 	}; | 
 |  | 
 | 	iio-hwmon-battery { | 
 | 		compatible = "iio-hwmon"; | 
 | 		io-channels = <&adc 12>; | 
 | 	}; | 
 |  | 
 | }; | 
 |  | 
 | &fmc { | 
 | 	status = "okay"; | 
 |  | 
 | 	flash@0 { | 
 | 		status = "okay"; | 
 | 		label = "bmc"; | 
 | 		m25p,fast-read; | 
 | 		spi-max-frequency = <50000000>; | 
 | #include "openbmc-flash-layout.dtsi" | 
 | 	}; | 
 | }; | 
 |  | 
 | &spi1 { | 
 | 	status = "okay"; | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = <&pinctrl_spi1_default>; | 
 |  | 
 | 	flash@0 { | 
 | 		status = "okay"; | 
 | 		label = "pnor"; | 
 | 		m25p,fast-read; | 
 | 		spi-max-frequency = <100000000>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &spi2 { | 
 | 	status = "okay"; | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = <&pinctrl_spi2ck_default | 
 | 		     &pinctrl_spi2cs0_default | 
 | 		     &pinctrl_spi2cs1_default | 
 | 		     &pinctrl_spi2miso_default | 
 | 		     &pinctrl_spi2mosi_default>; | 
 |  | 
 | 	flash@0 { | 
 | 		status = "okay"; | 
 | 	}; | 
 | }; | 
 |  | 
 | &uart1 { | 
 | 	status = "okay"; | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = <&pinctrl_txd1_default | 
 | 		     &pinctrl_rxd1_default>; | 
 | }; | 
 |  | 
 | &lpc_ctrl { | 
 | 	status = "okay"; | 
 | 	memory-region = <&flash_memory>; | 
 | 	flash = <&spi1>; | 
 | }; | 
 |  | 
 | &lpc_snoop { | 
 | 	status = "okay"; | 
 | 	snoop-ports = <0x80>; | 
 | }; | 
 |  | 
 |  | 
 | &uart5 { | 
 | 	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>; | 
 | }; | 
 |  | 
 | &i2c0 { | 
 | 	status = "okay"; | 
 |  | 
 | 	eeprom@50 { | 
 | 		compatible = "atmel,24c64"; | 
 | 		reg = <0x50>; | 
 | 		pagesize = <32>; | 
 | 	}; | 
 |  | 
 | 	rtc@68 { | 
 | 		compatible = "nxp,pcf8523"; | 
 | 		reg = <0x68>; | 
 | 	}; | 
 |  | 
 | 	ucd90160@64 { | 
 | 		compatible = "ti,ucd90160"; | 
 | 		reg = <0x64>; | 
 | 	}; | 
 |  | 
 | 	/* Power sequencer UCD90160 PMBUS @64h | 
 | 	 * FRU AT24C64D @50h | 
 | 	 * RTC PCF8523 @68h | 
 | 	 * Clock buffer 9DBL04 @6dh | 
 | 	 */ | 
 | }; | 
 |  | 
 | &i2c1 { | 
 | 	status = "okay"; | 
 |  | 
 | 	i2c-switch@71 { | 
 | 		compatible = "nxp,pca9546"; | 
 | 		reg = <0x71>; | 
 | 		#address-cells = <1>; | 
 | 		#size-cells = <0>; | 
 |  | 
 | 		i2cpcie0: i2c@0 { | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			reg = <0>; | 
 | 		}; | 
 | 		i2cpcie1: i2c@1 { | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			reg = <1>; | 
 | 		}; | 
 | 		i2cpcie2: i2c@2 { | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			reg = <2>; | 
 | 		}; | 
 | 		i2ctpm: i2c@3 { | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			reg = <3>; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	/* MUX1 PCA9546A @71h | 
 | 	 *   PCIe 0 | 
 | 	 *   PCIe 1 | 
 | 	 *   PCIe 2 | 
 | 	 *   TPM header | 
 | 	 */ | 
 | }; | 
 |  | 
 | &i2c2 { | 
 | 	status = "disabled"; | 
 |  | 
 | 	/* OCP Mezz Connector A (OOB SMBUS) */ | 
 | }; | 
 |  | 
 | &i2c3 { | 
 | 	status = "disabled"; | 
 |  | 
 | 	/* OCP Mezz Connector A (PCIe slot SMBUS) */ | 
 | }; | 
 |  | 
 | &i2c4 { | 
 | 	status = "okay"; | 
 |  | 
 | 	i2c-switch@71 { | 
 | 		compatible = "nxp,pca9546"; | 
 | 		reg = <0x71>; | 
 | 		#address-cells = <1>; | 
 | 		#size-cells = <0>; | 
 |  | 
 | 		i2cpcie3: i2c@0 { | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			reg = <0>; | 
 | 		}; | 
 | 		i2cpcie4: i2c@1 { | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			reg = <1>; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	/* MUX1 PCA9546A @71h | 
 | 	 *   PCIe 3 | 
 | 	 *   PCIe 4 | 
 | 	 */ | 
 | }; | 
 |  | 
 |  | 
 | &i2c5 { | 
 | 	status = "disabled"; | 
 |  | 
 | 	/* CPU0 PRM 0.7V */ | 
 | 	/* CPU0 PRM 1.2V CH03 */ | 
 | 	/* CPU0 PRM 0.8V */ | 
 | 	/* CPU0 PRM 1.2V CH47 */ | 
 | }; | 
 |  | 
 | &i2c6 { | 
 | 	status = "disabled"; | 
 |  | 
 | 	/* CPU1 PRM 0.7V */ | 
 | 	/* CPU1 PRM 1.2V CH03 */ | 
 | 	/* CPU1 PRM 0.8V */ | 
 | 	/* CPU1 PRM 1.2V CH47 */ | 
 | }; | 
 |  | 
 | &i2c7 { | 
 | 	status = "okay"; | 
 |  | 
 | 	pca9541a@70 { | 
 | 		compatible = "nxp,pca9541"; | 
 | 		reg = <0x70>; | 
 |  | 
 | 		i2c-arb { | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 |  | 
 | 			hotswap@54 { | 
 | 				compatible = "ti,lm5066i"; | 
 | 				reg = <0x54>; | 
 | 			}; | 
 | 		}; | 
 |  | 
 | 	}; | 
 |  | 
 | 	vrm@64 { | 
 | 		compatible = "isil,isl68137"; | 
 | 		reg = <0x64>; | 
 | 	}; | 
 |  | 
 | 	vrm@40 { | 
 | 		compatible = "isil,isl68137"; | 
 | 		reg = <0x40>; | 
 | 	}; | 
 |  | 
 | 	vrm@60 { | 
 | 		compatible = "isil,isl68137"; | 
 | 		reg = <0x60>; | 
 | 	}; | 
 |  | 
 | 	vrm@43 { | 
 | 		compatible = "infineon,ir38064"; | 
 | 		reg = <0x43>; | 
 | 	}; | 
 |  | 
 | 	vrm@41 { | 
 | 		compatible = "isil,isl68137"; | 
 | 		reg = <0x41>; | 
 | 	}; | 
 |  | 
 | 	/* Master selector PCA9541A @70h (other master: CPU0) | 
 | 	 *   LM5066I PMBUS @10h | 
 | 	 */ | 
 |  | 
 | 	/* | 
 | 	 * Brick will be one of these types/addresses.  Depending | 
 | 	 * on the board SKU only one is actually present and will successfully | 
 | 	 * instantiate while the others will fail the probe operation. | 
 | 	 * These are the PVT (and presumably beyond) addresses: | 
 | 	 *    12V Quarter Brick DC/DC Converter Q54SJ12050 @6Ah | 
 | 	 *    12V Quarter Brick DC/DC Converter Q54SH12050 @30h | 
 | 	 */ | 
 | 	power-brick@6a { | 
 | 		compatible = "delta,dps800"; | 
 | 		reg = <0x6a>; | 
 | 	}; | 
 | 	power-brick@30 { | 
 | 		compatible = "delta,dps800"; | 
 | 		reg = <0x30>; | 
 | 	}; | 
 |  | 
 | 	/* CPU0 VR ISL68137 0.7V, 0.96V PMBUS @64h */ | 
 | 	/* CPU0 VR ISL68137 1.2V CH03 PMBUS @40h */ | 
 | 	/* CPU0 VR ISL68137 0.8V PMBUS @60h */ | 
 | 	/* CPU0 VR 1.0V IR38064 I2C @11h, PMBUS @43h */ | 
 | 	/* CPU0 VR ISL68137 1.2V CH47 PMBUS @41h */ | 
 | 	/* Master selector PCA9541A @70h (other master: CPU0) | 
 | 	 *   LM5066I PMBUS @10h | 
 | 	 */ | 
 | }; | 
 |  | 
 | &i2c8 { | 
 | 	status = "okay"; | 
 |  | 
 | 	vrm@64 { | 
 | 		compatible = "isil,isl68137"; | 
 | 		reg = <0x64>; | 
 | 	}; | 
 |  | 
 | 	vrm@40 { | 
 | 		compatible = "isil,isl68137"; | 
 | 		reg = <0x40>; | 
 | 	}; | 
 |  | 
 | 	vrm@41 { | 
 | 		compatible = "isil,isl68137"; | 
 | 		reg = <0x41>; | 
 | 	}; | 
 |  | 
 | 	vrm@42 { | 
 | 		compatible = "infineon,ir38064"; | 
 | 		reg = <0x42>; | 
 | 	}; | 
 |  | 
 | 	vrm@60 { | 
 | 		compatible = "isil,isl68137"; | 
 | 		reg = <0x60>; | 
 | 	}; | 
 |  | 
 | 	/* CPU1 VR ISL68137 0.7V, 0.96V PMBUS @64h */ | 
 | 	/* CPU1 VR ISL68137 1.2V CH03 PMBUS @40h */ | 
 | 	/* CPU1 VR ISL68137 1.2V CH47 PMBUS @41h */ | 
 | 	/* CPU1 VR 1.0V IR38064 I2C @12h, PMBUS @42h */ | 
 | 	/* CPU1 VR ISL68137 0.8V PMBUS @60h */ | 
 | }; | 
 |  | 
 |  | 
 | &i2c9 { | 
 | 	status = "disabled"; | 
 |  | 
 | 	/* Fan board */ | 
 | }; | 
 |  | 
 | &i2c10 { | 
 | 	status = "disabled"; | 
 | }; | 
 |  | 
 | &i2c11 { | 
 | 	status = "disabled"; | 
 |  | 
 | 	/* GPU sideband */ | 
 | }; | 
 |  | 
 | &i2c12 { | 
 | 	status = "disabled"; | 
 | }; | 
 |  | 
 | &i2c13 { | 
 | 	status = "disabled"; | 
 |  | 
 | 	/* MUX PI3USB102 | 
 | 	 *   CPU0 debug | 
 | 	 *   CPU1 debug | 
 | 	 */ | 
 | }; | 
 |  | 
 | &pinctrl { | 
 | 	aspeed,external-nodes = <&gfx &lhc>; | 
 |  | 
 | 	pinctrl_gpioh_unbiased: gpioi_unbiased { | 
 | 		pins = "A8", "C7", "B7", "A7", "D7", "B6", "A6", "E7"; | 
 | 		bias-disable; | 
 | 	}; | 
 | }; | 
 |  | 
 | &gpio { | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = <&pinctrl_gpioh_unbiased>; | 
 |  | 
 | 	gpio-line-names = | 
 | 	/*A0-A7*/	"","cfam-reset","","","","","","", | 
 | 	/*B0-B7*/	"","","","","","","","", | 
 | 	/*C0-C7*/	"","","","","","","","", | 
 | 	/*D0-D7*/	"fsi-enable","","","","","led-sys-boot-status","led-attention", | 
 | 				"led-fault", | 
 | 	/*E0-E7*/	"","","","","","","","presence-pcie-e2b", | 
 | 	/*F0-F7*/	"","","","","","","","checkstop", | 
 | 	/*G0-G7*/	"fsi-clock","fsi-data","","","","","","", | 
 | 	/*H0-H7*/	"onewire0","onewire1","onewire2","onewire3","","","","", | 
 | 	/*I0-I7*/	"","","","power-button","","","","", | 
 | 	/*J0-J7*/	"","","","","","","","", | 
 | 	/*K0-K7*/	"","","","","","","","", | 
 | 	/*L0-L7*/	"","","","","","","","", | 
 | 	/*M0-M7*/	"","","","","","","","", | 
 | 	/*N0-N7*/	"","","","","","","","", | 
 | 	/*O0-O7*/	"","","","","iso_u164_en","","fsi-trans","", | 
 | 	/*P0-P7*/	"ncsi_mux_en_n","bmc_i2c2_sw_rst_n","","bmc_i2c5_sw_rst_n","", | 
 | 				"","fsi-mux","", | 
 | 	/*Q0-Q7*/	"","","","","","","","", | 
 | 	/*R0-R7*/	"","","","","","","","", | 
 | 	/*S0-S7*/	"","","","","","","","", | 
 | 	/*T0-T7*/	"","","","","","","","", | 
 | 	/*U0-U7*/	"","","","","","","","", | 
 | 	/*V0-V7*/	"","","","","","","","", | 
 | 	/*W0-W7*/	"","","","","","","","", | 
 | 	/*X0-X7*/	"","","","","","","","", | 
 | 	/*Y0-Y7*/	"","","","","","","","", | 
 | 	/*Z0-Z7*/	"","","","","","","","", | 
 | 	/*AA0-AA7*/	"","","led-hdd-fault","","","","","", | 
 | 	/*AB0-AB7*/	"","","","","","","","", | 
 | 	/*AC0-AC7*/	"","","","","","","",""; | 
 |  | 
 | 	line_iso_u146_en { | 
 | 		gpio-hog; | 
 | 		gpios = <ASPEED_GPIO(O, 4) GPIO_ACTIVE_HIGH>; | 
 | 		output-high; | 
 | 	}; | 
 |  | 
 | 	ncsi_mux_en_n { | 
 | 		gpio-hog; | 
 | 		gpios = <ASPEED_GPIO(P, 0) GPIO_ACTIVE_HIGH>; | 
 | 		output-low; | 
 | 	}; | 
 |  | 
 | 	line_bmc_i2c2_sw_rst_n { | 
 | 		gpio-hog; | 
 | 		gpios = <ASPEED_GPIO(P, 1) GPIO_ACTIVE_HIGH>; | 
 | 		output-high; | 
 | 	}; | 
 |  | 
 | 	line_bmc_i2c5_sw_rst_n { | 
 | 		gpio-hog; | 
 | 		gpios = <ASPEED_GPIO(P, 3) GPIO_ACTIVE_HIGH>; | 
 | 		output-high; | 
 | 	}; | 
 | }; | 
 |  | 
 | &vuart { | 
 | 	status = "okay"; | 
 | }; | 
 |  | 
 | &gfx { | 
 | 	status = "okay"; | 
 | }; | 
 |  | 
 | &pwm_tacho { | 
 | 	status = "okay"; | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = <&pinctrl_pwm0_default &pinctrl_pwm1_default | 
 | 		&pinctrl_pwm2_default &pinctrl_pwm3_default>; | 
 |  | 
 | 	fan@0 { | 
 | 		reg = <0x00>; | 
 | 		aspeed,fan-tach-ch = /bits/ 8 <0x00>; | 
 | 	}; | 
 |  | 
 | 	fan@1 { | 
 | 		reg = <0x01>; | 
 | 		aspeed,fan-tach-ch = /bits/ 8 <0x01>; | 
 | 	}; | 
 |  | 
 | 	fan@2 { | 
 | 		reg = <0x02>; | 
 | 		aspeed,fan-tach-ch = /bits/ 8 <0x02>; | 
 | 	}; | 
 |  | 
 | 	fan@3 { | 
 | 		reg = <0x03>; | 
 | 		aspeed,fan-tach-ch = /bits/ 8 <0x03>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &ibt { | 
 | 	status = "okay"; | 
 | }; | 
 |  | 
 | #include "ibm-power9-dual.dtsi" |