Re: [PATCH 1/4] imx8mp: phyboard-pollux-rdk: Convert to DM_PMIC

Teresa Remmet
2026-03-25T09:43:17Z

Hello Frieder,

Am Mittwoch, dem 25.03.2026 um 08:40 +0100 schrieb Frieder Schrempf:
> On 25.03.26 04:50, Peng Fan wrote:
> > > Subject: Re: [PATCH 1/4] imx8mp: phyboard-pollux-rdk: Convert to
> > > DM_PMIC
> > >
> > > Hello Peng,
> > > Hello Yannic,
> > >
> > > Am Dienstag, dem 24.03.2026 um 13:33 +0000 schrieb Peng Fan:
> > > > Hi Yannic,
> > > >
> > > > > Subject: Re: [PATCH 1/4] imx8mp: phyboard-pollux-rdk: Convert
> > > > > to
> > > > > DM_PMIC
> > > > >
> > > > > Hi Peng,
> > > > >
> > > > > On Tue, 2026-03-24 at 18:30 +0800, Peng Fan (OSS) wrote:
> > > > > > From: Peng Fan <peng.fan@nxp.com>
> > > > > >
> > > > > > Convert the board to use DM_PMIC instead of the legacy SPL
> > > > > I2C/PMIC
> > > > > > handling.
> > > > > >
> > > > > > Changes include:
> > > > > > - Enable DM_PMIC, DM_PMIC_PCA9450, and
> > > > > SPL_DM_PMIC_PCA9450 in defconfig.
> > > > > > - Drop legacy SPL I2C and PMIC options.
> > > > > > - Remove manual I2C1 pad setup and legacy
> > > > > > power_pca9450_init()
> > > > > usage.
> > > > > > - Use DM-based pmic_get() with the DT node "pmic@25".
> > > > > > - Update PMIC register programming to use struct udevice
> > > > > > API.
> > > > >
> > > > > these changes break something.
> > > > >
> > > > > Getting
> > > > >
> > > > > Loading Environment from MMC... Card did not respond to
> > > > > voltage
> > > > > select! : -110
> > > > > *** Warning - No block device, using default environment
> > > > >
> > > > > and SD card is not accessible as a result. I also worked on
> > > > > this
> > > > > modernization and got the same result as with your commit.
> > > > > Have
> > > not
> > > > > had time to investigate the cause, yet.
> > > >
> > > > This change should not impact sd, unless pmic not probe
> > > > correctly.
> > > > You may give a look on "regulators", "pmic" in U-Boot shell, to
> > > > see
> > > > whether pmic is good.
> > > >
> > > > And you may also need to confirm, whether SD works or not
> > > > without
> > > this
> > > > migration to DM_PMIC.
> > >
> > > I see the same issue. The error is gone when the patch is
> > > reverted again.
> > > PMIC probing is working but the voltage change of SD-Card is
> > > probably
> > > not.
> > > We have set
> > > dts/upstream/src/arm64/freescale/imx8mp-phycore-fpsc.dtsi:
> > > vqmmc-supply = <&ldo5>;
> > >
> > > which references the PMIC.
> > > The evk is not using this property.
> >
> > I tried to add vqmmc-supply for i.MX8MP-EVK, I not see issues.
> > Not sure why this property impacts phycore-fpsc.
> >
> > The only suspecting point is
> >
> > -                       MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT
> > 0xc0
> > +                       MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT
> > 0x1c0
> >
> > No more ideas as of now.
>
> I'm pretty sure this issue is related to the VSELECT signal in some
> way.
>
> With MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT being set, the SDHC
> controller controls the VSELECT signal that goes into the SD_VSEL
> input
> of the PMIC and switches the LDO5 between 1.8V and 3.3V. Internally
> the
> PMIC uses the state of SD_VSEL to decide which one of two voltage
> registers for LDO5 is used.
>
> When vqmmc-supply is set, the driver additionally sets the voltage by
> writing to the PMIC LDO5 voltage register. This can potentially cause
> conflicts and lead to an invalid state, where the driver thinks the
> card
> is in 1.8V state but the voltage is set to 3.3V or the other way
> round.

I made a quick measurement and I saw the miss match. SW thinks the 1.8V
is configured but we still have 3.3V.

>
> One way to handle this, is to set the SION bit for the VSELECT signal
> and specify the sd-vsel-gpios property in the ldo5 node. This allows
> the
> PMIC driver to know about the current state of the VSELECT signal and
> use the correct voltage register when setting or getting the LDO5
> voltage.

Adding the changes to the device tree makes it working.
So it looks like that is the issue.

Thank you very much for your help.

We will create a kernel dt patch then to fix this.

Thanks,
Teresa

>
> Below you can find some pointers for additional information. I hope
> this
> helps to solve the issue on your board.
>
> Best regards
> Frieder
>
> Relevant U-Boot patchset:
> https://patchwork.ozlabs.org/project/uboot/cover/20250811131213.211124-1-frieder@fris.de/
>
> Relevant Kernel patchset:
> https://patchwork.kernel.org/project/linux-arm-kernel/cover/20241218152842.97483-1-frieder@fris.de/
>
> Example for sd-vsel-gpios:
> https://source.denx.de/u-boot/u-boot/-/blob/master/dts/upstream/src/arm64/freescale/imx8mp-kontron-osm-s.dtsi#L314
>
> Example for pinmux with SION bit:
> https://source.denx.de/u-boot/u-boot/-/blob/master/dts/upstream/src/arm64/freescale/imx8mp-kontron-osm-s.dtsi#L812

--
PHYTEC Messtechnik GmbH | Barcelona-Allee 1 | 55129 Mainz, Germany

Geschäftsführer: Dipl.-Ing. Michael Mitezki, Dipl.-Ing. Bodo Huber,
Dipl.-Ing. (FH) Markus Lickes | Handelsregister Mainz HRB 4656 |
Finanzamt Mainz | St.Nr. 26/665/00608, DE 149059855