[U-Boot] PBIAS driver and MMC Interaction in U-Boot Question

Jean-Jacques Hiblot jjhiblot at ti.com
Fri Sep 14 07:59:35 UTC 2018



On 11/09/2018 12:45, Adam Ford wrote:
> On Mon, Sep 10, 2018 at 6:40 AM Jean-Jacques Hiblot <jjhiblot at ti.com> wrote:
>> Hi Adam,
>>
>>
>> On 09/09/2018 14:19, Adam Ford wrote:
>>> I was having some issues with a DM3730 properly reading the card
>>> detect on GPIO 127 and attributed it to being related to the pbias
>>> register.  I have since submitted a patch to enable GPIO_127, but I am
>>> not the best approach.
>>>
>>> On the HSMMC driver, there are explicit commands to Disable extended
>>> drain IO before changing PBIAS, because the MMC driver needs to enable
>>> the PBIAS to make the MMC/SD interface operate correctly.
>>>
>>> I also submitted a patch to enable pbias driver found in
>>> power/regulator/pbias_regulator.c to work on omap3 boards by adding
>>> the 'compatible' options.   I have been able to test that the pbias
>>> driver and it appears to have been setup to work on the omap3, but I
>>> have only tried to read the pbias values, I haven't tried to set the
>>> pbias values with it.
>>>
>>> Two questions:
>>>
>>> What I was wondering is if there is some method to get the PBIAS
>>> driver to set the PBIAS instead of having the HSMMC driver do it.  It
>>> seems like one should be able to do this in the device tree, but it's
>>> not clear on how.
>> I believe that the PBIAs must be configured by the HSMMC driver for 2
>> reasons:
>> * PBIAS is used by HSMMC only.
>> * PBIAS must be updated when the MMC IO voltage is changed (see
>> omap_hsmmc_set_io_regulator())
> That function looks like it's contained in a set of #ifdef's which may
> or may not be enabled.  I think it makes sense to enable it, but I
> also noticed that
> mmc_board_init() is manipulating the pbias settings.  Do you think
> this is OK, or do you think we should remove the pbias references from
> here and only
> use them from omap_hsmmc_set_io_regulator()?
omap_hsmmc_set_io_regulator() can be used only with DM so it should stay 
in mmc_board_init() at least for the non-DM case

>
>>> The pbias driver does not seem to have the same checks for disabling
>>> the extended drain IO before changing the PBIAS which seems to be
>>> required per the DM3730 technical reference manual.  Would it make
>>> sense to do this in here, or is it just better to leave it in the MMC
>>> Driver?
>> IMO It would make sense to do it in the PBIAS driver as it is strongly
>> advised
>> to toggle both at the same time.
> I don't know the details of the other OMAP/Sitara SoC's, but
> currently, there is an ifdef for the OMAP36XX inside mmc_board_init
> which disables and enables the IO when toggling.  Are there other
> SoC's that should be included and if so, do they use the same
> registers?  I am basically trying to determine if the #ifdef for the
> OMAP36XX is necessary or if it should always be included.
I don't know enough about all the SOCs to say for sure. I'd say that 
this is required only for omap36xx.

>
> adam
>> JJ
>>> adam
>>>



More information about the U-Boot mailing list