| // SPDX-License-Identifier: GPL-2.0+ | 
 | // Copyright (c) 2018 Facebook Inc. | 
 | // Author: Vijay Khemka <vijaykhemka@fb.com> | 
 | /dts-v1/; | 
 |  | 
 | #include "aspeed-g5.dtsi" | 
 | #include <dt-bindings/gpio/aspeed-gpio.h> | 
 | #include <dt-bindings/i2c/i2c.h> | 
 |  | 
 | / { | 
 | 	model = "Facebook TiogaPass BMC"; | 
 | 	compatible = "facebook,tiogapass-bmc", "aspeed,ast2500"; | 
 | 	aliases { | 
 | 		serial0 = &uart1; | 
 | 		serial4 = &uart5; | 
 |  | 
 | 		/* | 
 | 		 * Hardcode the bus number of i2c switches' channels to | 
 | 		 * avoid breaking the legacy applications. | 
 | 		 */ | 
 | 		i2c16 = &imux16; | 
 | 		i2c17 = &imux17; | 
 | 		i2c18 = &imux18; | 
 | 		i2c19 = &imux19; | 
 | 		i2c20 = &imux20; | 
 | 		i2c21 = &imux21; | 
 | 		i2c22 = &imux22; | 
 | 		i2c23 = &imux23; | 
 | 		i2c24 = &imux24; | 
 | 		i2c25 = &imux25; | 
 | 		i2c26 = &imux26; | 
 | 		i2c27 = &imux27; | 
 | 		i2c28 = &imux28; | 
 | 		i2c29 = &imux29; | 
 | 		i2c30 = &imux30; | 
 | 		i2c31 = &imux31; | 
 | 	}; | 
 | 	chosen { | 
 | 		stdout-path = &uart5; | 
 | 		bootargs = "console=ttyS4,115200 earlycon"; | 
 | 	}; | 
 |  | 
 | 	memory@80000000 { | 
 | 		reg = <0x80000000 0x20000000>; | 
 | 	}; | 
 |  | 
 | 	iio-hwmon { | 
 | 		compatible = "iio-hwmon"; | 
 | 		io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, | 
 | 			      <&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>; | 
 | 	}; | 
 |  | 
 | }; | 
 |  | 
 | &fmc { | 
 | 	status = "okay"; | 
 | 	flash@0 { | 
 | 		status = "okay"; | 
 | 		m25p,fast-read; | 
 | #include "openbmc-flash-layout.dtsi" | 
 | 	}; | 
 | }; | 
 |  | 
 | &spi1 { | 
 | 	status = "okay"; | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = <&pinctrl_spi1_default>; | 
 | 	flash@0 { | 
 | 		status = "okay"; | 
 | 		m25p,fast-read; | 
 | 		label = "pnor"; | 
 | 	}; | 
 | }; | 
 |  | 
 | &lpc_snoop { | 
 | 	status = "okay"; | 
 | 	snoop-ports = <0x80>; | 
 | }; | 
 |  | 
 | &lpc_ctrl { | 
 | 	// Enable lpc clock | 
 | 	status = "okay"; | 
 | }; | 
 |  | 
 | &uart1 { | 
 | 	// Host Console | 
 | 	status = "okay"; | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = <&pinctrl_txd1_default | 
 | 		     &pinctrl_rxd1_default>; | 
 | }; | 
 |  | 
 | &uart2 { | 
 | 	// SoL Host Console | 
 | 	status = "okay"; | 
 | }; | 
 |  | 
 | &uart3 { | 
 | 	// SoL BMC Console | 
 | 	status = "okay"; | 
 | }; | 
 |  | 
 | &uart5 { | 
 | 	// BMC Console | 
 | 	status = "okay"; | 
 | }; | 
 |  | 
 | &kcs2 { | 
 | 	// BMC KCS channel 2 | 
 | 	status = "okay"; | 
 | 	aspeed,lpc-io-reg = <0xca8>; | 
 | }; | 
 |  | 
 | &kcs3 { | 
 | 	// BMC KCS channel 3 | 
 | 	status = "okay"; | 
 | 	aspeed,lpc-io-reg = <0xca2>; | 
 | }; | 
 |  | 
 | &gpio { | 
 | 	status = "okay"; | 
 | 	gpio-line-names = | 
 | 	/*A0-A7*/	"BMC_CPLD_FPGA_SEL","","","","","","","", | 
 | 	/*B0-B7*/	"","BMC_DEBUG_EN","","","","BMC_PPIN","PS_PWROK", | 
 | 			"IRQ_PVDDQ_GHJ_VRHOT_LVT3", | 
 | 	/*C0-C7*/	"","","","","","","","", | 
 | 	/*D0-D7*/	"BIOS_MRC_DEBUG_MSG_DIS","BOARD_REV_ID0","", | 
 | 			"BOARD_REV_ID1","IRQ_DIMM_SAVE_LVT3","BOARD_REV_ID2", | 
 | 			"CPU_ERR0_LVT3_BMC","CPU_ERR1_LVT3_BMC", | 
 | 	/*E0-E7*/	"RESET_BUTTON","RESET_OUT","POWER_BUTTON", | 
 | 			"POWER_OUT","NMI_BUTTON","","CPU0_PROCHOT_LVT3_ BMC", | 
 | 			"CPU1_PROCHOT_LVT3_ BMC", | 
 | 	/*F0-F7*/	"IRQ_PVDDQ_ABC_VRHOT_LVT3","", | 
 | 			"IRQ_PVCCIN_CPU0_VRHOT_LVC3", | 
 | 			"IRQ_PVCCIN_CPU1_VRHOT_LVC3", | 
 | 			"IRQ_PVDDQ_KLM_VRHOT_LVT3","","P3VBAT_BRIDGE_EN","", | 
 | 	/*G0-G7*/	"CPU_ERR2_LVT3","CPU_CATERR_LVT3","PCH_BMC_THERMTRIP", | 
 | 			"CPU0_SKTOCC_LVT3","","","","BIOS_SMI_ACTIVE", | 
 | 	/*H0-H7*/	"LED_POST_CODE_0","LED_POST_CODE_1","LED_POST_CODE_2", | 
 | 			"LED_POST_CODE_3","LED_POST_CODE_4","LED_POST_CODE_5", | 
 | 			"LED_POST_CODE_6","LED_POST_CODE_7", | 
 | 	/*I0-I7*/	"CPU0_FIVR_FAULT_LVT3","CPU1_FIVR_FAULT_LVT3", | 
 | 			"FORCE_ADR","UV_ADR_TRIGGER_EN","","","","", | 
 | 	/*J0-J7*/	"","","","","","","","", | 
 | 	/*K0-K7*/	"","","","","","","","", | 
 | 	/*L0-L7*/	"IRQ_UV_DETECT","IRQ_OC_DETECT","HSC_TIMER_EXP","", | 
 | 			"MEM_THERM_EVENT_PCH","PMBUS_ALERT_BUF_EN","","", | 
 | 	/*M0-M7*/	"CPU0_RC_ERROR","CPU1_RC_ERROR","","OC_DETECT_EN", | 
 | 			"CPU0_THERMTRIP_LATCH_LVT3", | 
 | 			"CPU1_THERMTRIP_LATCH_LVT3","","", | 
 | 	/*N0-N7*/	"","","","CPU_MSMI_LVT3","","BIOS_SPI_BMC_CTRL","","", | 
 | 	/*O0-O7*/	"","","","","","","","", | 
 | 	/*P0-P7*/	"BOARD_SKU_ID0","BOARD_SKU_ID1","BOARD_SKU_ID2", | 
 | 			"BOARD_SKU_ID3","BOARD_SKU_ID4","BMC_PREQ", | 
 | 			"BMC_PWR_DEBUG","RST_RSMRST", | 
 | 	/*Q0-Q7*/	"","","","","UARTSW_LSB","UARTSW_MSB", | 
 | 			"POST_CARD_PRES_BMC","PE_BMC_WAKE", | 
 | 	/*R0-R7*/	"","","BMC_TCK_MUX_SEL","BMC_PRDY", | 
 | 			"BMC_XDP_PRSNT_IN","RST_BMC_PLTRST_BUF","SLT_CFG0", | 
 | 			"SLT_CFG1", | 
 | 	/*S0-S7*/	"THROTTLE","BMC_READY","","HSC_SMBUS_SWITCH_EN","", | 
 | 			"","","", | 
 | 	/*T0-T7*/	"","","","","","","","", | 
 | 	/*U0-U7*/	"","","","","","BMC_FAULT","","", | 
 | 	/*V0-V7*/	"","","","FAST_PROCHOT_EN","","","","", | 
 | 	/*W0-W7*/	"","","","","","","","", | 
 | 	/*X0-X7*/	"","","","GLOBAL_RST_WARN", | 
 | 			"CPU0_MEMABC_MEMHOT_LVT3_BMC", | 
 | 			"CPU0_MEMDEF_MEMHOT_LVT3_BMC", | 
 | 			"CPU1_MEMGHJ_MEMHOT_LVT3_BMC", | 
 | 			"CPU1_MEMKLM_MEMHOT_LVT3_BMC", | 
 | 	/*Y0-Y7*/	"SIO_S3","SIO_S5","BMC_JTAG_SEL","SIO_ONCONTROL","", | 
 | 			"","","", | 
 | 	/*Z0-Z7*/	"","SIO_POWER_GOOD","IRQ_PVDDQ_DEF_VRHOT_LVT3","", | 
 | 			"","","","", | 
 | 	/*AA0-AA7*/	"CPU1_SKTOCC_LVT3","IRQ_SML1_PMBUS_ALERT", | 
 | 			"SERVER_POWER_LED","","PECI_MUX_SELECT","UV_HIGH_SET", | 
 | 			"","POST_COMPLETE", | 
 | 	/*AB0-AB7*/	"IRQ_HSC_FAULT","OCP_MEZZA_PRES","","","","","","", | 
 | 	/*AC0-AC7*/	"","","","","","","",""; | 
 | }; | 
 |  | 
 | &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_rmii2_default>; | 
 | 	use-ncsi; | 
 | }; | 
 |  | 
 | &adc { | 
 | 	status = "okay"; | 
 | }; | 
 |  | 
 | &i2c0 { | 
 | 	status = "okay"; | 
 | 	//Airmax Conn B, CPU0 PIROM, CPU1 PIROM | 
 | }; | 
 |  | 
 | &i2c1 { | 
 | 	status = "okay"; | 
 | 	//X24 Riser | 
 | 	i2c-switch@71 { | 
 | 		compatible = "nxp,pca9544"; | 
 | 		#address-cells = <1>; | 
 | 		#size-cells = <0>; | 
 | 		reg = <0x71>; | 
 |  | 
 | 		imux16: i2c@0 { | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			reg = <0>; | 
 |  | 
 | 			ina230@45 { | 
 | 				compatible = "ti,ina230"; | 
 | 				reg = <0x45>; | 
 | 			}; | 
 |  | 
 | 			tmp75@48 { | 
 | 				compatible = "ti,tmp75"; | 
 | 				reg = <0x48>; | 
 | 			}; | 
 |  | 
 | 			tmp421@49 { | 
 | 				compatible = "ti,tmp75"; | 
 | 				reg = <0x49>; | 
 | 			}; | 
 |  | 
 | 			eeprom@50 { | 
 | 				compatible = "atmel,24c64"; | 
 | 				reg = <0x50>; | 
 | 				pagesize = <32>; | 
 | 			}; | 
 |  | 
 | 			i2c-switch@73 { | 
 | 				compatible = "nxp,pca9546"; | 
 | 				#address-cells = <1>; | 
 | 				#size-cells = <0>; | 
 | 				reg = <0x73>; | 
 |  | 
 | 				imux20: i2c@0 { | 
 | 					#address-cells = <1>; | 
 | 					#size-cells = <0>; | 
 | 					reg = <0>; | 
 | 				}; | 
 |  | 
 | 				imux21: i2c@1 { | 
 | 					#address-cells = <1>; | 
 | 					#size-cells = <0>; | 
 | 					reg = <1>; | 
 | 				}; | 
 |  | 
 | 				imux22: i2c@2 { | 
 | 					#address-cells = <1>; | 
 | 					#size-cells = <0>; | 
 | 					reg = <2>; | 
 | 				}; | 
 |  | 
 | 				imux23: i2c@3 { | 
 | 					#address-cells = <1>; | 
 | 					#size-cells = <0>; | 
 | 					reg = <3>; | 
 | 				}; | 
 |  | 
 | 			}; | 
 |  | 
 | 		}; | 
 |  | 
 | 		imux17: i2c@1 { | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			reg = <1>; | 
 |  | 
 | 			ina230@45 { | 
 | 				compatible = "ti,ina230"; | 
 | 				reg = <0x45>; | 
 | 			}; | 
 |  | 
 | 			tmp421@48 { | 
 | 				compatible = "ti,tmp75"; | 
 | 				reg = <0x48>; | 
 | 			}; | 
 |  | 
 | 			tmp421@49 { | 
 | 				compatible = "ti,tmp75"; | 
 | 				reg = <0x49>; | 
 | 			}; | 
 |  | 
 | 			eeprom@50 { | 
 | 				compatible = "atmel,24c64"; | 
 | 				reg = <0x50>; | 
 | 				pagesize = <32>; | 
 | 			}; | 
 |  | 
 | 			i2c-switch@73 { | 
 | 				compatible = "nxp,pca9546"; | 
 | 				#address-cells = <1>; | 
 | 				#size-cells = <0>; | 
 | 				reg = <0x73>; | 
 |  | 
 | 				imux24: i2c@0 { | 
 | 					#address-cells = <1>; | 
 | 					#size-cells = <0>; | 
 | 					reg = <0>; | 
 | 				}; | 
 |  | 
 | 				imux25: i2c@1 { | 
 | 					#address-cells = <1>; | 
 | 					#size-cells = <0>; | 
 | 					reg = <1>; | 
 | 				}; | 
 |  | 
 | 				imux26: i2c@2 { | 
 | 					#address-cells = <1>; | 
 | 					#size-cells = <0>; | 
 | 					reg = <2>; | 
 | 				}; | 
 |  | 
 | 				imux27: i2c@3 { | 
 | 					#address-cells = <1>; | 
 | 					#size-cells = <0>; | 
 | 					reg = <3>; | 
 | 				}; | 
 |  | 
 | 			}; | 
 |  | 
 | 		}; | 
 |  | 
 | 		imux18: i2c@2 { | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			reg = <2>; | 
 |  | 
 | 			ina230@45 { | 
 | 				compatible = "ti,ina230"; | 
 | 				reg = <0x45>; | 
 | 			}; | 
 |  | 
 | 			tmp421@48 { | 
 | 				compatible = "ti,tmp75"; | 
 | 				reg = <0x48>; | 
 | 			}; | 
 |  | 
 | 			tmp421@49 { | 
 | 				compatible = "ti,tmp75"; | 
 | 				reg = <0x49>; | 
 | 			}; | 
 |  | 
 | 			eeprom@50 { | 
 | 				compatible = "atmel,24c64"; | 
 | 				reg = <0x50>; | 
 | 				pagesize = <32>; | 
 | 			}; | 
 |  | 
 | 			i2c-switch@73 { | 
 | 				compatible = "nxp,pca9546"; | 
 | 				#address-cells = <1>; | 
 | 				#size-cells = <0>; | 
 | 				reg = <0x73>; | 
 |  | 
 | 				imux28: i2c@0 { | 
 | 					#address-cells = <1>; | 
 | 					#size-cells = <0>; | 
 | 					reg = <0>; | 
 | 				}; | 
 |  | 
 | 				imux29: i2c@1 { | 
 | 					#address-cells = <1>; | 
 | 					#size-cells = <0>; | 
 | 					reg = <1>; | 
 | 				}; | 
 |  | 
 | 				imux30: i2c@2 { | 
 | 					#address-cells = <1>; | 
 | 					#size-cells = <0>; | 
 | 					reg = <2>; | 
 | 				}; | 
 |  | 
 | 				imux31: i2c@3 { | 
 | 					#address-cells = <1>; | 
 | 					#size-cells = <0>; | 
 | 					reg = <3>; | 
 | 				}; | 
 |  | 
 | 			}; | 
 |  | 
 | 		}; | 
 |  | 
 | 		imux19: i2c@3 { | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			reg = <3>; | 
 |  | 
 | 			i2c-switch@40 { | 
 | 				compatible = "ti,ina230"; | 
 | 				reg = <0x40>; | 
 | 			}; | 
 |  | 
 | 			i2c-switch@41 { | 
 | 				compatible = "ti,ina230"; | 
 | 				reg = <0x41>; | 
 | 			}; | 
 |  | 
 | 			i2c-switch@45 { | 
 | 				compatible = "ti,ina230"; | 
 | 				reg = <0x45>; | 
 | 			}; | 
 |  | 
 | 		}; | 
 |  | 
 | 	}; | 
 | }; | 
 |  | 
 | &i2c2 { | 
 | 	status = "okay"; | 
 | 	// Mezz Management SMBus | 
 | }; | 
 |  | 
 | &i2c3 { | 
 | 	status = "okay"; | 
 | 	// SMBus to Board ID EEPROM | 
 | }; | 
 |  | 
 | &i2c4 { | 
 | 	status = "okay"; | 
 | 	// BMC Debug Header | 
 | 	ipmb0@10 { | 
 | 		compatible = "ipmb-dev"; | 
 | 		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>; | 
 | 		i2c-protocol; | 
 | 	}; | 
 | }; | 
 |  | 
 | &i2c5 { | 
 | 	status = "okay"; | 
 | 	// CPU Voltage regulators | 
 | 	regulator@48 { | 
 | 		compatible = "infineon,pxe1610"; | 
 | 		reg = <0x48>; | 
 | 	}; | 
 | 	regulator@4a { | 
 | 		compatible = "infineon,pxe1610"; | 
 | 		reg = <0x4a>; | 
 | 	}; | 
 | 	regulator@50 { | 
 | 		compatible = "infineon,pxe1610"; | 
 | 		reg = <0x50>; | 
 | 	}; | 
 | 	regulator@52 { | 
 | 		compatible = "infineon,pxe1610"; | 
 | 		reg = <0x52>; | 
 | 	}; | 
 | 	regulator@58 { | 
 | 		compatible = "infineon,pxe1610"; | 
 | 		reg = <0x58>; | 
 | 	}; | 
 | 	regulator@5a { | 
 | 		compatible = "infineon,pxe1610"; | 
 | 		reg = <0x5a>; | 
 | 	}; | 
 | 	regulator@68 { | 
 | 		compatible = "infineon,pxe1610"; | 
 | 		reg = <0x68>; | 
 | 	}; | 
 | 	regulator@70 { | 
 | 		compatible = "infineon,pxe1610"; | 
 | 		reg = <0x70>; | 
 | 	}; | 
 | 	regulator@72 { | 
 | 		compatible = "infineon,pxe1610"; | 
 | 		reg = <0x72>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &i2c6 { | 
 | 	status = "okay"; | 
 | 	tpm@20 { | 
 | 		compatible = "infineon,slb9645tt"; | 
 | 		reg = <0x20>; | 
 | 	}; | 
 | 	tmp421@4e { | 
 | 		compatible = "ti,tmp421"; | 
 | 		reg = <0x4e>; | 
 | 	}; | 
 | 	tmp421@4f { | 
 | 		compatible = "ti,tmp421"; | 
 | 		reg = <0x4f>; | 
 | 	}; | 
 | 	eeprom@54 { | 
 | 		compatible = "atmel,24c64"; | 
 | 		reg = <0x54>; | 
 | 		pagesize = <32>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &i2c7 { | 
 | 	status = "okay"; | 
 | 	//HSC, AirMax Conn A | 
 | 	adm1278@45 { | 
 | 		compatible = "adm1275"; | 
 | 		reg = <0x45>; | 
 | 		shunt-resistor-micro-ohms = <250>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &i2c8 { | 
 | 	status = "okay"; | 
 | 	tmp421@1f { | 
 | 		compatible = "ti,tmp421"; | 
 | 		reg = <0x1f>; | 
 | 	}; | 
 | 	//Mezz Sensor SMBus | 
 | }; | 
 |  | 
 | &i2c9 { | 
 | 	status = "okay"; | 
 | 	//USB Debug Connector | 
 | 	ipmb0@10 { | 
 | 		compatible = "ipmb-dev"; | 
 | 		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>; | 
 | 		i2c-protocol; | 
 | 	}; | 
 | }; | 
 |  | 
 | &pwm_tacho { | 
 | 	status = "okay"; | 
 | 	pinctrl-names = "default"; | 
 | 	pinctrl-0 = <&pinctrl_pwm0_default &pinctrl_pwm1_default>; | 
 | 	fan@0 { | 
 | 		reg = <0x00>; | 
 | 		aspeed,fan-tach-ch = /bits/ 8 <0x00>; | 
 | 	}; | 
 |  | 
 | 	fan@1 { | 
 | 		reg = <0x01>; | 
 | 		aspeed,fan-tach-ch = /bits/ 8 <0x02>; | 
 | 	}; | 
 | }; |