diff options
author | Shawn Guo <shawn.guo@linaro.org> | 2018-12-18 17:52:06 +0800 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2019-01-14 17:42:44 -0500 |
commit | e7ab6dfc65f3656bf0df9e818dc12ad33be26d44 (patch) | |
tree | ad5aeb103e3d8ff67bd59f55e8625de524a9d855 /board/hisilicon | |
parent | 596be5f3274ff674f526b77f75064f0495aff693 (diff) |
poplar: add DWC2 OTG gadget support
It enables DWC2 OTG gadget driver support for Poplar board. As
usb2_phy_init() is being always called from board_init(), we can save
the call from board_usb_init().
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Diffstat (limited to 'board/hisilicon')
-rw-r--r-- | board/hisilicon/poplar/poplar.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/board/hisilicon/poplar/poplar.c b/board/hisilicon/poplar/poplar.c index 8adc750962..155dfbb401 100644 --- a/board/hisilicon/poplar/poplar.c +++ b/board/hisilicon/poplar/poplar.c @@ -166,6 +166,34 @@ int board_mmc_init(bd_t *bis) return ret; } +#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG) +#include <usb.h> +#include <usb/dwc2_udc.h> +#include <g_dnl.h> + +static struct dwc2_plat_otg_data poplar_otg_data = { + .regs_otg = HIOTG_BASE_ADDR +}; + +static void set_usb_to_device(void) +{ + setbits_le32(PERI_CTRL_USB3, USB2_2P_CHIPID); +} + +int board_usb_init(int index, enum usb_init_type init) +{ + set_usb_to_device(); + return dwc2_udc_probe(&poplar_otg_data); +} + +int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) +{ + if (!env_get("serial#")) + g_dnl_set_serialnumber("0123456789POPLAR"); + return 0; +} +#endif + int board_init(void) { usb2_phy_init(); |