[U-Boot] Rockchip RK3288 regulator device table problem

Rick Bronson rick at efn.org
Mon Dec 12 17:57:58 CET 2016


Hi Simon,

>
> On 9 December 2016 at 18:12, Rick Bronson <rick at efn.org> wrote:
> > Hi All,
> >
> >   How do I enable a particular regulator upon boot?  I have two
> > identically set LDO entries:
> >
> >                         vccio_en: LDO_REG1 {
> >                                 regulator-always-on;
> >                                 regulator-boot-on;
> >                                 regulator-min-microvolt = <3300000>;
> >                                 regulator-max-microvolt = <3300000>;
> >                                 regulator-name = "vccio_en";
> >                                 regulator-state-mem {
> >                                         regulator-on-in-suspend;
> >                                         regulator-suspend-microvolt =
<3300000>;
> >                                 };
> >                         };
> >
> >                         vcc33_mic: LDO_REG2 {
> >                                 regulator-always-on;
> >                                 regulator-boot-on;
> >                                 regulator-min-microvolt = <3300000>;
> >                                 regulator-max-microvolt = <3300000>;
> >                                 regulator-name = "vcc33_mic";
> >                                 regulator-state-mem {
> >                                         regulator-on-in-suspend;
> >                                         regulator-suspend-microvolt =
<3300000>;
> >                                 };
> >                         };
> >
> >   Yet one is enabled, the other disabled, any idea why?:
> >
> > => regulator status
> > Name                 Enabled            uV         mA Mode
> > ...
> > vccio_en             enabled       3300000          - -
> > vcc33_mic            disabled      3300000          - -
> >
> >   And oddly, the uV values actually don't come from the DT but from
> > the rk808_ldo table in drivers/power/regulator/rk808.c
>
> Do you think this is happening by PMIC settings (in the device) rather
> than through U-Boot?

  Think I found the reason for this, it's this way because of the way
BOOT0, BOOT1 are strapped on the RK808.

>
> >
> >   Any ideas?
> >
> > Thanks for any help.
> >
>
> There is a function called regulators_enable_boot_on() which enables
> all boot-on regulators that have a fixed voltage, but I don't think
> that is called with rockchip.
>
> Now that I look at it, I cannot see why I put the voltage values in
> the driver. They should come form DT.

  Do you think the right way to solve this is (from common/board_r.c):

__weak int power_init_board(void)
{
 	regulators_enable_boot_on(false);
	return 0;
}

  Tried this but it seems to introduce a race condition because often, it
hangs.

  Cheers,

  Rick





More information about the U-Boot mailing list