
On 09/02/2016 11:50 AM, Kever Yang wrote:
Hi Marek,
Hi!
On 09/01/2016 04:58 PM, Marek Vasut wrote:
On 09/01/2016 04:21 AM, Kever Yang wrote:
Hi Marek,
On 08/31/2016 08:30 PM, Marek Vasut wrote:
On 08/31/2016 10:40 AM, Kever Yang wrote:
This patch add board_usb_init() and interrupt callback for dwc3 gadget.
Signed-off-by: Kever Yang kever.yang@rock-chips.com
Changes in v3:
- remove utmi width DT parse from borad init
OK
Changes in v2:
parse dt for utmi width
board/rockchip/evb_rk3399/evb-rk3399.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+)
diff --git a/board/rockchip/evb_rk3399/evb-rk3399.c b/board/rockchip/evb_rk3399/evb-rk3399.c index d394276..0d39902 100644 --- a/board/rockchip/evb_rk3399/evb-rk3399.c +++ b/board/rockchip/evb_rk3399/evb-rk3399.c @@ -7,6 +7,8 @@ #include <dm.h> #include <dm/pinctrl.h> #include <asm/arch/periph.h> +#include <usb.h> +#include <dwc3-uboot.h> DECLARE_GLOBAL_DATA_PTR; @@ -54,3 +56,24 @@ 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,
- .dis_u2_susphy_quirk = 1,
+};
Uh, didn't I complain last time that this should come from DT and not platdata ?
Since I'm not able to remove the platdata, I thought maybe I can init those features here, I will parse DT for maximum_speed, base, and dis_u2_susphy_quirk in next version.
Why aren't you able to remove the platdata ?
Because this platdata is not only used by Rockchip SoC, but also used for many different SoC like exynos5, zynqmp, and ti SoCs
No, these platdata are in your board file, so it's only used by your board. If what you mean is that dwc3_uboot_init() requires non-NULL $dwc3_dev parameter, that's pretty easy to fix: - Check if dwc3_dev is NULL and if so, invoke (new) function, let's say dwc3_uboot_of_init() - dwc3_uboot_of_init() would allocate the struct dwc3_device , fill it in from DT and return pointer to it (or null on failure)
This look like the least intrusive way to do things.
, and the dts node for dwc3 gadget in these
SoCs are totally different.
How can the DT node for the exact same controller be different ? The DT is an ABI, STANDARD, it is documented how the node should look and what it should contain. If it deviates from that, it is invalid and needs fixing.
Maybe maintainer like you are the one able to enable the DM for usb/dwc3 gadget, get the all the information from DT and update for all the platforms?
I'm happy to test on rk3399-evb, but I don't have boards for other SoC.
I don't have any dwc3 device (I think), so I depend purely on the contributors to do the right thing.
Thanks,
- Kever