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

Peng Fan
2026-04-01T09:30:43Z

> Subject: Re: [PATCH 1/4] imx8mp: phyboard-pollux-rdk: Convert to
> DM_PMIC
>
> >
> > I think this kernel patchset might be wrong.
> >
> > GPIO1_04 is muxed as SD2_VSEL, reading GPIO1_04 will not able to
> get
> > the PAD value of SD2_VSEL.
> >
> > I also tried in U-Boot on i.MX8MP-EVK.
> > u-boot=> mw 0x30330024 0x11 ==> set SION and MUX as
> SD2_VSELECT
> > u-boot=> md 0x30b500c0 1
> > 30b500c0: 2000780b ==>BIT 1 is VSEL, already 1 .x.
> > u-boot=> md 0x30330284 1
> > 30330284: 000000c0 ....
> > u-boot=> mw 0x30330284 0x1d0 ==> Configure PAD
> > u-boot=> md 0x30200000 4 ==>Read back GPIO1
> > 30200000: 00001028 00000000 00001028 00000000 (.......(.......
> >
> > value of GPIO1_IO4 is 0, not 1, but VSEL register is 1 in SDHC2.
>
> I think you are right. I probably misinterpreted the documentation.
>
> >
> > So with your kernel patchset, reading the voltage, it will always
> return 3.3v.
>
> Not really. Reading the voltage in U-Boot works fine, which is why I
> thought this is correct. But I probably also misinterpreted my test
> results, as this only works by coincidence. We now always read from
> LDO5CTRL_L and this seems to have the correct value even if
> LDO5CTRL_H is actually in use.
>
> UHS card:
>
> => mmc dev 1
> switch to partitions #0, OK
> mmc1 is current device
> => mmc info
> Device: FSL_SDHC
> Manufacturer ID: 27
> OEM: 5048
> Name: SD8GB
> Bus Speed: 200000000
> Mode: UHS SDR104 (208MHz)
> Rd Block Len: 512
> SD version 3.0
> High Capacity: Yes
> Capacity: 7.2 GiB
> Bus Width: 4-bit
> Erase Group Size: 512 Bytes
> => regulator dev "NVCC_SD (LDO5)"
> dev: NVCC_SD (LDO5) @ LDO5
> => regulator value
> 1800000 uV
>
> HS card:
>
> => mmc dev 1
> switch to partitions #0, OK
> mmc1 is current device
> => mmc info
> Device: FSL_SDHC
> Manufacturer ID: 6f
> OEM: 303
> Name: CBADS
> Bus Speed: 50000000
> Mode: SD High Speed (50MHz)
> Rd Block Len: 512
> SD version 3.0
> High Capacity: Yes
> Capacity: 3.8 GiB
> Bus Width: 4-bit
> Erase Group Size: 512 Bytes
> => regulator value
> 3300000 uV

I think the regulator is always configuring LDO5CTRL_L,
whether 1.8 or 3.3v.

You may check the dm_gpio_get_value return value
if you have time. It should always return 0.

I not do test, but I have checked the RTL code,
reading GPIO will not return the value of SD_VSEL
even if SION set.

Regards
Peng.

>
>