Message ID | 1471419785-32571-7-git-send-email-kever.yang@rock-chips.com |
---|---|
State | Superseded |
Headers | show |
Hi Kever, On 17 August 2016 at 01:43, Kever Yang <kever.yang@rock-chips.com> wrote: > rk3399 using one gpio control signal for two usb 2.0 host port, > it's better to enable the power in board file instead of in usb driver. > > Signed-off-by: Kever Yang <kever.yang@rock-chips.com> > --- > > board/rockchip/evb_rk3399/evb-rk3399.c | 16 +++++++++++++++- > 1 file changed, 15 insertions(+), 1 deletion(-) > > diff --git a/board/rockchip/evb_rk3399/evb-rk3399.c b/board/rockchip/evb_rk3399/evb-rk3399.c > index cd61f59..12a49ee 100644 > --- a/board/rockchip/evb_rk3399/evb-rk3399.c > +++ b/board/rockchip/evb_rk3399/evb-rk3399.c > @@ -9,12 +9,13 @@ > #include <asm/arch/periph.h> > #include <usb.h> > #include <dwc3-uboot.h> > +#include <power/regulator.h> > > DECLARE_GLOBAL_DATA_PTR; > > int board_init(void) > { > - struct udevice *pinctrl; > + struct udevice *pinctrl, *regulator; > int ret; > > /* > @@ -40,6 +41,19 @@ int board_init(void) > goto out; > } > > + ret = uclass_get_device_by_name(UCLASS_REGULATOR, > + "vcc5v0-host-en", ®ulator); > + if (ret) { > + debug("%s vcc5v0-host-en init fail!\n", __func__); > + goto out; This may be fine, but please take a look at regulator_get_by_platname() which is more normal since it uses the regulator-name property. Or even regulator_autoset_by_name(). > + } > + > + ret = regulator_set_enable(regulator, true); > + if (ret) { > + debug("%s vcc5v0-host-en set fail!\n", __func__); > + goto out; > + } > + > out: > return 0; > } > -- > 1.9.1 > Regards, Simon
diff --git a/board/rockchip/evb_rk3399/evb-rk3399.c b/board/rockchip/evb_rk3399/evb-rk3399.c index cd61f59..12a49ee 100644 --- a/board/rockchip/evb_rk3399/evb-rk3399.c +++ b/board/rockchip/evb_rk3399/evb-rk3399.c @@ -9,12 +9,13 @@ #include <asm/arch/periph.h> #include <usb.h> #include <dwc3-uboot.h> +#include <power/regulator.h> DECLARE_GLOBAL_DATA_PTR; int board_init(void) { - struct udevice *pinctrl; + struct udevice *pinctrl, *regulator; int ret; /* @@ -40,6 +41,19 @@ int board_init(void) goto out; } + ret = uclass_get_device_by_name(UCLASS_REGULATOR, + "vcc5v0-host-en", ®ulator); + if (ret) { + debug("%s vcc5v0-host-en init fail!\n", __func__); + goto out; + } + + ret = regulator_set_enable(regulator, true); + if (ret) { + debug("%s vcc5v0-host-en set fail!\n", __func__); + goto out; + } + out: return 0; }
rk3399 using one gpio control signal for two usb 2.0 host port, it's better to enable the power in board file instead of in usb driver. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> --- board/rockchip/evb_rk3399/evb-rk3399.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-)