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

Frieder Schrempf
2026-03-25T07:40:36Z

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.

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.

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: