From 302a7d0006da530ffbb771677ea71d61b0f1cb7e Mon Sep 17 00:00:00 2001 From: Joonyoung Shim Date: Fri, 22 May 2015 18:14:24 +0200 Subject: smdk5420: board: add functions required to enable USB DWC3 This commit adds implementation of function calls: - usb_gadget_handle_interrupts() - board_usb_init() Which allow enable USB DWC3 gadget for this board. Signed-off-by: Joonyoung Shim Signed-off-by: Lukasz Majewski Signed-off-by: Inha Song Cc: Minkyu Kang --- board/samsung/common/board.c | 6 ++++- board/samsung/smdk5420/smdk5420.c | 50 +++++++++++++++++++++++++++++++++------ 2 files changed, 48 insertions(+), 8 deletions(-) (limited to 'board/samsung') diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c index 20dd75c22e..1a4e8c9c99 100644 --- a/board/samsung/common/board.c +++ b/board/samsung/common/board.c @@ -24,8 +24,9 @@ #include #include #include -#include #include +#include +#include DECLARE_GLOBAL_DATA_PTR; @@ -378,5 +379,8 @@ void reset_misc(void) int board_usb_cleanup(int index, enum usb_init_type init) { +#ifdef CONFIG_USB_DWC3 + dwc3_uboot_exit(index); +#endif return 0; } diff --git a/board/samsung/smdk5420/smdk5420.c b/board/samsung/smdk5420/smdk5420.c index 82f607b24d..8021f779e0 100644 --- a/board/samsung/smdk5420/smdk5420.c +++ b/board/samsung/smdk5420/smdk5420.c @@ -6,19 +6,24 @@ #include #include -#include -#include -#include -#include -#include #include +#include #include -#include #include -#include +#include +#include #include +#include #include +#include #include +#include +#include +#include +#include +#include +#include +#include DECLARE_GLOBAL_DATA_PTR; @@ -75,3 +80,34 @@ int board_get_revision(void) { return 0; } + +#ifdef CONFIG_USB_DWC3 +static struct dwc3_device dwc3_device_data = { + .maximum_speed = USB_SPEED_SUPER, + .base = 0x12400000, + .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 -- cgit v1.2.1