From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kever Yang Date: Mon, 14 Nov 2016 18:07:17 +0800 Subject: [U-Boot] [PATCH 4/4] rk3036: enable the vbus regulator when borad_init In-Reply-To: References: <1478600022-18822-1-git-send-email-kever.yang@rock-chips.com> <1478600022-18822-5-git-send-email-kever.yang@rock-chips.com> Message-ID: <58298CD5.8000608@rock-chips.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Simon, On 11/12/2016 12:17 AM, Simon Glass wrote: > Hi Kever, > > On 8 November 2016 at 03:13, Kever Yang 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 >> --- >> >> 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 >> #include >> #include >> +#include >> >> 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", ®ulator); > 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 >> > >