From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kever Yang Date: Wed, 24 Aug 2016 11:46:42 +0800 Subject: [U-Boot] [PATCH v2 2/4] board: evb-rk3399: add api to support dwc3 gadget In-Reply-To: <1472010404-334-1-git-send-email-kever.yang@rock-chips.com> References: <1472010404-334-1-git-send-email-kever.yang@rock-chips.com> Message-ID: <1472010404-334-3-git-send-email-kever.yang@rock-chips.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de This patch add board_usb_init() and interrupt callback for dwc3 gadget. Signed-off-by: Kever Yang Reviewed-by: Simon Glass --- Changes in v2: - parse dt for utmi width board/rockchip/evb_rk3399/evb-rk3399.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/board/rockchip/evb_rk3399/evb-rk3399.c b/board/rockchip/evb_rk3399/evb-rk3399.c index d394276..5d3a09a 100644 --- a/board/rockchip/evb_rk3399/evb-rk3399.c +++ b/board/rockchip/evb_rk3399/evb-rk3399.c @@ -7,6 +7,8 @@ #include #include #include +#include +#include DECLARE_GLOBAL_DATA_PTR; @@ -54,3 +56,34 @@ void dram_init_banksize(void) gd->bd->bi_dram[0].start = 0x200000; gd->bd->bi_dram[0].size = 0x80000000; } + +#ifdef CONFIG_USB_DWC3 +static struct dwc3_device dwc3_device_data = { + .maximum_speed = USB_SPEED_HIGH, + .base = 0xfe800000, + .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) +{ + const void *blob = gd->fdt_blob; + int node; + + node = fdt_node_offset_by_compatible(blob, -1, + "rockchip,rk3399-xhci"); + if (node < 0) + debug("%s node not found\n", __func__); + else + dwc3_device_data.usb2_phyif_utmi_width = + fdtdec_get_int(blob, node, "snps,phyif-utmi-bits", -1); + + return dwc3_uboot_init(&dwc3_device_data); +} +#endif -- 1.9.1