[PATCH v10 2/2] ARM: dts: aspeed: Add ASRock Rack B650D4U BMC
From: Prasanth Kumar Padarthi
Date: Thu Oct 29 2026 - 19:14:16 EST
Add the device tree for the ASRock Rack B650D4U BMC, based on the
ASPEED AST2600 SoC.
Describe the BMC memory, SPI NOR flash layout, UART5 console, GPIO
line names, graphics memory, and the EEPROM on I2C7. Use the EEPROM
as the NVMEM provider for the MAC0 address and configure MAC0 with
an RTL8211F PHY in RGMII-ID mode.
Enable both ADC engines with 2.5 V internal references and expose
the sixteen channels through an IIO-to-hwmon bridge for board
voltage monitoring.
Retain the SoC's serial4 alias for UART5 and select it as stdout,
without adding a second serial alias for the same UART.
Reviewed-by: Andrew Lunn <andrew@xxxxxxx> # MAC0 and MDIO nodes only
Signed-off-by: Prasanth Kumar Padarthi <prasanth.padarthi10@xxxxxxxxx>
---
Changes in v10:
- Use the inherited serial4/UART5 alias instead of duplicating it as serial0.
- Consolidate root nodes and fix peripheral/ADC property ordering.
- Keep ADC settings and MAC0/MDIO semantics unchanged.
Changes in v9: enable ADC0/ADC1 and add the ordered IIO-to-hwmon bridge.
Earlier history and testing limitations: see the cover letter.
Previous series:
https://lore.kernel.org/all/20261027034911.99482-1-prasanth.padarthi10@xxxxxxxxx/
arch/arm/boot/dts/aspeed/Makefile | 1 +
.../dts/aspeed/aspeed-bmc-asrock-b650d4u.dts | 169 ++++++++++++++++++
2 files changed, 170 insertions(+)
create mode 100644 arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts
diff --git a/arch/arm/boot/dts/aspeed/Makefile b/arch/arm/boot/dts/aspeed/Makefile
index 6874b621d..fcb94e62c 100644
--- a/arch/arm/boot/dts/aspeed/Makefile
+++ b/arch/arm/boot/dts/aspeed/Makefile
@@ -10,6 +10,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
aspeed-bmc-ampere-mtmitchell.dtb \
aspeed-bmc-arm-stardragon4800-rep2.dtb \
aspeed-bmc-asrock-altrad8.dtb \
+ aspeed-bmc-asrock-b650d4u.dtb \
aspeed-bmc-asrock-e3c246d4i.dtb \
aspeed-bmc-asrock-e3c256d4i.dtb \
aspeed-bmc-asrock-paul-ipmi-card.dtb \
diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts
new file mode 100644
index 000000000..522c4d53e
--- /dev/null
+++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-b650d4u.dts
@@ -0,0 +1,169 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "aspeed-g6.dtsi"
+
+/ {
+ compatible = "asrock,b650d4u-bmc", "aspeed,ast2600";
+ model = "ASRock Rack B650D4U BMC";
+
+ chosen {
+ stdout-path = "serial4:115200n8";
+ };
+
+ 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 1>, <&adc1 2>, <&adc1 3>,
+ <&adc1 4>, <&adc1 5>, <&adc1 6>, <&adc1 7>;
+ };
+
+ memory@80000000 {
+ device_type = "memory";
+ reg = <0x80000000 0x20000000>;
+ };
+
+ reserved-memory {
+ ranges;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ gfx_memory: framebuffer {
+ compatible = "shared-dma-pool";
+ alignment = <0x01000000>;
+ reusable;
+ size = <0x01000000>;
+ };
+ };
+};
+
+&adc0 {
+ 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>;
+ pinctrl-names = "default";
+ aspeed,int-vref-microvolt = <2500000>;
+
+ status = "okay";
+};
+
+&adc1 {
+ pinctrl-0 = <&pinctrl_adc8_default>,
+ <&pinctrl_adc9_default>,
+ <&pinctrl_adc10_default>,
+ <&pinctrl_adc11_default>,
+ <&pinctrl_adc12_default>,
+ <&pinctrl_adc13_default>,
+ <&pinctrl_adc14_default>,
+ <&pinctrl_adc15_default>;
+ pinctrl-names = "default";
+ aspeed,int-vref-microvolt = <2500000>;
+
+ status = "okay";
+};
+
+&fmc {
+ status = "okay";
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ label = "bmc";
+ spi-max-frequency = <50000000>;
+ spi-rx-bus-width = <4>;
+ m25p,fast-read;
+
+ status = "okay";
+
+#include "openbmc-flash-layout-64.dtsi"
+ };
+};
+
+&gfx {
+ memory-region = <&gfx_memory>;
+
+ status = "okay";
+};
+
+&gpio0 {
+ gpio-line-names =
+ /* A0-A7 */ "", "", "", "", "", "", "", "",
+ /* B0-B7 */ "", "", "", "", "", "", "", "",
+ /* C0-C7 */ "", "", "", "", "", "", "", "",
+ /* D0-D7 */ "", "", "", "", "", "", "", "",
+ /* E0-E7 */ "", "", "", "", "", "", "", "",
+ /* F0-F7 */ "", "", "", "", "", "", "", "",
+ /* G0-G7 */ "", "", "", "", "", "", "", "",
+ /* H0-H7 */ "", "", "", "", "", "", "", "",
+ /* I0-I7 */ "", "", "", "", "", "", "", "",
+ /* J0-J7 */ "", "", "", "", "", "", "", "",
+ /* K0-K7 */ "", "", "", "", "", "", "", "",
+ /* L0-L7 */ "", "", "", "", "", "", "", "",
+ /* M0-M7 */ "", "", "", "", "", "", "", "",
+ /* N0-N7 */ "", "", "", "", "", "", "", "",
+ /* O0-O7 */ "", "", "", "", "", "", "", "",
+ /* P0-P7 */ "button-reset-n", "control-reset-n",
+ "button-power-n", "control-power-n",
+ "button-nmi-n", "control-nmi-n",
+ "", "",
+ /* Q0-Q7 */ "", "", "", "", "", "", "", "",
+ /* R0-R7 */ "", "", "", "", "", "", "", "",
+ /* S0-S7 */ "", "", "", "", "", "", "", "",
+ /* T0-T7 */ "", "", "", "", "", "", "", "",
+ /* U0-U7 */ "", "", "", "", "", "", "", "",
+ /* V0-V7 */ "", "", "", "", "", "", "", "",
+ /* W0-W7 */ "", "", "", "", "", "", "", "",
+ /* X0-X7 */ "", "", "", "", "", "", "", "",
+ /* Y0-Y7 */ "", "", "", "", "", "", "", "",
+ /* Z0-Z7 */ "", "", "", "", "", "", "", "";
+};
+
+&i2c7 {
+ status = "okay";
+
+ eeprom@57 {
+ compatible = "atmel,24c128";
+ reg = <0x57>;
+ pagesize = <16>;
+
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ eth0_macaddress: macaddress@3f80 {
+ reg = <0x3f80 6>;
+ };
+ };
+ };
+};
+
+&mac0 {
+ nvmem-cells = <ð0_macaddress>;
+ nvmem-cell-names = "mac-address";
+ phy-handle = <ðphy0>;
+ phy-mode = "rgmii-id";
+ pinctrl-0 = <&pinctrl_rgmii1_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&mdio0 {
+ status = "okay";
+
+ ethphy0: ethernet-phy@0 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <0>;
+ };
+};
+
+&uart5 {
+ status = "okay";
+};
--
2.47.3