common: Move some board functions out of common.h
[oweals/u-boot.git] / arch / arm / mach-rockchip / board.c
index c90eb976d0f71f279a16704b6b43f76c27433397..14b9e89ea352fb79f61af2c3b62a6e6997dc3fb8 100644 (file)
@@ -4,7 +4,9 @@
  */
 #include <common.h>
 #include <clk.h>
+#include <cpu_func.h>
 #include <dm.h>
+#include <init.h>
 #include <ram.h>
 #include <syscon.h>
 #include <asm/io.h>
@@ -49,8 +51,10 @@ void enable_caches(void)
 }
 #endif
 
-#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG)
+#if defined(CONFIG_USB_GADGET)
 #include <usb.h>
+
+#if defined(CONFIG_USB_GADGET_DWC2_OTG)
 #include <usb/dwc2_udc.h>
 
 static struct dwc2_plat_otg_data otg_data = {
@@ -117,7 +121,33 @@ int board_usb_cleanup(int index, enum usb_init_type init)
 {
        return 0;
 }
-#endif
+#endif /* CONFIG_USB_GADGET_DWC2_OTG */
+
+#if defined(CONFIG_USB_DWC3_GADGET) && !defined(CONFIG_DM_USB_GADGET)
+#include <dwc3-uboot.h>
+
+static struct dwc3_device dwc3_device_data = {
+       .maximum_speed = USB_SPEED_HIGH,
+       .base = 0xfe800000,
+       .dr_mode = USB_DR_MODE_PERIPHERAL,
+       .index = 0,
+       .dis_u2_susphy_quirk = 1,
+       .hsphy_mode = USBPHY_INTERFACE_MODE_UTMIW,
+};
+
+int usb_gadget_handle_interrupts(void)
+{
+       dwc3_uboot_handle_interrupt(0);
+       return 0;
+}
+
+int board_usb_init(int index, enum usb_init_type init)
+{
+       return dwc3_uboot_init(&dwc3_device_data);
+}
+#endif /* CONFIG_USB_DWC3_GADGET */
+
+#endif /* CONFIG_USB_GADGET */
 
 #if CONFIG_IS_ENABLED(FASTBOOT)
 int fastboot_set_reboot_flag(void)