From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adam Ford Date: Tue, 11 Sep 2018 05:45:29 -0500 Subject: [U-Boot] PBIAS driver and MMC Interaction in U-Boot Question In-Reply-To: References: Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Mon, Sep 10, 2018 at 6:40 AM Jean-Jacques Hiblot 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()? > > > > > 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. adam > > JJ > > > > adam > > >