* [PATCH 1/4] arm64: dts: imx8mm-tqma8mqml: remove virtual 3.3V regulator
@ 2025-12-16 13:31 Alexander Stein
2025-12-16 13:31 ` [PATCH 2/4] arm64: dts: imx8mm-tqma8mqml: remove virtual 1.8V regulator Alexander Stein
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Alexander Stein @ 2025-12-16 13:31 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: Markus Niebel, linux, devicetree, imx, linux-arm-kernel,
linux-kernel, Alexander Stein
From: Markus Niebel <Markus.Niebel@ew.tq-group.com>
BUCK4 rail supplies the 3.3V rail. Use the actual regulator
instead of a virtual fixed regulator.
Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
---
.../arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi | 14 +++-----------
1 file changed, 3 insertions(+), 11 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
index b82e9790ea205..16ed8ce5b5c49 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
@@ -24,14 +24,6 @@ reg_vcc1v8: regulator-vcc1v8 {
regulator-max-microvolt = <1800000>;
};
- /* identical to buck4_reg, but should never change */
- reg_vcc3v3: regulator-vcc3v3 {
- compatible = "regulator-fixed";
- regulator-name = "TQMA8MXML_VCC3V3";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- };
-
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
@@ -223,14 +215,14 @@ eeprom1: eeprom@53 {
read-only;
reg = <0x53>;
pagesize = <16>;
- vcc-supply = <®_vcc3v3>;
+ vcc-supply = <&buck4_reg>;
};
eeprom0: eeprom@57 {
compatible = "atmel,24c64";
reg = <0x57>;
pagesize = <32>;
- vcc-supply = <®_vcc3v3>;
+ vcc-supply = <&buck4_reg>;
};
};
@@ -253,7 +245,7 @@ &usdhc3 {
non-removable;
no-sd;
no-sdio;
- vmmc-supply = <®_vcc3v3>;
+ vmmc-supply = <&buck4_reg>;
vqmmc-supply = <®_vcc1v8>;
status = "okay";
};
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/4] arm64: dts: imx8mm-tqma8mqml: remove virtual 1.8V regulator
2025-12-16 13:31 [PATCH 1/4] arm64: dts: imx8mm-tqma8mqml: remove virtual 3.3V regulator Alexander Stein
@ 2025-12-16 13:31 ` Alexander Stein
2025-12-16 13:31 ` [PATCH 3/4] arm64: dts: imx8mm-tqma8mqml: remove superfluous line Alexander Stein
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Alexander Stein @ 2025-12-16 13:31 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: Markus Niebel, linux, devicetree, imx, linux-arm-kernel,
linux-kernel, Alexander Stein
From: Markus Niebel <Markus.Niebel@ew.tq-group.com>
BUCK5 regulator supplies the 1.8V rail. Use the actual regulator
instead of a virtual fixed regulator.
Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
---
arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
index 16ed8ce5b5c49..6e63cf8beadcd 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
@@ -16,14 +16,6 @@ memory@40000000 {
reg = <0x00000000 0x40000000 0 0x40000000>;
};
- /* e-MMC IO, needed for HS modes */
- reg_vcc1v8: regulator-vcc1v8 {
- compatible = "regulator-fixed";
- regulator-name = "TQMA8MXML_VCC1V8";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
- };
-
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
@@ -246,7 +238,7 @@ &usdhc3 {
no-sd;
no-sdio;
vmmc-supply = <&buck4_reg>;
- vqmmc-supply = <®_vcc1v8>;
+ vqmmc-supply = <&buck5_reg>;
status = "okay";
};
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/4] arm64: dts: imx8mm-tqma8mqml: remove superfluous line
2025-12-16 13:31 [PATCH 1/4] arm64: dts: imx8mm-tqma8mqml: remove virtual 3.3V regulator Alexander Stein
2025-12-16 13:31 ` [PATCH 2/4] arm64: dts: imx8mm-tqma8mqml: remove virtual 1.8V regulator Alexander Stein
@ 2025-12-16 13:31 ` Alexander Stein
2025-12-16 13:31 ` [PATCH 4/4] arm64: dts: imx8mm-tqma8mqml: fix LDO5 power off Alexander Stein
2025-12-30 8:23 ` [PATCH 1/4] arm64: dts: imx8mm-tqma8mqml: remove virtual 3.3V regulator Shawn Guo
3 siblings, 0 replies; 5+ messages in thread
From: Alexander Stein @ 2025-12-16 13:31 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: Markus Niebel, linux, devicetree, imx, linux-arm-kernel,
linux-kernel, Alexander Stein
From: Markus Niebel <Markus.Niebel@ew.tq-group.com>
Remove one empty line that is not needed.
Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
---
arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
index 6e63cf8beadcd..2e3860a5f4fd2 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
@@ -195,7 +195,6 @@ ldo5_reg: LDO5 {
};
};
-
pcf85063: rtc@51 {
compatible = "nxp,pcf85063a";
reg = <0x51>;
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 4/4] arm64: dts: imx8mm-tqma8mqml: fix LDO5 power off
2025-12-16 13:31 [PATCH 1/4] arm64: dts: imx8mm-tqma8mqml: remove virtual 3.3V regulator Alexander Stein
2025-12-16 13:31 ` [PATCH 2/4] arm64: dts: imx8mm-tqma8mqml: remove virtual 1.8V regulator Alexander Stein
2025-12-16 13:31 ` [PATCH 3/4] arm64: dts: imx8mm-tqma8mqml: remove superfluous line Alexander Stein
@ 2025-12-16 13:31 ` Alexander Stein
2025-12-30 8:23 ` [PATCH 1/4] arm64: dts: imx8mm-tqma8mqml: remove virtual 3.3V regulator Shawn Guo
3 siblings, 0 replies; 5+ messages in thread
From: Alexander Stein @ 2025-12-16 13:31 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: Markus Niebel, linux, devicetree, imx, linux-arm-kernel,
linux-kernel, Alexander Stein
From: Markus Niebel <Markus.Niebel@ew.tq-group.com>
Fix SD card removal caused by automatic LDO5 power off after boot.
To prevent this, add vqmmc regulator for USDHC, using a GPIO-controlled
regulator that is supplied by LDO5. Since this is implemented on SoM but
used on baseboards with SD-card interface, implement the functionality
on SoM part and optionally enable it on baseboards if needed.
Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
---
.../dts/freescale/imx8mm-tqma8mqml-mba8mx.dts | 13 ++++++-----
.../boot/dts/freescale/imx8mm-tqma8mqml.dtsi | 22 +++++++++++++++++++
2 files changed, 29 insertions(+), 6 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts
index b941c8c4f7bb4..8dcc5cbcb8f66 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts
@@ -101,6 +101,10 @@ &pcie0 {
status = "okay";
};
+®_usdhc2_vqmmc {
+ status = "okay";
+};
+
&sai3 {
assigned-clocks = <&clk IMX8MM_CLK_SAI3>;
assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
@@ -276,8 +280,7 @@ pinctrl_usdhc2: usdhc2grp {
<MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4>,
<MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4>,
<MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4>,
- <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4>,
- <MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x84>;
+ <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4>;
};
pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
@@ -286,8 +289,7 @@ pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
<MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4>,
<MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4>,
<MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4>,
- <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4>,
- <MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x84>;
+ <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4>;
};
pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
@@ -296,7 +298,6 @@ pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
<MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0 0x1d4>,
<MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1 0x1d4>,
<MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4>,
- <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4>,
- <MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x84>;
+ <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
index 2e3860a5f4fd2..29b298af0d739 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
@@ -16,6 +16,20 @@ memory@40000000 {
reg = <0x00000000 0x40000000 0 0x40000000>;
};
+ reg_usdhc2_vqmmc: regulator-usdhc2-vqmmc {
+ compatible = "regulator-gpio";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_reg_usdhc2_vqmmc>;
+ regulator-name = "V_SD2";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+ states = <1800000 0x1>,
+ <3300000 0x0>;
+ vin-supply = <&ldo5_reg>;
+ status = "disabled";
+ };
+
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
@@ -227,6 +241,10 @@ &pcie_phy {
fsl,clkreq-unsupported;
};
+&usdhc2 {
+ vqmmc-supply = <®_usdhc2_vqmmc>;
+};
+
&usdhc3 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc3>;
@@ -281,6 +299,10 @@ pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
fsl,pins = <MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19 0x84>;
};
+ pinctrl_reg_usdhc2_vqmmc: regusdhc2vqmmcgrp {
+ fsl,pins = <MX8MM_IOMUXC_GPIO1_IO04_GPIO1_IO4 0xc0>;
+ };
+
pinctrl_usdhc3: usdhc3grp {
fsl,pins = <MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK 0x1d4>,
<MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD 0x1d2>,
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/4] arm64: dts: imx8mm-tqma8mqml: remove virtual 3.3V regulator
2025-12-16 13:31 [PATCH 1/4] arm64: dts: imx8mm-tqma8mqml: remove virtual 3.3V regulator Alexander Stein
` (2 preceding siblings ...)
2025-12-16 13:31 ` [PATCH 4/4] arm64: dts: imx8mm-tqma8mqml: fix LDO5 power off Alexander Stein
@ 2025-12-30 8:23 ` Shawn Guo
3 siblings, 0 replies; 5+ messages in thread
From: Shawn Guo @ 2025-12-30 8:23 UTC (permalink / raw)
To: Alexander Stein
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Markus Niebel, linux,
devicetree, imx, linux-arm-kernel, linux-kernel
On Tue, Dec 16, 2025 at 02:31:04PM +0100, Alexander Stein wrote:
> From: Markus Niebel <Markus.Niebel@ew.tq-group.com>
>
> BUCK4 rail supplies the 3.3V rail. Use the actual regulator
> instead of a virtual fixed regulator.
>
> Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
> Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Applied all, thanks!
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-12-30 8:23 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-16 13:31 [PATCH 1/4] arm64: dts: imx8mm-tqma8mqml: remove virtual 3.3V regulator Alexander Stein
2025-12-16 13:31 ` [PATCH 2/4] arm64: dts: imx8mm-tqma8mqml: remove virtual 1.8V regulator Alexander Stein
2025-12-16 13:31 ` [PATCH 3/4] arm64: dts: imx8mm-tqma8mqml: remove superfluous line Alexander Stein
2025-12-16 13:31 ` [PATCH 4/4] arm64: dts: imx8mm-tqma8mqml: fix LDO5 power off Alexander Stein
2025-12-30 8:23 ` [PATCH 1/4] arm64: dts: imx8mm-tqma8mqml: remove virtual 3.3V regulator Shawn Guo
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.