From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Jacques Hiblot Date: Fri, 14 Sep 2018 09:59:35 +0200 Subject: [U-Boot] PBIAS driver and MMC Interaction in U-Boot Question In-Reply-To: References: Message-ID: <89a45013-7ca3-c143-8645-e2dd71ca4369@ti.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 11/09/2018 12:45, Adam Ford wrote: > 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()? 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 >>>