[U-Boot] [PATCH v2 2/4] board: evb-rk3399: add api to support dwc3 gadget

Kever Yang kever.yang at rock-chips.com
Mon Aug 29 02:49:25 CEST 2016


Hi Marek,

On 08/26/2016 05:11 PM, Marek Vasut wrote:
> On 08/25/2016 03:07 AM, Kever Yang wrote:
>> + Marek
>>
>> On 08/24/2016 11:46 AM, Kever Yang wrote:
>>> This patch add board_usb_init() and interrupt callback
>>> for dwc3 gadget.
>>>
>>> Signed-off-by: Kever Yang <kever.yang at rock-chips.com>
>>> Reviewed-by: Simon Glass <sjg at chromium.org>
>>> ---
>>>
>>> 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 <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,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,
> Why don't you parse all of this from DT ? You already parse DT below.

I add these code by reference to exynos5 and zynqmp platform, I can parse
all information from DT which including in DT, but maximum_speed still 
defined
here, because it's not in DT node, is that OK?

Thanks,
- Kever
>
>>> +    .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
>>
>




More information about the U-Boot mailing list