[PATCH 3/3] ARM: dts: aspeed: Add device tree for mgx4u BMC

Krzysztof Kozlowski krzk at kernel.org
Sat Aug 16 18:17:46 AEST 2025


On 15/08/2025 21:45, Marc Olberding wrote:
> +		i2c69 = &i2c9_mux_6;
> +		i2c70 = &i2c9_mux_7;
> +	};
> +
> +	chosen {
> +		bootargs = "console=ttyS4,115200n8";

No, use stdout.

> +	};
> +
> +	memory at 80000000 {
> +		device_type = "memory";
> +		reg = <0x80000000 0x80000000>;
> +	};
> +
> +	reserved-memory {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges;
> +
> +		gfx_memory: framebuffer {
> +			size = <0x01000000>;
> +			alignment = <0x01000000>;
> +			compatible = "shared-dma-pool";
> +			reusable;
> +		};
> +
> +		video_engine_memory: jpegbuffer {
> +			size = <0x02000000>;	/* 32M */
> +			alignment = <0x01000000>;
> +			compatible = "shared-dma-pool";
> +			reusable;
> +		};
> +	};
> +};
> +
> +&ehci1 {
> +	status = "okay";
> +};
> +
> +&emmc_controller {
> +	status = "okay";
> +};
> +
> +&emmc {
> +	non-removable;
> +	bus-width = <4>;
> +	max-frequency = <100000000>;
> +	clk-phase-mmc-hs200 = <9>, <225>;
> +};
> +
> +&fmc {
> +	status = "okay";
> +
> +	flash at 0 {
> +		status = "okay";
> +		m25p,fast-read;
> +		label = "bmc";
> +		spi-rx-bus-width = <4>;
> +		spi-tx-bus-width = <4>;
> +		spi-max-frequency = <50000000>;
> +#include "openbmc-flash-layout-128.dtsi"
> +	};
> +};
> +
> +&gfx {
> +	memory-region = <&gfx_memory>;
> +	status = "okay";
> +};
> +
> +&gpio0 {
> +	gpio-line-names =
> +	/*A0-A7*/ "","","","","","","","",
> +	/*B0-B7*/ "","","","","","","","RST_BMC_8211F_N",
> +	/*C0-C7*/ "","","","","","","","",
> +	/*D0-D7*/ "","","","","","","","",
> +	/*E0-E7*/ "","","","","","","","",
> +	/*F0-F7*/ "","RST_BIOSROM_1_BMC_N","","RST_SPI_PFRM1_R_N","","","SPI_BIOS_MUX_SEL","",
> +	/*G0-G7*/ "","","","","","","","",
> +	/*H0-H7*/ "","","","","","","","",
> +	/*I0-I7*/ "","","","","","","","",
> +	/*J0-J7*/ "","","","","","","","",
> +	/*K0-K7*/ "","","","","","","","",
> +	/*L0-L7*/ "","","","","","","","",
> +	/*M0-M7*/ "","","","","","","","",
> +	/*N0-N7*/ "","","","","","","","",
> +	/*O0-O7*/ "","","","","","","","",
> +	/*P0-P7*/ "","","","","","","","",
> +	/*Q0-Q7*/ "","","","","","","","",
> +	/*R0-R7*/ "","","","","","","","",
> +	/*S0-S7*/ "","","","","","","","",
> +	/*T0-T7*/ "","","","","","","","",
> +	/*U0-U7*/ "","","","","","","","",
> +	/*V0-V7*/ "","","SCM_HPM_STBY_RST_N","","SCM_HPM_STBY_EN","","","",
> +	/*W0-W7*/ "","","","","","","","",
> +	/*X0-X7*/ "","","","","","","","",
> +	/*Y0-Y7*/ "","","","","","","","",
> +	/*Z0-Z7*/ "","","","","","","","";
> +	status = "okay";
> +};
> +
> +&gpio1 {
> +	gpio-line-names =
> +	/*18A0-18A7*/ "","","","","","","","",
> +	/*18B0-18B7*/ "","","","","SW_MAIN_EN","HOST_GLOBAL_WP_N","","",
> +	/*18C0-18C7*/ "","","","","","","","",
> +	/*18D0-18D7*/ "","","","","","","","",
> +	/*18E0-18E3*/ "","","","";
> +	status = "okay";
> +};
> +
> +&i2c0 {
> +	status = "okay";
> +
> +	i2c-mux at 73 {
> +		compatible = "nxp,pca9548";
> +		reg = <0x73>;
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		i2c-mux-idle-disconnect;
> +
> +		i2c0_mux_0: i2c at 0 {
> +			reg = <0>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c0_mux_1: i2c at 1 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			reg = <1>;
> +		};
> +
> +		i2c0_mux_2: i2c at 2 {
> +			reg = <2>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c0_mux_3: i2c at 3 {
> +			reg = <3>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			eeprom at 51 {
> +				compatible = "atmel,24c02";
> +				reg = <0x51>;
> +			};
> +		};
> +
> +		i2c0_mux_4: i2c at 4 {
> +			reg = <4>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c0_mux_5: i2c at 5 {
> +			reg = <5>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c0_mux_6: i2c at 6 {
> +			reg = <6>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			tmp75 at 4c {

Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation

> +				compatible = "ti,tmp75";
> +				reg = <0x4c>;
> +			};
> +		};
> +
> +		i2c0_mux_7: i2c at 7 {
> +			reg = <7>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +	};
> +
> +	i2c-mux at 77 {
> +		compatible = "nxp,pca9548";
> +		reg = <0x77>;
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		i2c-mux-idle-disconnect;
> +
> +		i2c0_1_mux_0: i2c at 0 {
> +			reg = <0>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c0_1_mux_1: i2c at 1 {
> +			reg = <1>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c0_1_mux_2: i2c at 2 {
> +			reg = <2>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c0_1_mux_3: i2c at 3 {
> +			reg = <3>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c0_1_mux_4: i2c at 4 {
> +			reg = <4>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c0_1_mux_5: i2c at 5 {
> +			reg = <5>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c0_1_mux_6: i2c at 6 {
> +			reg = <6>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c0_1_mux_7: i2c at 7 {
> +			reg = <7>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +	};
> +};
> +
> +&i2c3 {
> +	status = "okay";
> +
> +	i2c-mux at 72 {
> +		compatible = "nxp,pca9548";
> +		reg = <0x72>;
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		i2c-mux-idle-disconnect;
> +
> +		i2c3_mux_6: i2c at 6 {
> +			reg = <6>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c3_mux_7: i2c at 7 {
> +			reg = <7>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +	};
> +};
> +
> +&i2c4 {
> +	status = "okay";
> +};
> +
> +&i2c5 {
> +	status = "okay";
> +
> +	i2c-mux at 77 {
> +		compatible = "nxp,pca9548";
> +		reg = <0x77>;
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		i2c-mux-idle-disconnect;
> +
> +		i2c5_mux_0: i2c at 0 {
> +			reg = <0>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c5_mux_1: i2c at 1 {
> +			reg = <1>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c5_mux_2: i2c at 2 {
> +			reg = <2>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c5_mux_3: i2c at 3 {
> +			reg = <3>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c5_mux_4: i2c at 4 {
> +			reg = <4>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c5_mux_5: i2c at 5 {
> +			reg = <5>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c5_mux_6: i2c at 6 {
> +			reg = <6>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c5_mux_7: i2c at 7 {
> +			reg = <7>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +	};
> +};
> +
> +&i2c6 {
> +	status = "okay";
> +
> +	i2c-mux at 70 {
> +		reg = <0x70>;
> +		compatible = "nxp,pca9548";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		i2c-mux-idle-disconnect;
> +
> +		i2c6_mux_0: i2c at 0 {
> +			reg = <0>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			tmp75 at 4a {
> +				compatible = "ti,tmp75";
> +				reg = <0x4a>;
> +			};
> +
> +			tmp75 at 4b {
> +				compatible = "ti,tmp75";
> +				reg = <0x4b>;
> +			};
> +
> +			eeprom at 51 {
> +				compatible = "atmel,24c64";
> +				reg = <0x51>;
> +				pagesize = <32>;
> +			};
> +		};
> +
> +		i2c6_mux_1: i2c at 1 {
> +			reg = <1>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			/*fan controller 0*/
> +			max31790 at 20 {
> +				compatible = "maxim,max31790";
> +				reg = <0x20>;
> +			};
> +
> +			/*fan controller 1*/
> +			max31790 at 21 {
> +				compatible = "maxim,max31790";
> +				reg = <0x21>;
> +			};
> +
> +			eeprom at 57 {
> +				compatible = "atmel,24c64";
> +				reg = <0x57>;
> +				pagesize = <32>;
> +			};
> +
> +			hpmfanio: pca9555 at 27 {

Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation


> +				compatible = "nxp,pca9555";
> +				reg = <0x27>;
> +				gpio-controller;
> +				#gpio-cells = <2>;
> +				interrupt-controller;
> +				#interrupt-cells = <2>;
> +				interrupt-parent = <&gpio0>;
> +				interrupts = <11 0>;
> +				gpio-line-names =
> +						"HPM_FAN1_INSTALL", "HPM_FAN2_INSTALL",
> +						"HPM_FAN3_INSTALL", "HPM_FAN4_INSTALL",
> +						"HPM_FAN5_INSTALL", "",
> +						"","";
> +			};
> +		 };
> +
> +		 i2c6_mux_2: i2c at 2 {
> +			reg = <2>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		 };
> +
> +		 i2c6_mux_3: i2c at 3 {
> +			reg = <3>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			/* 4056 fan board_EEPROM*/
> +			eeprom at 57 {
> +				compatible = "atmel,24c64";
> +				reg = <0x57>;
> +				pagesize = <32>;
> +			};
> +
> +			/*fan controller 0*/
> +			max31790 at 20 {
> +				compatible = "maxim,max31790";
> +				reg = <0x20>;
> +			};
> +			/*fan controller 1*/
> +			max31790 at 21 {
> +				compatible = "maxim,max31790";
> +				reg = <0x21>;
> +			};
> +
> +			gpufanio: pca9555 at 27 {
> +				compatible = "nxp,pca9555";
> +				reg = <0x27>;
> +				gpio-controller;
> +				#gpio-cells = <2>;
> +				interrupt-controller;
> +				#interrupt-cells = <2>;
> +				interrupt-parent = <&gpio0>;
> +				interrupts = <11 0>;
> +				gpio-line-names =
> +						"GPU_FAN1_INSTALL", "GPU_FAN2_INSTALL",
> +						"GPU_FAN3_INSTALL", "GPU_FAN4_INSTALL",
> +						"GPU_FAN5_INSTALL", "",
> +						"","";
> +			};
> +		 };
> +
> +		i2c6_mux_4: i2c at 4 {
> +			reg = <4>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			/* IO board EEPROM*/
> +			eeprom at 57 {
> +				compatible = "atmel,24c64";
> +				reg = <0x57>;
> +				pagesize = <32>;
> +			};
> +		};
> +
> +		i2c6_mux_5: i2c at 5 {
> +			reg = <5>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c6_mux_6: i2c at 6 {
> +			reg = <6>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c6_mux_7: i2c at 7 {
> +			reg = <7>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +	};
> +};
> +
> +&i2c7 {
> +	multi-master;
> +	status = "okay";
> +
> +	i2c-mux at 70 {
> +		compatible = "nxp,pca9548";
> +		reg = <0x70>;
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		i2c7_mux_0: i2c at 0 {
> +			reg = <0>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c7_mux_1: i2c at 1 {
> +			reg = <1>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			i2c-mux at 71 {
> +				compatible = "nxp,pca9545";
> +				reg = <0x71>;
> +				#address-cells = <1>;
> +				#size-cells = <0>;
> +
> +				i2c7_1_mux_0: i2c at 0 {
> +					reg = <0>;
> +					#address-cells = <1>;
> +					#size-cells = <0>;
> +				};
> +
> +				i2c7_1_mux_1: i2c at 1 {
> +					reg = <1>;
> +					#address-cells = <1>;
> +					#size-cells = <0>;
> +
> +					eeprom at 55 {
> +						compatible = "atmel,24c64";
> +						reg = <0x55>;
> +						pagesize = <32>;
> +					};
> +
> +					eeprom at 50 {
> +						compatible = "atmel,24c02";
> +						reg = <0x50>;
> +						pagesize = <32>;
> +					};
> +
> +					eeprom at 53 {
> +						compatible = "atmel,24c02";
> +						reg = <0x53>;
> +						pagesize = <32>;
> +					};
> +				};
> +
> +				i2c7_1_mux_2: i2c at 2 {
> +					reg = <2>;
> +					#address-cells = <1>;
> +					#size-cells = <0>;
> +				};
> +
> +				i2c7_1_mux_3: i2c at 3 {
> +					reg = <3>;
> +					#address-cells = <1>;
> +					#size-cells = <0>;
> +				};
> +			};
> +		};
> +
> +		i2c7_mux_2: i2c at 2 {
> +			reg = <2>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +		};
> +
> +		i2c7_mux_3: i2c at 3 {
> +			reg = <3>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			/* XDPE19284B - CPU0 PVCCIN VR */
> +			xdpe152c4 at 60 {
> +				compatible = "infineon,xdpe152c4";
> +				reg = <0x60>;
> +			};
> +
> +			/* XDPE19284B - CPU0 PVCCFA EHV FIVRA / PVCCINF_VR*/
> +			xdpe152c4 at 62 {
> +				compatible = "infineon,xdpe152c4";
> +				reg = <0x62>;
> +			};
> +
> +			/* XDPE19284B - CPU0 PVCCA EHV PVCCIN VR */
> +			xdpe152c4 at 74 {
> +				compatible = "infineon,xdpe152c4";
> +				reg = <0x74>;
> +			};
> +
> +			/* XDPE19284B - CPU0 PVVCCD0 & D1 VR */
> +			xdpe152c4 at 76 {
> +				compatible = "infineon,xdpe152c4";
> +				reg = <0x76>;
> +			};
> +		};
> +
> +		i2c7_mux_4: i2c at 4 {
> +			reg = <4>;
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +
> +			/* XDPE19284B - CPU1 PVCCIN VR */
> +			xdpe152c4 at 60 {

Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation




Best regards,
Krzysztof


More information about the Linux-aspeed mailing list