1*1b23c040SFrank Wang // SPDX-License-Identifier: GPL-2.0
2625ec503SKever Yang /*
3*1b23c040SFrank Wang * Copyright (C) 2020 Rockchip Electronics Co., Ltd
4625ec503SKever Yang */
5*1b23c040SFrank Wang
6*1b23c040SFrank Wang #include <asm/io.h>
7*1b23c040SFrank Wang #include <usb.h>
8*1b23c040SFrank Wang #include <dwc3-uboot.h>
9*1b23c040SFrank Wang #include <linux/usb/phy-rockchip-inno-usb3.h>
10*1b23c040SFrank Wang
11*1b23c040SFrank Wang #if CONFIG_IS_ENABLED(USB_DWC3_GADGET)
12*1b23c040SFrank Wang static struct dwc3_device dwc3_device_data = {
13*1b23c040SFrank Wang .maximum_speed = USB_SPEED_SUPER,
14*1b23c040SFrank Wang .base = 0xff600000,
15*1b23c040SFrank Wang .dr_mode = USB_DR_MODE_PERIPHERAL,
16*1b23c040SFrank Wang .index = 0,
17*1b23c040SFrank Wang .dis_u2_susphy_quirk = 1,
18*1b23c040SFrank Wang .dis_u1u2_quirk = 1,
19*1b23c040SFrank Wang .usb2_phyif_utmi_width = 16,
20*1b23c040SFrank Wang };
21*1b23c040SFrank Wang
usb_gadget_handle_interrupts(void)22*1b23c040SFrank Wang int usb_gadget_handle_interrupts(void)
23*1b23c040SFrank Wang {
24*1b23c040SFrank Wang dwc3_uboot_handle_interrupt(0);
25*1b23c040SFrank Wang return 0;
26*1b23c040SFrank Wang }
27*1b23c040SFrank Wang
board_usb_init(int index,enum usb_init_type init)28*1b23c040SFrank Wang int board_usb_init(int index, enum usb_init_type init)
29*1b23c040SFrank Wang {
30*1b23c040SFrank Wang rockchip_u3phy_uboot_init();
31*1b23c040SFrank Wang return dwc3_uboot_init(&dwc3_device_data);
32*1b23c040SFrank Wang }
33*1b23c040SFrank Wang #endif
34