All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kever Yang <kever.yang@rock-chips.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v4 2/4] board: evb-rk3399: add api to support dwc3 gadget
Date: Fri, 02 Sep 2016 17:58:54 +0800	[thread overview]
Message-ID: <57C94D5E.5060007@rock-chips.com> (raw)
In-Reply-To: <d063852c-f8cd-1812-84c3-5419c659094f@denx.de>

Hi Marek,

On 09/01/2016 04:59 PM, Marek Vasut wrote:
> On 09/01/2016 04:14 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 v4:
>> - parse DT for quirk, base address and maximum speed
>>
>> Changes in v3:
>> - remove utmi width DT parse from borad init
>>
>> Changes in v2:
>> - parse dt for utmi width
>>
>>   board/rockchip/evb_rk3399/evb-rk3399.c | 51 ++++++++++++++++++++++++++++++++++
>>   1 file changed, 51 insertions(+)
>>
>> diff --git a/board/rockchip/evb_rk3399/evb-rk3399.c b/board/rockchip/evb_rk3399/evb-rk3399.c
>> index d394276..58bfa78 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,52 @@ 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 = {
>> +	.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;
>> +	const char *string;
>> +
>> +	node = fdt_node_offset_by_compatible(blob, -1,
>> +			"rockchip,rk3399-xhci");
>> +	if (node < 0) {
>> +		debug("%s dwc3 node not found\n", __func__);
>> +	} else {
>> +		dwc3_device_data.base = fdtdec_get_addr(blob, node, "reg");
>> +		dwc3_device_data.dis_u2_susphy_quirk =
>> +			fdtdec_get_int(blob, node,
>> +				       "snps,dis-u2-susphy-quirk", -1);
>> +
>> +		string = fdt_getprop(blob, node, "maximum-speed", NULL);
>> +		if (string) {
>> +			if (0 == strcmp(string, "super-speed"))
>> +				dwc3_device_data.maximum_speed = USB_SPEED_SUPER;
>> +			else if (0 == strcmp(string, "high-speed"))
>> +				dwc3_device_data.maximum_speed = USB_SPEED_HIGH;
>> +			else if (0 == strcmp(string, "full-speed"))
>> +				dwc3_device_data.maximum_speed = USB_SPEED_FULL;
>> +			else
>> +				debug("%s: Cannot decode speed'%s'\n", __func__,
>> +				      string);
>> +		} else {
>> +			dwc3_device_data.maximum_speed = USB_SPEED_HIGH;
>> +		}
>> +		/* Hardcode controller in peripheral mode */
>> +		dwc3_device_data.dr_mode = USB_DR_MODE_PERIPHERAL;
>> +	}
>> +
>> +	return dwc3_uboot_init(&dwc3_device_data);
>> +}
>> +#endif
>>
> So will every board have a copy of this exact code, verbatim ?
>
Yes for rk3399 based board.
Not sure why you ask this question, but I guess you still want these 
parse happen in driver instead of board_init()?
I didn't make these code in dwc3 driver because other SoC dts are 
different now, they are init in platdata data structure.

To be honest, I want to make the upstream code to support rk3399 dwc3, 
but I don't want to touch too much code in other SoC.

Thanks,
- Kever

  reply	other threads:[~2016-09-02  9:58 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-01  2:14 [U-Boot] [PATCH v4 0/4] rk3399: enable dwc3 gadget and fastboot Kever Yang
2016-09-01  2:14 ` [U-Boot] [PATCH v4 1/4] rk3399: add a empty "sys_proto.h" header file Kever Yang
2016-09-05 23:17   ` Simon Glass
2016-09-01  2:14 ` [U-Boot] [PATCH v4 2/4] board: evb-rk3399: add api to support dwc3 gadget Kever Yang
2016-09-01  8:59   ` Marek Vasut
2016-09-02  9:58     ` Kever Yang [this message]
2016-09-02 12:14       ` Marek Vasut
2016-09-01  2:14 ` [U-Boot] [PATCH v4 3/4] usb: dwc3: add support for 16 bit UTMI+ interface Kever Yang
2016-09-01  9:09   ` Marek Vasut
2016-09-02 10:00     ` Kever Yang
2017-09-11 13:30   ` [U-Boot] [U-Boot, v4, " Philipp Tomsich
2017-09-12  5:02     ` Kever Yang
2017-09-12  9:09       ` Dr. Philipp Tomsich
2017-09-12 10:22         ` Marek Vasut
2017-09-12 10:50           ` Dr. Philipp Tomsich
2016-09-01  2:14 ` [U-Boot] [PATCH v4 4/4] config: rk3399: add support for dwc3 gadget Kever Yang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=57C94D5E.5060007@rock-chips.com \
    --to=kever.yang@rock-chips.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.