* [PATCH v2 0/8] Update BSH SystemMaster device trees and add SMM-M2B support
@ 2026-11-05 2:41 Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 1/8] dt-bindings: arm: fsl: Add BSH SMM-M2B board Haoning Cheng
` (7 more replies)
0 siblings, 8 replies; 11+ messages in thread
From: Haoning Cheng @ 2026-11-05 2:41 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, linux-kernel, imx, linux-arm-kernel, Haoning Cheng,
Michael Trimarchi, Leonhard Hesse, Roman Smrž, Qiu Guochang,
Akhil Narayanan, Florian Ager
Add basic device tree support for the BSH SMM-M2B SystemMaster,
a hardware variant of the BSH SMM-M2 equipped with an AIC Wi-Fi
and Bluetooth chip.
This series adds the SMM-M2B board compatible to the Freescale
device tree bindings.
Configure the NAND controllers on the BSH SMM-M2 and SMM-S2 to
use the minimum required ECC strength.
Adjust the Wi-Fi and Bluetooth enable pin settings, configure the
WLAN host wake pin with a pull-down, and remove the unused
cap-sdio-irq property.
Move the hardware definitions shared by the SMM-M2 variants into
a common device tree include file to reduce duplication.
Add the SMM-M2B board device tree and Makefile entry, reusing
the common hardware definitions.
Configure the UART2 pin multiplexing for the shared SMM-M2 hardware.
Enable USB OTG mode on the BSH SMM-M2 and SMM-S2 board variants.
Signed-off-by: Haoning Cheng <Haoning.CHENG@cn.bosch.com>
---
Changes in v2:
- Drop the redundant RNGB enablement patch.
- Keep the WLAN power sequence in the SMM-M2-specific DTS.
- Move the SPI display and touchscreen overlay out of this series.
- Link to v1: https://patch.msgid.link/20261104-add-bsh-smm-m2-v1-0-369f0a77e021@cn.bosch.com
---
Akhil Narayanan (1):
ARM: dts: imx6ulz: Configure UART2 pins on BSH SMM-M2 variants
Florian Ager (1):
dts: imx: Enable USB OTG mode on BSH SMM-M2 and SMM-S2
Haoning Cheng (1):
dt-bindings: arm: fsl: Add BSH SMM-M2B board
Leonhard Hesse (1):
ARM: dts: imx6ulz: Adjust BSH SMM-M2 Wi-Fi and Bluetooth pin settings
Michael Trimarchi (1):
dts: imx: Use minimum NAND ECC strength on BSH boards
Qiu Guochang (2):
ARM: dts: imx6ulz: Factor out BSH SMM-M2 common device tree
ARM: dts: imx6ulz: Add BSH SMM-M2B board support
Roman Smrž (1):
ARM: dts: imx6ulz: Fix BSH SMM-M2 WLAN host wake configuration
Documentation/devicetree/bindings/arm/fsl.yaml | 1 +
arch/arm/boot/dts/nxp/imx/Makefile | 3 +-
.../dts/nxp/imx/imx6ulz-bsh-smm-m2-common.dtsi | 86 ++++++++++++++++++++
arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts | 93 ++++------------------
arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2b.dts | 13 +++
.../dts/freescale/imx8mn-bsh-smm-s2-common.dtsi | 2 +-
.../arm64/boot/dts/freescale/imx8mn-bsh-smm-s2.dts | 1 +
7 files changed, 119 insertions(+), 80 deletions(-)
---
base-commit: ec7b37c768d34107d06bd629d05cde0e2218ee9a
change-id: 20261027-add-bsh-smm-m2-57812d9c7e87
Best regards,
--
Haoning Cheng <Haoning.CHENG@cn.bosch.com>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 1/8] dt-bindings: arm: fsl: Add BSH SMM-M2B board
2026-11-05 2:41 [PATCH v2 0/8] Update BSH SystemMaster device trees and add SMM-M2B support Haoning Cheng
@ 2026-11-05 2:41 ` Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 2/8] dts: imx: Use minimum NAND ECC strength on BSH boards Haoning Cheng
` (6 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Haoning Cheng @ 2026-11-05 2:41 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, linux-kernel, imx, linux-arm-kernel, Haoning Cheng
Add the BSH SMM-M2B SystemMaster to the list of supported
i.MX6ULZ-based boards.
The SMM-M2B is a variant of the BSH SMM-M2 SystemMaster
equipped with an AIC Wi-Fi and Bluetooth chip.
Signed-off-by: Haoning Cheng <Haoning.CHENG@cn.bosch.com>
---
Documentation/devicetree/bindings/arm/fsl.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
index f044e9aa04fa..9c86900dec4c 100644
--- a/Documentation/devicetree/bindings/arm/fsl.yaml
+++ b/Documentation/devicetree/bindings/arm/fsl.yaml
@@ -867,6 +867,7 @@ properties:
items:
- enum:
- bsh,imx6ulz-bsh-smm-m2 # i.MX6 ULZ BSH SystemMaster
+ - bsh,imx6ulz-bsh-smm-m2b # i.MX6 ULZ BSH SystemMaster
- fsl,imx6ulz-14x14-evk # i.MX6 ULZ 14x14 EVK Board
- const: fsl,imx6ull # This seems odd. Should be last?
- const: fsl,imx6ulz
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 2/8] dts: imx: Use minimum NAND ECC strength on BSH boards
2026-11-05 2:41 [PATCH v2 0/8] Update BSH SystemMaster device trees and add SMM-M2B support Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 1/8] dt-bindings: arm: fsl: Add BSH SMM-M2B board Haoning Cheng
@ 2026-11-05 2:41 ` Haoning Cheng
2026-11-05 2:48 ` sashiko-bot
2026-11-05 2:41 ` [PATCH v2 3/8] ARM: dts: imx6ulz: Adjust BSH SMM-M2 Wi-Fi and Bluetooth pin settings Haoning Cheng
` (5 subsequent siblings)
7 siblings, 1 reply; 11+ messages in thread
From: Haoning Cheng @ 2026-11-05 2:41 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, linux-kernel, imx, linux-arm-kernel, Haoning Cheng,
Michael Trimarchi
From: Michael Trimarchi <michael@amarulasolutions.com>
Configure the GPMI NAND controllers on the BSH SMM-M2 and SMM-S2
to use the minimum ECC strength required by the NAND flash.
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Haoning Cheng <Haoning.CHENG@cn.bosch.com>
---
arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts | 1 +
arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2.dts | 1 +
2 files changed, 2 insertions(+)
diff --git a/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts
index 2d9f495660c9..aac211a9f9eb 100644
--- a/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts
+++ b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts
@@ -26,6 +26,7 @@ &gpmi {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpmi_nand>;
nand-on-flash-bbt;
+ fsl,use-minimum-ecc;
status = "okay";
};
diff --git a/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2.dts b/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2.dts
index 11a1ba5bfdb7..df11f81ac50c 100644
--- a/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2.dts
@@ -21,6 +21,7 @@ memory@40000000 {
&gpmi {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpmi_nand>;
+ fsl,use-minimum-ecc;
status = "okay";
};
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 3/8] ARM: dts: imx6ulz: Adjust BSH SMM-M2 Wi-Fi and Bluetooth pin settings
2026-11-05 2:41 [PATCH v2 0/8] Update BSH SystemMaster device trees and add SMM-M2B support Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 1/8] dt-bindings: arm: fsl: Add BSH SMM-M2B board Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 2/8] dts: imx: Use minimum NAND ECC strength on BSH boards Haoning Cheng
@ 2026-11-05 2:41 ` Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 4/8] ARM: dts: imx6ulz: Fix BSH SMM-M2 WLAN host wake configuration Haoning Cheng
` (4 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Haoning Cheng @ 2026-11-05 2:41 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, linux-kernel, imx, linux-arm-kernel, Haoning Cheng,
Leonhard Hesse
From: Leonhard Hesse <leonhard.hesse@bshg.com>
Adjustment of wifi and bluetooth REG_ON pin settings.
Tests have shown that minor changes in drive strength, slew rate
and speed resulted in the best performance.
Signed-off-by: Leonhard Hesse <leonhard.hesse@bshg.com>
Signed-off-by: Haoning Cheng <Haoning.CHENG@cn.bosch.com>
---
arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts
index aac211a9f9eb..dabe17222f13 100644
--- a/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts
+++ b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts
@@ -125,7 +125,7 @@ MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX 0x1b0b1
MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX 0x1b099
MX6UL_PAD_UART3_RTS_B__UART3_DCE_RTS 0x1b0b1
MX6UL_PAD_UART3_CTS_B__UART3_DCE_CTS 0x1b099
- MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0x79 /* BT_REG_ON */
+ MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0x100b1 /* BT_REG_ON */
MX6UL_PAD_SD1_CLK__GPIO2_IO17 0x100b1 /* BT_DEV_WAKE out */
MX6UL_PAD_ENET2_TX_EN__GPIO2_IO13 0x1b0b0 /* BT_HOST_WAKE in */
>;
@@ -146,7 +146,7 @@ MX6UL_PAD_CSI_DATA00__USDHC2_DATA0 0x17059
MX6UL_PAD_CSI_DATA01__USDHC2_DATA1 0x17059
MX6UL_PAD_CSI_DATA02__USDHC2_DATA2 0x17059
MX6UL_PAD_CSI_DATA03__USDHC2_DATA3 0x17059
- MX6UL_PAD_SD1_DATA3__GPIO2_IO21 0x79 /* WL_REG_ON */
+ MX6UL_PAD_SD1_DATA3__GPIO2_IO21 0x3029 /* WL_REG_ON */
MX6UL_PAD_UART2_CTS_B__GPIO1_IO22 0x100b1 /* WL_DEV_WAKE - WiFi_GPIO_4 - WiFi FW UART */
MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x1b0b1 /* WL_HOST_WAKE - WIFI_GPIO_0 - OOB IRQ */
MX6UL_PAD_ENET1_RX_EN__OSC32K_32K_OUT 0x4001b031 /* OSC 32Khz wifi clk in */
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 4/8] ARM: dts: imx6ulz: Fix BSH SMM-M2 WLAN host wake configuration
2026-11-05 2:41 [PATCH v2 0/8] Update BSH SystemMaster device trees and add SMM-M2B support Haoning Cheng
` (2 preceding siblings ...)
2026-11-05 2:41 ` [PATCH v2 3/8] ARM: dts: imx6ulz: Adjust BSH SMM-M2 Wi-Fi and Bluetooth pin settings Haoning Cheng
@ 2026-11-05 2:41 ` Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 5/8] ARM: dts: imx6ulz: Factor out BSH SMM-M2 common device tree Haoning Cheng
` (3 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Haoning Cheng @ 2026-11-05 2:41 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, linux-kernel, imx, linux-arm-kernel, Haoning Cheng,
Roman Smrž
From: Roman Smrž <roman@amarulasolutions.com>
The pin is active when high, so pull-up configuration can trigger
unwanted interrupts during module loading or unloading. Change the
configuration to pull-down to avoid crashes there.
Disable cap-sdio-irq as it is not used by the driver.
Signed-off-by: Roman Smrž <roman@amarulasolutions.com>
Signed-off-by: Haoning Cheng <Haoning.CHENG@cn.bosch.com>
---
arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts
index dabe17222f13..91c76909c086 100644
--- a/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts
+++ b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts
@@ -81,7 +81,6 @@ &usdhc2 {
non-removable;
cap-power-off-card;
keep-power-in-suspend;
- cap-sdio-irq;
mmc-pwrseq = <&usdhc2_pwrseq>;
status = "okay";
@@ -148,7 +147,7 @@ MX6UL_PAD_CSI_DATA02__USDHC2_DATA2 0x17059
MX6UL_PAD_CSI_DATA03__USDHC2_DATA3 0x17059
MX6UL_PAD_SD1_DATA3__GPIO2_IO21 0x3029 /* WL_REG_ON */
MX6UL_PAD_UART2_CTS_B__GPIO1_IO22 0x100b1 /* WL_DEV_WAKE - WiFi_GPIO_4 - WiFi FW UART */
- MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x1b0b1 /* WL_HOST_WAKE - WIFI_GPIO_0 - OOB IRQ */
+ MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x130b1 /* WL_HOST_WAKE - WIFI_GPIO_0 - OOB IRQ */
MX6UL_PAD_ENET1_RX_EN__OSC32K_32K_OUT 0x4001b031 /* OSC 32Khz wifi clk in */
>;
};
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 5/8] ARM: dts: imx6ulz: Factor out BSH SMM-M2 common device tree
2026-11-05 2:41 [PATCH v2 0/8] Update BSH SystemMaster device trees and add SMM-M2B support Haoning Cheng
` (3 preceding siblings ...)
2026-11-05 2:41 ` [PATCH v2 4/8] ARM: dts: imx6ulz: Fix BSH SMM-M2 WLAN host wake configuration Haoning Cheng
@ 2026-11-05 2:41 ` Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 6/8] ARM: dts: imx6ulz: Add BSH SMM-M2B board support Haoning Cheng
` (2 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Haoning Cheng @ 2026-11-05 2:41 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, linux-kernel, imx, linux-arm-kernel, Haoning Cheng,
Qiu Guochang
From: Qiu Guochang <guochang.qiu@cn.bosch.com>
Move the hardware definitions shared by the BSH SMM-M2 and SMM-M2B
variants into a common device tree include file.
Update the existing SMM-M2 device tree to include the common file
while keeping board-specific configurations separate.
Signed-off-by: Qiu Guochang <guochang.qiu@cn.bosch.com>
Signed-off-by: Haoning Cheng <Haoning.CHENG@cn.bosch.com>
---
.../dts/nxp/imx/imx6ulz-bsh-smm-m2-common.dtsi | 80 +++++++++++++++++++
arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts | 93 ++++------------------
2 files changed, 95 insertions(+), 78 deletions(-)
diff --git a/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2-common.dtsi b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2-common.dtsi
new file mode 100644
index 000000000000..83df5c696748
--- /dev/null
+++ b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2-common.dtsi
@@ -0,0 +1,80 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021 BSH Hausgeraete GmbH
+ */
+
+#include <dt-bindings/input/input.h>
+#include "imx6ulz.dtsi"
+
+/ {
+ chosen {
+ stdout-path = &uart4;
+ };
+};
+
+&gpmi {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_gpmi_nand>;
+ nand-on-flash-bbt;
+ fsl,use-minimum-ecc;
+ status = "okay";
+};
+
+&snvs_poweroff {
+ status = "okay";
+};
+
+&uart2 {
+ status = "okay";
+};
+
+&uart4 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart4>;
+ status = "okay";
+};
+
+&usbotg1 {
+ dr_mode = "peripheral";
+ srp-disable;
+ hnp-disable;
+ adp-disable;
+ status = "okay";
+};
+
+&usbphy1 {
+ fsl,tx-d-cal = <106>;
+};
+
+&wdog1 {
+ status = "okay";
+};
+
+&iomuxc {
+ pinctrl_gpmi_nand: gpminandgrp {
+ fsl,pins = <
+ MX6UL_PAD_NAND_CLE__RAWNAND_CLE 0xb0b1
+ MX6UL_PAD_NAND_ALE__RAWNAND_ALE 0xb0b1
+ MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B 0xb0b1
+ MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B 0xb000
+ MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B 0xb0b1
+ MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B 0xb0b1
+ MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B 0xb0b1
+ MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00 0xb0b1
+ MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01 0xb0b1
+ MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02 0xb0b1
+ MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03 0xb0b1
+ MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04 0xb0b1
+ MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05 0xb0b1
+ MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06 0xb0b1
+ MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07 0xb0b1
+ >;
+ };
+
+ pinctrl_uart4: uart4grp {
+ fsl,pins = <
+ MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX 0x1b0b1
+ MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX 0x1b0b1
+ >;
+ };
+};
diff --git a/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts
index 91c76909c086..66ea70d93590 100644
--- a/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts
+++ b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts
@@ -5,39 +5,18 @@
/dts-v1/;
-#include <dt-bindings/input/input.h>
-#include "imx6ulz.dtsi"
+#include "imx6ulz-bsh-smm-m2-common.dtsi"
/ {
model = "BSH SMM M2";
compatible = "bsh,imx6ulz-bsh-smm-m2", "fsl,imx6ull", "fsl,imx6ulz";
- chosen {
- stdout-path = &uart4;
- };
-
usdhc2_pwrseq: usdhc2-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&gpio2 21 GPIO_ACTIVE_LOW>;
};
};
-&gpmi {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_gpmi_nand>;
- nand-on-flash-bbt;
- fsl,use-minimum-ecc;
- status = "okay";
-};
-
-&snvs_poweroff {
- status = "okay";
-};
-
-&uart2 {
- status = "okay";
-};
-
&uart3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart3>;
@@ -53,24 +32,6 @@ bluetooth {
};
};
-&uart4 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_uart4>;
- status = "okay";
-};
-
-&usbotg1 {
- dr_mode = "peripheral";
- srp-disable;
- hnp-disable;
- adp-disable;
- status = "okay";
-};
-
-&usbphy1 {
- fsl,tx-d-cal = <106>;
-};
-
&usdhc2 {
#address-cells = <1>;
#size-cells = <0>;
@@ -93,47 +54,19 @@ brcmf: wifi@1 {
};
};
-&wdog1 {
- status = "okay";
-};
-
&iomuxc {
- pinctrl_gpmi_nand: gpminandgrp {
- fsl,pins = <
- MX6UL_PAD_NAND_CLE__RAWNAND_CLE 0xb0b1
- MX6UL_PAD_NAND_ALE__RAWNAND_ALE 0xb0b1
- MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B 0xb0b1
- MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B 0xb000
- MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B 0xb0b1
- MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B 0xb0b1
- MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B 0xb0b1
- MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00 0xb0b1
- MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01 0xb0b1
- MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02 0xb0b1
- MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03 0xb0b1
- MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04 0xb0b1
- MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05 0xb0b1
- MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06 0xb0b1
- MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07 0xb0b1
- >;
- };
-
pinctrl_uart3: uart3grp {
fsl,pins = <
MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX 0x1b0b1
MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX 0x1b099
MX6UL_PAD_UART3_RTS_B__UART3_DCE_RTS 0x1b0b1
MX6UL_PAD_UART3_CTS_B__UART3_DCE_CTS 0x1b099
- MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0x100b1 /* BT_REG_ON */
- MX6UL_PAD_SD1_CLK__GPIO2_IO17 0x100b1 /* BT_DEV_WAKE out */
- MX6UL_PAD_ENET2_TX_EN__GPIO2_IO13 0x1b0b0 /* BT_HOST_WAKE in */
- >;
- };
-
- pinctrl_uart4: uart4grp {
- fsl,pins = <
- MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX 0x1b0b1
- MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX 0x1b0b1
+ /* BT_REG_ON */
+ MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0x100b1
+ /* BT_DEV_WAKE out */
+ MX6UL_PAD_SD1_CLK__GPIO2_IO17 0x100b1
+ /* BT_HOST_WAKE in */
+ MX6UL_PAD_ENET2_TX_EN__GPIO2_IO13 0x1b0b0
>;
};
@@ -145,10 +78,14 @@ MX6UL_PAD_CSI_DATA00__USDHC2_DATA0 0x17059
MX6UL_PAD_CSI_DATA01__USDHC2_DATA1 0x17059
MX6UL_PAD_CSI_DATA02__USDHC2_DATA2 0x17059
MX6UL_PAD_CSI_DATA03__USDHC2_DATA3 0x17059
- MX6UL_PAD_SD1_DATA3__GPIO2_IO21 0x3029 /* WL_REG_ON */
- MX6UL_PAD_UART2_CTS_B__GPIO1_IO22 0x100b1 /* WL_DEV_WAKE - WiFi_GPIO_4 - WiFi FW UART */
- MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x130b1 /* WL_HOST_WAKE - WIFI_GPIO_0 - OOB IRQ */
- MX6UL_PAD_ENET1_RX_EN__OSC32K_32K_OUT 0x4001b031 /* OSC 32Khz wifi clk in */
+ /* WL_REG_ON */
+ MX6UL_PAD_SD1_DATA3__GPIO2_IO21 0x3029
+ /* WL_DEV_WAKE - WiFi_GPIO_4 - WiFi FW UART */
+ MX6UL_PAD_UART2_CTS_B__GPIO1_IO22 0x100b1
+ /* WL_HOST_WAKE - WIFI_GPIO_0 - OOB IRQ */
+ MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x130b1
+ /* OSC 32Khz wifi clk in */
+ MX6UL_PAD_ENET1_RX_EN__OSC32K_32K_OUT 0x4001b031
>;
};
};
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 6/8] ARM: dts: imx6ulz: Add BSH SMM-M2B board support
2026-11-05 2:41 [PATCH v2 0/8] Update BSH SystemMaster device trees and add SMM-M2B support Haoning Cheng
` (4 preceding siblings ...)
2026-11-05 2:41 ` [PATCH v2 5/8] ARM: dts: imx6ulz: Factor out BSH SMM-M2 common device tree Haoning Cheng
@ 2026-11-05 2:41 ` Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 7/8] ARM: dts: imx6ulz: Configure UART2 pins on BSH SMM-M2 variants Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 8/8] dts: imx: Enable USB OTG mode on BSH SMM-M2 and SMM-S2 Haoning Cheng
7 siblings, 0 replies; 11+ messages in thread
From: Haoning Cheng @ 2026-11-05 2:41 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, linux-kernel, imx, linux-arm-kernel, Haoning Cheng,
Qiu Guochang
From: Qiu Guochang <guochang.qiu@cn.bosch.com>
Add basic device tree support for the BSH SMM-M2B SystemMaster,
a hardware variant of the BSH SMM-M2.
Reuse the common SMM-M2 hardware definitions and provide the
board-specific model and compatible strings.
Signed-off-by: Qiu Guochang <guochang.qiu@cn.bosch.com>
Signed-off-by: Haoning Cheng <Haoning.CHENG@cn.bosch.com>
---
arch/arm/boot/dts/nxp/imx/Makefile | 3 ++-
arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2b.dts | 13 +++++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/nxp/imx/Makefile b/arch/arm/boot/dts/nxp/imx/Makefile
index b5fad2ba764c..de9a317132ed 100644
--- a/arch/arm/boot/dts/nxp/imx/Makefile
+++ b/arch/arm/boot/dts/nxp/imx/Makefile
@@ -420,7 +420,8 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
imx6ull-var-som-concerto.dtb \
imx6ull-var-som-concerto-full.dtb \
imx6ulz-14x14-evk.dtb \
- imx6ulz-bsh-smm-m2.dtb
+ imx6ulz-bsh-smm-m2.dtb \
+ imx6ulz-bsh-smm-m2b.dtb
imx7d-colibri-emmc-aster-panel-cap-touch-7inch-parallel-dtbs := \
imx7d-colibri-emmc-aster.dtb \
diff --git a/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2b.dts b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2b.dts
new file mode 100644
index 000000000000..9dc92da6ace9
--- /dev/null
+++ b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2b.dts
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021 BSH Hausgeraete GmbH
+ */
+
+/dts-v1/;
+
+#include "imx6ulz-bsh-smm-m2-common.dtsi"
+
+/ {
+ model = "BSH SMM M2B";
+ compatible = "bsh,imx6ulz-bsh-smm-m2b", "fsl,imx6ull", "fsl,imx6ulz";
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 7/8] ARM: dts: imx6ulz: Configure UART2 pins on BSH SMM-M2 variants
2026-11-05 2:41 [PATCH v2 0/8] Update BSH SystemMaster device trees and add SMM-M2B support Haoning Cheng
` (5 preceding siblings ...)
2026-11-05 2:41 ` [PATCH v2 6/8] ARM: dts: imx6ulz: Add BSH SMM-M2B board support Haoning Cheng
@ 2026-11-05 2:41 ` Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 8/8] dts: imx: Enable USB OTG mode on BSH SMM-M2 and SMM-S2 Haoning Cheng
7 siblings, 0 replies; 11+ messages in thread
From: Haoning Cheng @ 2026-11-05 2:41 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, linux-kernel, imx, linux-arm-kernel, Haoning Cheng,
Akhil Narayanan
From: Akhil Narayanan <akhil.narayanan@in.bosch.com>
Configure the UART2 RX and TX pin multiplexing for the BSH SMM-M2
variants.
Signed-off-by: Akhil Narayanan <akhil.narayanan@in.bosch.com>
Signed-off-by: Haoning Cheng <Haoning.CHENG@cn.bosch.com>
---
arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2-common.dtsi | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2-common.dtsi b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2-common.dtsi
index 83df5c696748..27c7b6acc658 100644
--- a/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2-common.dtsi
+++ b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2-common.dtsi
@@ -25,6 +25,8 @@ &snvs_poweroff {
};
&uart2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart2>;
status = "okay";
};
@@ -77,4 +79,11 @@ MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX 0x1b0b1
MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX 0x1b0b1
>;
};
+
+ pinctrl_uart2: uart2grp {
+ fsl,pins = <
+ MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1
+ MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1
+ >;
+ };
};
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 8/8] dts: imx: Enable USB OTG mode on BSH SMM-M2 and SMM-S2
2026-11-05 2:41 [PATCH v2 0/8] Update BSH SystemMaster device trees and add SMM-M2B support Haoning Cheng
` (6 preceding siblings ...)
2026-11-05 2:41 ` [PATCH v2 7/8] ARM: dts: imx6ulz: Configure UART2 pins on BSH SMM-M2 variants Haoning Cheng
@ 2026-11-05 2:41 ` Haoning Cheng
7 siblings, 0 replies; 11+ messages in thread
From: Haoning Cheng @ 2026-11-05 2:41 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Frank Li, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, linux-kernel, imx, linux-arm-kernel, Haoning Cheng,
Florian Ager
From: Florian Ager <florian.ager@bshg.com>
Configure USB OTG1 in OTG mode instead of peripheral-only mode
on the BSH SMM-M2 and SMM-S2 board variants.
Remove the SRP, HNP and ADP disable properties from the SMM-M2
configuration.
Signed-off-by: Florian Ager <florian.ager@bshg.com>
Signed-off-by: Haoning Cheng <Haoning.CHENG@cn.bosch.com>
---
arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2-common.dtsi | 5 +----
arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-common.dtsi | 2 +-
2 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2-common.dtsi b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2-common.dtsi
index 27c7b6acc658..96f084b6ade4 100644
--- a/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2-common.dtsi
+++ b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2-common.dtsi
@@ -37,10 +37,7 @@ &uart4 {
};
&usbotg1 {
- dr_mode = "peripheral";
- srp-disable;
- hnp-disable;
- adp-disable;
+ dr_mode = "otg";
status = "okay";
};
diff --git a/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-common.dtsi b/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-common.dtsi
index d20393c2d901..7a121459f95c 100644
--- a/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-common.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-common.dtsi
@@ -248,7 +248,7 @@ &uart4 {
};
&usbotg1 {
- dr_mode = "peripheral";
+ dr_mode = "otg";
disable-over-current;
status = "okay";
};
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/8] dts: imx: Use minimum NAND ECC strength on BSH boards
2026-11-05 2:41 ` [PATCH v2 2/8] dts: imx: Use minimum NAND ECC strength on BSH boards Haoning Cheng
@ 2026-11-05 2:48 ` sashiko-bot
2026-11-05 3:23 ` Haoning Cheng
0 siblings, 1 reply; 11+ messages in thread
From: sashiko-bot @ 2026-11-05 2:48 UTC (permalink / raw)
To: Haoning Cheng; +Cc: devicetree, imx, robh, conor+dt, Frank.Li
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] ARM: dts: imx: unjustified incompatible NAND ECC layout change on BSH boards
--
commit 18a50759ffc5f62c90affe97ba8849157120079d
Author: Michael Trimarchi <michael@amarulasolutions.com>
dts: imx: Use minimum NAND ECC strength on BSH boards
This commit enables the fsl,use-minimum-ecc property on the GPMI NAND
controller nodes for the BSH SMM-M2 and SMM-S2 boards.
> dts: imx: Use minimum NAND ECC strength on BSH boards
>
> Configure the GPMI NAND controllers on the BSH SMM-M2 and SMM-S2
> to use the minimum ECC strength required by the NAND flash.
>
> Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
> Signed-off-by: Haoning Cheng <Haoning.CHENG@cn.bosch.com>
>
> diff --git a/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts
> index 2d9f495660c9a..aac211a9f9ebd 100644
> --- a/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts
> +++ b/arch/arm/boot/dts/nxp/imx/imx6ulz-bsh-smm-m2.dts
> @@ -26,6 +26,7 @@ &gpmi {
> pinctrl-names = "default";
> pinctrl-0 = <&pinctrl_gpmi_nand>;
> nand-on-flash-bbt;
> + fsl,use-minimum-ecc;
> status = "okay";
> };
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2.dts b/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2.dts
> index 11a1ba5bfdb7e..df11f81ac50c1 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2.dts
> @@ -21,6 +21,7 @@ memory@40000000 {
> &gpmi {
> pinctrl-names = "default";
> pinctrl-0 = <&pinctrl_gpmi_nand>;
> + fsl,use-minimum-ecc;
[Severity: Medium]
As reported by Sashiko on v1 [1], both imx6ulz-bsh-smm-m2.dts and
imx8mn-bsh-smm-s2.dts have been in-tree since 2021 without
fsl,use-minimum-ecc.
In drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c, gpmi_nand_probe() calls
common_nfc_set_geometry() to configure the BCH hardware:
use_minimun_ecc = of_property_read_bool(this->dev->of_node,
"fsl,use-minimum-ecc");
/* use legacy bch geometry settings by default*/
if ((!use_minimun_ecc && mtd->oobsize < 1024) ||
!(requirements->strength > 0 && requirements->step_size > 0)) {
dev_dbg(this->dev, "use legacy bch geometry\n");
err = legacy_set_geometry(this);
if (!err)
return 0;
}
Without fsl,use-minimum-ecc (when mtd->oobsize < 1024),
common_nfc_set_geometry() calls legacy_set_geometry(), which maximizes
geo->ecc_strength across the available OOB area via get_ecc_strength().
Adding fsl,use-minimum-ecc bypasses legacy_set_geometry() and instead calls
set_geometry_by_ecc_info() to use the NAND chip's minimum required ECC
strength and step size.
Because the GPMI BCH controller interleaves metadata, data chunks, and ECC
parity bits across the physical page and computes geo->page_size,
geo->block_mark_byte_offset, and geo->block_mark_bit_offset from
geo->ecc_strength and geo->gf_len, switching from legacy_set_geometry() to
set_geometry_by_ecc_info() alters the physical on-flash page layout.
Won't this change cause a regression on existing boards where NAND
partitions, UBI volumes, or on-flash bad block tables formatted under the
previous device tree become unreadable with -EBADMSG ECC errors? Could the
commit message also explain why this incompatible layout change is needed
(for example, to match the ECC geometry used by U-Boot or the BootROM) and
how existing flashed devices are affected?
[1] https://lore.kernel.org/r/20261104-add-bsh-smm-m2-v1-2-369f0a77e021@cn.bosch.com
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261105-add-bsh-smm-m2-v2-0-fb5ffc7da486@cn.bosch.com?part=2
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/8] dts: imx: Use minimum NAND ECC strength on BSH boards
2026-11-05 2:48 ` sashiko-bot
@ 2026-11-05 3:23 ` Haoning Cheng
0 siblings, 0 replies; 11+ messages in thread
From: Haoning Cheng @ 2026-11-05 3:23 UTC (permalink / raw)
To: sashiko-bot; +Cc: devicetree, imx, robh, conor+dt, Frank.Li
Thank you for pointing this out.
The downstream kernels for both BSH SMM-M2 and SMM-S2 have always used minimum ECC. We have confirmed that the existing U-Boot and NAND flashing tools use the same ECC geometry.
No deployed devices use the legacy ECC layout selected by mainline, and firmware flashing involves erasing and rewriting the entire NAND.
Therefore, this change aligns mainline with the existing downstream configuration without affecting deployed devices.
We will clarify this in the commit message in v3.
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2026-11-05 3:24 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-05 2:41 [PATCH v2 0/8] Update BSH SystemMaster device trees and add SMM-M2B support Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 1/8] dt-bindings: arm: fsl: Add BSH SMM-M2B board Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 2/8] dts: imx: Use minimum NAND ECC strength on BSH boards Haoning Cheng
2026-11-05 2:48 ` sashiko-bot
2026-11-05 3:23 ` Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 3/8] ARM: dts: imx6ulz: Adjust BSH SMM-M2 Wi-Fi and Bluetooth pin settings Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 4/8] ARM: dts: imx6ulz: Fix BSH SMM-M2 WLAN host wake configuration Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 5/8] ARM: dts: imx6ulz: Factor out BSH SMM-M2 common device tree Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 6/8] ARM: dts: imx6ulz: Add BSH SMM-M2B board support Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 7/8] ARM: dts: imx6ulz: Configure UART2 pins on BSH SMM-M2 variants Haoning Cheng
2026-11-05 2:41 ` [PATCH v2 8/8] dts: imx: Enable USB OTG mode on BSH SMM-M2 and SMM-S2 Haoning Cheng
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox