[U-Boot] [PATCH 4/4] rk3036: enable the vbus regulator when borad_init

Kever Yang kever.yang at rock-chips.com
Mon Nov 14 11:07:17 CET 2016


Hi Simon,

On 11/12/2016 12:17 AM, Simon Glass wrote:
> Hi Kever,
>
> On 8 November 2016 at 03:13, Kever Yang <kever.yang at rock-chips.com> wrote:
>> enable the vbus for usb host in board_init().
> Note 'borad_init' typo in subject.

Will fix in next version.
>
>> Signed-off-by: Kever Yang <kever.yang at rock-chips.com>
>> ---
>>
>>   arch/arm/mach-rockchip/rk3036-board.c | 20 ++++++++++++++++++++
>>   1 file changed, 20 insertions(+)
>>
>> diff --git a/arch/arm/mach-rockchip/rk3036-board.c b/arch/arm/mach-rockchip/rk3036-board.c
>> index bf2b268..90d3d33 100644
>> --- a/arch/arm/mach-rockchip/rk3036-board.c
>> +++ b/arch/arm/mach-rockchip/rk3036-board.c
>> @@ -16,6 +16,7 @@
>>   #include <asm/arch/sdram_rk3036.h>
>>   #include <asm/gpio.h>
>>   #include <dm/pinctrl.h>
>> +#include <power/regulator.h>
>>
>>   DECLARE_GLOBAL_DATA_PTR;
>>
>> @@ -57,7 +58,26 @@ int board_late_init(void)
>>
>>   int board_init(void)
>>   {
>> +       int ret;
>> +       struct udevice *regulator;
>> +
>> +       ret = regulator_get_by_platname("vcc5v0_host", &regulator);
> Can this be done in the USB driver? Then you might be able to use
> device_get_supply_regulator().

In dwc2 controller, there do have a bit for host power to control a signal
named HOST_DRV_VBUS and init at dwc_otg_core_host_init(), but we do not
using that controller signal, and using a GPIO instead, which may be 
different
in different board, so we usually enable it in board file.

Let me have a try if we can move it to USB driver.

>
> In fact it looks like board_usb_init() should move into a driver.

We are not using board_usb_init() for usb host now, this function is 
only used
for usb gadget/udc.

Thanks,
- Kever
>
>
>> +       if (ret) {
>> +               printf("%s vcc5v0_host init fail! ret %d\n", __func__, ret);
>> +               goto out;
>> +       }
>> +
>> +       ret = regulator_set_enable(regulator, true);
>> +       if (ret) {
>> +               printf("%s vcc5v0-host enable fail!\n", __func__);
>> +               goto out;
>> +       }
>> +
>>          return 0;
>> +out:
>> +       printf("%s board ini error %x\n", __func__, ret);
>> +
>> +       return ret;
>>   }
>>
>>   int dram_init(void)
>> --
>> 1.9.1
>>
>
>




More information about the U-Boot mailing list