From 2efb33591a5f7b5765d5209c2b3b418e9754b0e8 Mon Sep 17 00:00:00 2001 From: Lukasz Majewski Date: Thu, 12 May 2016 13:17:03 +0200 Subject: [PATCH] TPL: TM2: usb3: Provide board specific code to support DWC3 controller Signed-off-by: Lukasz Majewski --- board/samsung/tm2/tm2.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/board/samsung/tm2/tm2.c b/board/samsung/tm2/tm2.c index cb4328e..69bbbea 100644 --- a/board/samsung/tm2/tm2.c +++ b/board/samsung/tm2/tm2.c @@ -7,8 +7,14 @@ #include #include #include +#include #include #include +#include +#include +#include +#include +#include DECLARE_GLOBAL_DATA_PTR; @@ -98,6 +104,37 @@ int board_mmc_init(bd_t *bis) } #endif +#ifdef CONFIG_USB_DWC3 +static struct dwc3_device dwc3_device_data = { + .maximum_speed = USB_SPEED_SUPER, + .base = 0x15400000, + .dr_mode = USB_DR_MODE_PERIPHERAL, + .index = 0, +}; + +int usb_gadget_handle_interrupts(void) +{ + dwc3_uboot_handle_interrupt(0); + return 0; +} + +int board_usb_init(int index, enum usb_init_type init) +{ + struct exynos_usb3_phy *phy = (struct exynos_usb3_phy *) + samsung_get_base_usb3_phy(); + + if (!phy) { + error("usb3 phy not supported"); + return -ENODEV; + } + + set_usbdrd_phy_ctrl(POWER_USB_DRD_PHY_CTRL_EN); + exynos5_usb3_phy_init(phy); + + return dwc3_uboot_init(&dwc3_device_data); +} +#endif + int checkboard(void) { const char *board_info; -- 2.7.4