
Jagan,
On 2019/11/19 下午4:26, Jagan Teki wrote:
Setup dwc3_device structure for non-dm gadgets, which is used in rk3399 platforms.
dwc3_device would have basic regbase, dr_mode, high speed and 16-bit UTMI+ etc.
Cc: Marek Vasut marex@denx.de Tested-by: Levin Du djw@t-chip.com.cn Signed-off-by: Jagan Teki jagan@amarulasolutions.com
arch/arm/mach-rockchip/board.c | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-rockchip/board.c b/arch/arm/mach-rockchip/board.c index c90eb976d0..542823b8cd 100644 --- a/arch/arm/mach-rockchip/board.c +++ b/arch/arm/mach-rockchip/board.c @@ -49,8 +49,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 +119,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) && !defined(CONFIG_DM_USB_GADGET)
I believe we should use CONFIG_USB_DWC3_GADGET instead of CONFIG_USB_DWC3.
This patch cause below error:
aarch64: + rock64-rk3328 +arch/arm/mach-rockchip/board.c:142:5: error: redefinition of ‘board_usb_init’ + int board_usb_init(int index, enum usb_init_type init) + ^~~~~~~~~~~~~~ +arch/arm/mach-rockchip/board.c:64:5: note: previous definition of ‘board_usb_init’ was here +make[2]: *** [arch/arm/mach-rockchip/board.o] Error 1
Thanks,
- Kever
+#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 */
+#endif /* CONFIG_USB_GADGET */
#if CONFIG_IS_ENABLED(FASTBOOT) int fastboot_set_reboot_flag(void)