Hi Simon,
On 11/12/2016 12:17 AM, Simon Glass wrote:
Hi Kever,
On 8 November 2016 at 03:13, Kever Yang <kever.y...@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.y...@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", ®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
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot