All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 0/3] rockchip: rv1108: support USB OTG and Host ports on evb-rv1108
@ 2017-08-09  3:36 William Wu
  2017-08-09  3:36 ` [U-Boot] [PATCH 1/3] configs: rockchip: add USB configs for evb-rv1108 board William Wu
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: William Wu @ 2017-08-09  3:36 UTC (permalink / raw)
  To: u-boot

This patch support USB OTG and Host ports on evb-rv1108 board. With this patch,
we can use fastboot over USB and mount USB mass storage on OTG and Host ports.

William Wu (3):
  configs: rockchip: add USB configs for evb-rv1108 board
  ARM: dts: rockchip: add USB nodes for evb-rv1108
  rockchip: evb-rv1108: add usb init function for dwc2 gadget

 arch/arm/dts/rv1108-evb.dts            | 22 ++++++++++++++++
 arch/arm/dts/rv1108.dtsi               | 24 +++++++++++++++++
 board/rockchip/evb_rv1108/evb_rv1108.c | 47 ++++++++++++++++++++++++++++++++++
 configs/evb-rv1108_defconfig           | 22 ++++++++++++++++
 include/configs/rv1108_common.h        |  3 +++
 5 files changed, 118 insertions(+)

-- 
2.0.0

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [U-Boot] [PATCH 1/3] configs: rockchip: add USB configs for evb-rv1108 board
  2017-08-09  3:36 [U-Boot] [PATCH 0/3] rockchip: rv1108: support USB OTG and Host ports on evb-rv1108 William Wu
@ 2017-08-09  3:36 ` William Wu
  2017-08-13 21:35   ` Simon Glass
                     ` (3 more replies)
  2017-08-09  3:36 ` [U-Boot] [PATCH 2/3] ARM: dts: rockchip: add USB nodes for evb-rv1108 William Wu
  2017-08-09  3:36 ` [U-Boot] [PATCH 3/3] rockchip: evb-rv1108: add usb init function for dwc2 gadget William Wu
  2 siblings, 4 replies; 19+ messages in thread
From: William Wu @ 2017-08-09  3:36 UTC (permalink / raw)
  To: u-boot

This patch adds USB configs to support the USB OTG port(consist
of DWC2 controller) and the USB Host port(consist of EHCI and OHCI
controllers) on evb-rv1108 board, and also support fastboot over
USB and USB mass storage.

Signed-off-by: William Wu <william.wu@rock-chips.com>
---
 configs/evb-rv1108_defconfig    | 22 ++++++++++++++++++++++
 include/configs/rv1108_common.h |  3 +++
 2 files changed, 25 insertions(+)

diff --git a/configs/evb-rv1108_defconfig b/configs/evb-rv1108_defconfig
index 3deea7c..496bfc8 100644
--- a/configs/evb-rv1108_defconfig
+++ b/configs/evb-rv1108_defconfig
@@ -6,8 +6,16 @@ CONFIG_DEFAULT_DEVICE_TREE="rv1108-evb"
 CONFIG_DEBUG_UART=y
 CONFIG_ENV_IS_NOWHERE=y
 # CONFIG_DISPLAY_CPUINFO is not set
+CONFIG_FASTBOOT=y
+CONFIG_USB_FUNCTION_FASTBOOT=y
+CONFIG_CMD_FASTBOOT=y
+CONFIG_FASTBOOT_BUF_ADDR=0x62000000
+CONFIG_FASTBOOT_BUF_SIZE=0x08000000
+CONFIG_FASTBOOT_FLASH=y
+CONFIG_FASTBOOT_FLASH_MMC_DEV=1
 # CONFIG_CMD_IMLS is not set
 CONFIG_CMD_SF=y
+CONFIG_CMD_USB=y
 # CONFIG_CMD_SETEXPR is not set
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_TIME=y
@@ -27,10 +35,24 @@ CONFIG_ETH_DESIGNWARE=y
 CONFIG_GMAC_ROCKCHIP=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_ROCKCHIP_RV1108=y
+CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_BAUDRATE=1500000
 # CONFIG_SPL_SERIAL_PRESENT is not set
 CONFIG_DEBUG_UART_BASE=0x10210000
 CONFIG_DEBUG_UART_CLOCK=24000000
 CONFIG_DEBUG_UART_SHIFT=2
 CONFIG_SYSRESET=y
+CONFIG_USB=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_GENERIC=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_GENERIC=y
+CONFIG_USB_DWC2=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_DWC2_OTG=y
+CONFIG_USB_GADGET_DOWNLOAD=y
+CONFIG_G_DNL_MANUFACTURER="Rockchip"
+CONFIG_G_DNL_VENDOR_NUM=0x2207
+CONFIG_G_DNL_PRODUCT_NUM=0x110a
 CONFIG_ERRNO_STR=y
diff --git a/include/configs/rv1108_common.h b/include/configs/rv1108_common.h
index 2b63abc..f6fefaa 100644
--- a/include/configs/rv1108_common.h
+++ b/include/configs/rv1108_common.h
@@ -29,4 +29,7 @@
 #define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SYS_TEXT_BASE + 0x100000)
 #define CONFIG_SYS_LOAD_ADDR		(CONFIG_SYS_SDRAM_BASE + 0x2000000)
 
+/* rockchip ohci host driver */
+#define CONFIG_USB_OHCI_NEW
+#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS	1
 #endif
-- 
2.0.0

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [U-Boot] [PATCH 2/3] ARM: dts: rockchip: add USB nodes for evb-rv1108
  2017-08-09  3:36 [U-Boot] [PATCH 0/3] rockchip: rv1108: support USB OTG and Host ports on evb-rv1108 William Wu
  2017-08-09  3:36 ` [U-Boot] [PATCH 1/3] configs: rockchip: add USB configs for evb-rv1108 board William Wu
@ 2017-08-09  3:36 ` William Wu
  2017-08-13 21:35   ` Simon Glass
                     ` (3 more replies)
  2017-08-09  3:36 ` [U-Boot] [PATCH 3/3] rockchip: evb-rv1108: add usb init function for dwc2 gadget William Wu
  2 siblings, 4 replies; 19+ messages in thread
From: William Wu @ 2017-08-09  3:36 UTC (permalink / raw)
  To: u-boot

This patch adds USB OTG/EHCI/OHCI nodes for evb-rv1108 USB ports.

Signed-off-by: William Wu <william.wu@rock-chips.com>
---
 arch/arm/dts/rv1108-evb.dts | 22 ++++++++++++++++++++++
 arch/arm/dts/rv1108.dtsi    | 24 ++++++++++++++++++++++++
 2 files changed, 46 insertions(+)

diff --git a/arch/arm/dts/rv1108-evb.dts b/arch/arm/dts/rv1108-evb.dts
index 0128dd8..2b221b6 100644
--- a/arch/arm/dts/rv1108-evb.dts
+++ b/arch/arm/dts/rv1108-evb.dts
@@ -20,6 +20,15 @@
 	chosen {
 		stdout-path = "serial2:1500000n8";
 	};
+
+	vcc5v0_otg: vcc5v0-otg-drv {
+		compatible = "regulator-fixed";
+		enable-active-high;
+		regulator-name = "vcc5v0_otg";
+		gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+	};
 };
 
 &gmac {
@@ -52,3 +61,16 @@
 &uart2 {
 	status = "okay";
 };
+
+&usb20_otg {
+	vbus-supply = <&vcc5v0_otg>;
+	status = "okay";
+};
+
+&usb_host_ehci {
+	status = "okay";
+};
+
+&usb_host_ohci {
+	status = "okay";
+};
diff --git a/arch/arm/dts/rv1108.dtsi b/arch/arm/dts/rv1108.dtsi
index 77ca24e..3153dfe 100644
--- a/arch/arm/dts/rv1108.dtsi
+++ b/arch/arm/dts/rv1108.dtsi
@@ -175,6 +175,30 @@
 		status = "disabled";
 	};
 
+	usb_host_ehci: usb at 30140000 {
+		compatible = "generic-ehci";
+		reg = <0x30140000 0x20000>;
+		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+		status = "disabled";
+	};
+
+	usb_host_ohci: usb at 30160000 {
+		compatible = "generic-ohci";
+		reg = <0x30160000 0x20000>;
+		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+		status = "disabled";
+	};
+
+	usb20_otg: usb at 30180000 {
+		compatible = "rockchip,rv1108-usb", "rockchip,rk3288-usb",
+			     "snps,dwc2";
+		reg = <0x30180000 0x40000>;
+		interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
+		hnp-srp-disable;
+		dr_mode = "otg";
+		status = "disabled";
+	};
+
 	sfc: sfc at 301c0000 {
 		compatible = "rockchip,sfc";
 		reg = <0x301c0000 0x200>;
-- 
2.0.0

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [U-Boot] [PATCH 3/3] rockchip: evb-rv1108: add usb init function for dwc2 gadget
  2017-08-09  3:36 [U-Boot] [PATCH 0/3] rockchip: rv1108: support USB OTG and Host ports on evb-rv1108 William Wu
  2017-08-09  3:36 ` [U-Boot] [PATCH 1/3] configs: rockchip: add USB configs for evb-rv1108 board William Wu
  2017-08-09  3:36 ` [U-Boot] [PATCH 2/3] ARM: dts: rockchip: add USB nodes for evb-rv1108 William Wu
@ 2017-08-09  3:36 ` William Wu
  2017-08-13 21:35   ` Simon Glass
  2017-08-18 16:08   ` [U-Boot] [U-Boot, " Philipp Tomsich
  2 siblings, 2 replies; 19+ messages in thread
From: William Wu @ 2017-08-09  3:36 UTC (permalink / raw)
  To: u-boot

This patch implements board_usb_init() for dwc2 gadget, it
generally called from do_fastboot to do dwc2 udc probe and
support fastboot over USB.

Signed-off-by: William Wu <william.wu@rock-chips.com>
---
 board/rockchip/evb_rv1108/evb_rv1108.c | 47 ++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/board/rockchip/evb_rv1108/evb_rv1108.c b/board/rockchip/evb_rv1108/evb_rv1108.c
index fe37eac..8ca5ee6 100644
--- a/board/rockchip/evb_rv1108/evb_rv1108.c
+++ b/board/rockchip/evb_rv1108/evb_rv1108.c
@@ -50,3 +50,50 @@ int dram_init_banksize(void)
 
 	return 0;
 }
+
+#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG)
+#include <usb.h>
+#include <usb/dwc2_udc.h>
+
+static struct dwc2_plat_otg_data rv1108_otg_data = {
+	.rx_fifo_sz	= 512,
+	.np_tx_fifo_sz	= 16,
+	.tx_fifo_sz	= 128,
+};
+
+int board_usb_init(int index, enum usb_init_type init)
+{
+	int node;
+	const char *mode;
+	bool matched = false;
+	const void *blob = gd->fdt_blob;
+
+	/* find the usb_otg node */
+	node = fdt_node_offset_by_compatible(blob, -1,
+					"rockchip,rv1108-usb");
+
+	while (node > 0) {
+		mode = fdt_getprop(blob, node, "dr_mode", NULL);
+		if (mode && strcmp(mode, "otg") == 0) {
+			matched = true;
+			break;
+		}
+
+		node = fdt_node_offset_by_compatible(blob, node,
+					"rockchip,rv1108-usb");
+	}
+	if (!matched) {
+		debug("Not found usb_otg device\n");
+		return -ENODEV;
+	}
+
+	rv1108_otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
+
+	return dwc2_udc_probe(&rv1108_otg_data);
+}
+
+int board_usb_cleanup(int index, enum usb_init_type init)
+{
+	return 0;
+}
+#endif
-- 
2.0.0

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [U-Boot] [PATCH 1/3] configs: rockchip: add USB configs for evb-rv1108 board
  2017-08-09  3:36 ` [U-Boot] [PATCH 1/3] configs: rockchip: add USB configs for evb-rv1108 board William Wu
@ 2017-08-13 21:35   ` Simon Glass
  2017-08-18 16:08   ` [U-Boot] [U-Boot, " Philipp Tomsich
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 19+ messages in thread
From: Simon Glass @ 2017-08-13 21:35 UTC (permalink / raw)
  To: u-boot

On 8 August 2017 at 21:36, William Wu <william.wu@rock-chips.com> wrote:
> This patch adds USB configs to support the USB OTG port(consist
> of DWC2 controller) and the USB Host port(consist of EHCI and OHCI
> controllers) on evb-rv1108 board, and also support fastboot over
> USB and USB mass storage.
>
> Signed-off-by: William Wu <william.wu@rock-chips.com>
> ---
>  configs/evb-rv1108_defconfig    | 22 ++++++++++++++++++++++
>  include/configs/rv1108_common.h |  3 +++
>  2 files changed, 25 insertions(+)
>

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [U-Boot] [PATCH 2/3] ARM: dts: rockchip: add USB nodes for evb-rv1108
  2017-08-09  3:36 ` [U-Boot] [PATCH 2/3] ARM: dts: rockchip: add USB nodes for evb-rv1108 William Wu
@ 2017-08-13 21:35   ` Simon Glass
  2017-08-18 16:08   ` [U-Boot] [U-Boot, " Philipp Tomsich
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 19+ messages in thread
From: Simon Glass @ 2017-08-13 21:35 UTC (permalink / raw)
  To: u-boot

On 8 August 2017 at 21:36, William Wu <william.wu@rock-chips.com> wrote:
> This patch adds USB OTG/EHCI/OHCI nodes for evb-rv1108 USB ports.
>
> Signed-off-by: William Wu <william.wu@rock-chips.com>
> ---
>  arch/arm/dts/rv1108-evb.dts | 22 ++++++++++++++++++++++
>  arch/arm/dts/rv1108.dtsi    | 24 ++++++++++++++++++++++++
>  2 files changed, 46 insertions(+)

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [U-Boot] [PATCH 3/3] rockchip: evb-rv1108: add usb init function for dwc2 gadget
  2017-08-09  3:36 ` [U-Boot] [PATCH 3/3] rockchip: evb-rv1108: add usb init function for dwc2 gadget William Wu
@ 2017-08-13 21:35   ` Simon Glass
  2017-08-14 10:05     ` wlf
  2017-08-18 16:08   ` [U-Boot] [U-Boot, " Philipp Tomsich
  1 sibling, 1 reply; 19+ messages in thread
From: Simon Glass @ 2017-08-13 21:35 UTC (permalink / raw)
  To: u-boot

On 8 August 2017 at 21:36, William Wu <william.wu@rock-chips.com> wrote:
> This patch implements board_usb_init() for dwc2 gadget, it
> generally called from do_fastboot to do dwc2 udc probe and
> support fastboot over USB.
>
> Signed-off-by: William Wu <william.wu@rock-chips.com>
> ---
>  board/rockchip/evb_rv1108/evb_rv1108.c | 47 ++++++++++++++++++++++++++++++++++
>  1 file changed, 47 insertions(+)
>
> diff --git a/board/rockchip/evb_rv1108/evb_rv1108.c b/board/rockchip/evb_rv1108/evb_rv1108.c
> index fe37eac..8ca5ee6 100644
> --- a/board/rockchip/evb_rv1108/evb_rv1108.c
> +++ b/board/rockchip/evb_rv1108/evb_rv1108.c
> @@ -50,3 +50,50 @@ int dram_init_banksize(void)
>
>         return 0;
>  }
> +
> +#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG)
> +#include <usb.h>
> +#include <usb/dwc2_udc.h>
> +
> +static struct dwc2_plat_otg_data rv1108_otg_data = {
> +       .rx_fifo_sz     = 512,
> +       .np_tx_fifo_sz  = 16,
> +       .tx_fifo_sz     = 128,
> +};
> +
> +int board_usb_init(int index, enum usb_init_type init)
> +{
> +       int node;
> +       const char *mode;
> +       bool matched = false;
> +       const void *blob = gd->fdt_blob;
> +
> +       /* find the usb_otg node */
> +       node = fdt_node_offset_by_compatible(blob, -1,
> +                                       "rockchip,rv1108-usb");
> +
> +       while (node > 0) {
> +               mode = fdt_getprop(blob, node, "dr_mode", NULL);
> +               if (mode && strcmp(mode, "otg") == 0) {
> +                       matched = true;
> +                       break;
> +               }
> +
> +               node = fdt_node_offset_by_compatible(blob, node,
> +                                       "rockchip,rv1108-usb");
> +       }
> +       if (!matched) {
> +               debug("Not found usb_otg device\n");
> +               return -ENODEV;
> +       }
> +
> +       rv1108_otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
> +
> +       return dwc2_udc_probe(&rv1108_otg_data);

These USB init things have been bothering me for a while. Do you think
this could be changed into a driver that you could probe with
device_probe()? Then much of the code in here would not be needed and
it might be easier to tidy it up when we have proper driver-model
support for USB device mode.

> +}
> +
> +int board_usb_cleanup(int index, enum usb_init_type init)
> +{
> +       return 0;
> +}
> +#endif
> --
> 2.0.0

Regards,
Simon

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [U-Boot] [PATCH 3/3] rockchip: evb-rv1108: add usb init function for dwc2 gadget
  2017-08-13 21:35   ` Simon Glass
@ 2017-08-14 10:05     ` wlf
  2017-09-05  4:14       ` wlf
  2017-09-09  4:54       ` Simon Glass
  0 siblings, 2 replies; 19+ messages in thread
From: wlf @ 2017-08-14 10:05 UTC (permalink / raw)
  To: u-boot

Dear Simon,

在 2017年08月14日 05:35, Simon Glass 写道:
> On 8 August 2017 at 21:36, William Wu <william.wu@rock-chips.com> wrote:
>> This patch implements board_usb_init() for dwc2 gadget, it
>> generally called from do_fastboot to do dwc2 udc probe and
>> support fastboot over USB.
>>
>> Signed-off-by: William Wu <william.wu@rock-chips.com>
>> ---
>>   board/rockchip/evb_rv1108/evb_rv1108.c | 47 ++++++++++++++++++++++++++++++++++
>>   1 file changed, 47 insertions(+)
>>
>> diff --git a/board/rockchip/evb_rv1108/evb_rv1108.c b/board/rockchip/evb_rv1108/evb_rv1108.c
>> index fe37eac..8ca5ee6 100644
>> --- a/board/rockchip/evb_rv1108/evb_rv1108.c
>> +++ b/board/rockchip/evb_rv1108/evb_rv1108.c
>> @@ -50,3 +50,50 @@ int dram_init_banksize(void)
>>
>>          return 0;
>>   }
>> +
>> +#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG)
>> +#include <usb.h>
>> +#include <usb/dwc2_udc.h>
>> +
>> +static struct dwc2_plat_otg_data rv1108_otg_data = {
>> +       .rx_fifo_sz     = 512,
>> +       .np_tx_fifo_sz  = 16,
>> +       .tx_fifo_sz     = 128,
>> +};
>> +
>> +int board_usb_init(int index, enum usb_init_type init)
>> +{
>> +       int node;
>> +       const char *mode;
>> +       bool matched = false;
>> +       const void *blob = gd->fdt_blob;
>> +
>> +       /* find the usb_otg node */
>> +       node = fdt_node_offset_by_compatible(blob, -1,
>> +                                       "rockchip,rv1108-usb");
>> +
>> +       while (node > 0) {
>> +               mode = fdt_getprop(blob, node, "dr_mode", NULL);
>> +               if (mode && strcmp(mode, "otg") == 0) {
>> +                       matched = true;
>> +                       break;
>> +               }
>> +
>> +               node = fdt_node_offset_by_compatible(blob, node,
>> +                                       "rockchip,rv1108-usb");
>> +       }
>> +       if (!matched) {
>> +               debug("Not found usb_otg device\n");
>> +               return -ENODEV;
>> +       }
>> +
>> +       rv1108_otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
>> +
>> +       return dwc2_udc_probe(&rv1108_otg_data);
> These USB init things have been bothering me for a while. Do you think
> this could be changed into a driver that you could probe with
> device_probe()? Then much of the code in here would not be needed and
> it might be easier to tidy it up when we have proper driver-model
> support for USB device mode.
Yes,  on rockchip platforms, it did most of the same USB init things in 
different board special drivers.
I think may be we can try to optimize the code in two different ways.

Method1.
1. Move the USB init things from board_usb_init(), just simply call 
dwc2_udc_probe().
2. Create a new USB init  function in drivers/usb/gadget/dwc2_udc_otg.c,
      and call it in dwc2_udc_probe().
3. Use fdt (Flat Device Tree manipulation )  to parse the dts, and get 
the regs_phy, regs_otg and so on.

Method2.
Just like your  suggestion, use driver-model method to probe with 
device_probe,
actually, I don't know much about the driver-model, as far as I know, we 
may need
to do the following work:
1. Create a new uclass id for usb udc, and declare a new uclass_driver 
with UCLASS_DRIVER,
     and also need to create a  new U-boot driver for dwc2 controller 
with U_BOOT_DRIVER.
2. How to call device_probe()? Maybe it's better to create a new driver 
(like drivers/usb/host/usb-uclass.c)
     in drivers/usb/gadget to match different usb gadget controllers, 
and wrap the device_probe()
     to a new function (like udc_pre_probe()), and then different udc 
driver can call it,
     e.g.
     dwc2_udc_probe() --> udc_pre_probe() --> device_probe()

In summary, method1 is easily to be done, but method2 is more generic.

I hope I haven't misunderstood your proposal, and hope to get your reply.
Thank you!
>
>> +}
>> +
>> +int board_usb_cleanup(int index, enum usb_init_type init)
>> +{
>> +       return 0;
>> +}
>> +#endif
>> --
>> 2.0.0
> Regards,
> Simon
>
>
>

-- 
吴良峰 William.Wu
福建省福州市铜盘路软件大道89号软件园A区21号楼
No.21 Building, A District, No.89,software Boulevard Fuzhou,Fujian, PRC
手机: 13685012275
座机: 0591-83991906-8520
邮件:wulf at rock-chips.com

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [U-Boot] [U-Boot, 1/3] configs: rockchip: add USB configs for evb-rv1108 board
  2017-08-09  3:36 ` [U-Boot] [PATCH 1/3] configs: rockchip: add USB configs for evb-rv1108 board William Wu
  2017-08-13 21:35   ` Simon Glass
@ 2017-08-18 16:08   ` Philipp Tomsich
  2017-09-05  9:52   ` Philipp Tomsich
  2017-09-05 12:22   ` Philipp Tomsich
  3 siblings, 0 replies; 19+ messages in thread
From: Philipp Tomsich @ 2017-08-18 16:08 UTC (permalink / raw)
  To: u-boot

> This patch adds USB configs to support the USB OTG port(consist
> of DWC2 controller) and the USB Host port(consist of EHCI and OHCI
> controllers) on evb-rv1108 board, and also support fastboot over
> USB and USB mass storage.
> 
> Signed-off-by: William Wu <william.wu@rock-chips.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> ---
>  configs/evb-rv1108_defconfig    | 22 ++++++++++++++++++++++
>  include/configs/rv1108_common.h |  3 +++
>  2 files changed, 25 insertions(+)
> 

Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [U-Boot] [U-Boot, 2/3] ARM: dts: rockchip: add USB nodes for evb-rv1108
  2017-08-09  3:36 ` [U-Boot] [PATCH 2/3] ARM: dts: rockchip: add USB nodes for evb-rv1108 William Wu
  2017-08-13 21:35   ` Simon Glass
@ 2017-08-18 16:08   ` Philipp Tomsich
  2017-09-05  9:52   ` Philipp Tomsich
  2017-09-05 12:22   ` Philipp Tomsich
  3 siblings, 0 replies; 19+ messages in thread
From: Philipp Tomsich @ 2017-08-18 16:08 UTC (permalink / raw)
  To: u-boot

> This patch adds USB OTG/EHCI/OHCI nodes for evb-rv1108 USB ports.
> 
> Signed-off-by: William Wu <william.wu@rock-chips.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> ---
>  arch/arm/dts/rv1108-evb.dts | 22 ++++++++++++++++++++++
>  arch/arm/dts/rv1108.dtsi    | 24 ++++++++++++++++++++++++
>  2 files changed, 46 insertions(+)
> 

Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [U-Boot] [U-Boot, 3/3] rockchip: evb-rv1108: add usb init function for dwc2 gadget
  2017-08-09  3:36 ` [U-Boot] [PATCH 3/3] rockchip: evb-rv1108: add usb init function for dwc2 gadget William Wu
  2017-08-13 21:35   ` Simon Glass
@ 2017-08-18 16:08   ` Philipp Tomsich
  1 sibling, 0 replies; 19+ messages in thread
From: Philipp Tomsich @ 2017-08-18 16:08 UTC (permalink / raw)
  To: u-boot

> This patch implements board_usb_init() for dwc2 gadget, it
> generally called from do_fastboot to do dwc2 udc probe and
> support fastboot over USB.
> 
> Signed-off-by: William Wu <william.wu@rock-chips.com>
> ---
>  board/rockchip/evb_rv1108/evb_rv1108.c | 47 ++++++++++++++++++++++++++++++++++
>  1 file changed, 47 insertions(+)
> 

Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [U-Boot] [PATCH 3/3] rockchip: evb-rv1108: add usb init function for dwc2 gadget
  2017-08-14 10:05     ` wlf
@ 2017-09-05  4:14       ` wlf
  2017-09-09  4:54       ` Simon Glass
  1 sibling, 0 replies; 19+ messages in thread
From: wlf @ 2017-09-05  4:14 UTC (permalink / raw)
  To: u-boot

Dear Simon,

在 2017年08月14日 18:05, wlf 写道:
> Dear Simon,
>
> 在 2017年08月14日 05:35, Simon Glass 写道:
>> On 8 August 2017 at 21:36, William Wu <william.wu@rock-chips.com> wrote:
>>> This patch implements board_usb_init() for dwc2 gadget, it
>>> generally called from do_fastboot to do dwc2 udc probe and
>>> support fastboot over USB.
>>>
>>> Signed-off-by: William Wu <william.wu@rock-chips.com>
>>> ---
>>>   board/rockchip/evb_rv1108/evb_rv1108.c | 47 
>>> ++++++++++++++++++++++++++++++++++
>>>   1 file changed, 47 insertions(+)
>>>
>>> diff --git a/board/rockchip/evb_rv1108/evb_rv1108.c 
>>> b/board/rockchip/evb_rv1108/evb_rv1108.c
>>> index fe37eac..8ca5ee6 100644
>>> --- a/board/rockchip/evb_rv1108/evb_rv1108.c
>>> +++ b/board/rockchip/evb_rv1108/evb_rv1108.c
>>> @@ -50,3 +50,50 @@ int dram_init_banksize(void)
>>>
>>>          return 0;
>>>   }
>>> +
>>> +#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG)
>>> +#include <usb.h>
>>> +#include <usb/dwc2_udc.h>
>>> +
>>> +static struct dwc2_plat_otg_data rv1108_otg_data = {
>>> +       .rx_fifo_sz     = 512,
>>> +       .np_tx_fifo_sz  = 16,
>>> +       .tx_fifo_sz     = 128,
>>> +};
>>> +
>>> +int board_usb_init(int index, enum usb_init_type init)
>>> +{
>>> +       int node;
>>> +       const char *mode;
>>> +       bool matched = false;
>>> +       const void *blob = gd->fdt_blob;
>>> +
>>> +       /* find the usb_otg node */
>>> +       node = fdt_node_offset_by_compatible(blob, -1,
>>> + "rockchip,rv1108-usb");
>>> +
>>> +       while (node > 0) {
>>> +               mode = fdt_getprop(blob, node, "dr_mode", NULL);
>>> +               if (mode && strcmp(mode, "otg") == 0) {
>>> +                       matched = true;
>>> +                       break;
>>> +               }
>>> +
>>> +               node = fdt_node_offset_by_compatible(blob, node,
>>> + "rockchip,rv1108-usb");
>>> +       }
>>> +       if (!matched) {
>>> +               debug("Not found usb_otg device\n");
>>> +               return -ENODEV;
>>> +       }
>>> +
>>> +       rv1108_otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
>>> +
>>> +       return dwc2_udc_probe(&rv1108_otg_data);
>> These USB init things have been bothering me for a while. Do you think
>> this could be changed into a driver that you could probe with
>> device_probe()? Then much of the code in here would not be needed and
>> it might be easier to tidy it up when we have proper driver-model
>> support for USB device mode.
> Yes,  on rockchip platforms, it did most of the same USB init things 
> in different board special drivers.
> I think may be we can try to optimize the code in two different ways.
>
> Method1.
> 1. Move the USB init things from board_usb_init(), just simply call 
> dwc2_udc_probe().
> 2. Create a new USB init  function in drivers/usb/gadget/dwc2_udc_otg.c,
>      and call it in dwc2_udc_probe().
> 3. Use fdt (Flat Device Tree manipulation )  to parse the dts, and get 
> the regs_phy, regs_otg and so on.
>
> Method2.
> Just like your  suggestion, use driver-model method to probe with 
> device_probe,
> actually, I don't know much about the driver-model, as far as I know, 
> we may need
> to do the following work:
> 1. Create a new uclass id for usb udc, and declare a new uclass_driver 
> with UCLASS_DRIVER,
>     and also need to create a  new U-boot driver for dwc2 controller 
> with U_BOOT_DRIVER.
> 2. How to call device_probe()? Maybe it's better to create a new 
> driver (like drivers/usb/host/usb-uclass.c)
>     in drivers/usb/gadget to match different usb gadget controllers, 
> and wrap the device_probe()
>     to a new function (like udc_pre_probe()), and then different udc 
> driver can call it,
>     e.g.
>     dwc2_udc_probe() --> udc_pre_probe() --> device_probe()
>
> In summary, method1 is easily to be done, but method2 is more generic.
>
> I hope I haven't misunderstood your proposal, and hope to get your reply.
> Thank you!
Do you have any idea about this USB init patch?

Thank you!
>>
>>> +}
>>> +
>>> +int board_usb_cleanup(int index, enum usb_init_type init)
>>> +{
>>> +       return 0;
>>> +}
>>> +#endif
>>> -- 
>>> 2.0.0
>> Regards,
>> Simon
>>
>>
>>
>

-- 
吴良峰 William.Wu
福建省福州市铜盘路软件大道89号软件园A区21号楼
No.21 Building, A District, No.89,software Boulevard Fuzhou,Fujian, PRC
手机: 13685012275
座机: 0591-83991906-8520
邮件:wulf at rock-chips.com

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [U-Boot] [U-Boot, 1/3] configs: rockchip: add USB configs for evb-rv1108 board
  2017-08-09  3:36 ` [U-Boot] [PATCH 1/3] configs: rockchip: add USB configs for evb-rv1108 board William Wu
  2017-08-13 21:35   ` Simon Glass
  2017-08-18 16:08   ` [U-Boot] [U-Boot, " Philipp Tomsich
@ 2017-09-05  9:52   ` Philipp Tomsich
  2017-09-05 12:22   ` Philipp Tomsich
  3 siblings, 0 replies; 19+ messages in thread
From: Philipp Tomsich @ 2017-09-05  9:52 UTC (permalink / raw)
  To: u-boot

> This patch adds USB configs to support the USB OTG port(consist
> of DWC2 controller) and the USB Host port(consist of EHCI and OHCI
> controllers) on evb-rv1108 board, and also support fastboot over
> USB and USB mass storage.
> 
> Signed-off-by: William Wu <william.wu@rock-chips.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> ---
>  configs/evb-rv1108_defconfig    | 22 ++++++++++++++++++++++
>  include/configs/rv1108_common.h |  3 +++
>  2 files changed, 25 insertions(+)
> 

Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [U-Boot] [U-Boot, 2/3] ARM: dts: rockchip: add USB nodes for evb-rv1108
  2017-08-09  3:36 ` [U-Boot] [PATCH 2/3] ARM: dts: rockchip: add USB nodes for evb-rv1108 William Wu
  2017-08-13 21:35   ` Simon Glass
  2017-08-18 16:08   ` [U-Boot] [U-Boot, " Philipp Tomsich
@ 2017-09-05  9:52   ` Philipp Tomsich
  2017-09-05 12:22   ` Philipp Tomsich
  3 siblings, 0 replies; 19+ messages in thread
From: Philipp Tomsich @ 2017-09-05  9:52 UTC (permalink / raw)
  To: u-boot

> This patch adds USB OTG/EHCI/OHCI nodes for evb-rv1108 USB ports.
> 
> Signed-off-by: William Wu <william.wu@rock-chips.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> ---
>  arch/arm/dts/rv1108-evb.dts | 22 ++++++++++++++++++++++
>  arch/arm/dts/rv1108.dtsi    | 24 ++++++++++++++++++++++++
>  2 files changed, 46 insertions(+)
> 

Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [U-Boot] [U-Boot, 1/3] configs: rockchip: add USB configs for evb-rv1108 board
  2017-08-09  3:36 ` [U-Boot] [PATCH 1/3] configs: rockchip: add USB configs for evb-rv1108 board William Wu
                     ` (2 preceding siblings ...)
  2017-09-05  9:52   ` Philipp Tomsich
@ 2017-09-05 12:22   ` Philipp Tomsich
  3 siblings, 0 replies; 19+ messages in thread
From: Philipp Tomsich @ 2017-09-05 12:22 UTC (permalink / raw)
  To: u-boot

> This patch adds USB configs to support the USB OTG port(consist
> of DWC2 controller) and the USB Host port(consist of EHCI and OHCI
> controllers) on evb-rv1108 board, and also support fastboot over
> USB and USB mass storage.
> 
> Signed-off-by: William Wu <william.wu@rock-chips.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> ---
>  configs/evb-rv1108_defconfig    | 22 ++++++++++++++++++++++
>  include/configs/rv1108_common.h |  3 +++
>  2 files changed, 25 insertions(+)
> 

Applied to u-boot-rockchip/next, thanks!

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [U-Boot] [U-Boot, 2/3] ARM: dts: rockchip: add USB nodes for evb-rv1108
  2017-08-09  3:36 ` [U-Boot] [PATCH 2/3] ARM: dts: rockchip: add USB nodes for evb-rv1108 William Wu
                     ` (2 preceding siblings ...)
  2017-09-05  9:52   ` Philipp Tomsich
@ 2017-09-05 12:22   ` Philipp Tomsich
  3 siblings, 0 replies; 19+ messages in thread
From: Philipp Tomsich @ 2017-09-05 12:22 UTC (permalink / raw)
  To: u-boot

> This patch adds USB OTG/EHCI/OHCI nodes for evb-rv1108 USB ports.
> 
> Signed-off-by: William Wu <william.wu@rock-chips.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> ---
>  arch/arm/dts/rv1108-evb.dts | 22 ++++++++++++++++++++++
>  arch/arm/dts/rv1108.dtsi    | 24 ++++++++++++++++++++++++
>  2 files changed, 46 insertions(+)
> 

Applied to u-boot-rockchip/next, thanks!

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [U-Boot] [PATCH 3/3] rockchip: evb-rv1108: add usb init function for dwc2 gadget
  2017-08-14 10:05     ` wlf
  2017-09-05  4:14       ` wlf
@ 2017-09-09  4:54       ` Simon Glass
  2017-09-11  3:51         ` wlf
  1 sibling, 1 reply; 19+ messages in thread
From: Simon Glass @ 2017-09-09  4:54 UTC (permalink / raw)
  To: u-boot

Hi,

On 14 August 2017 at 04:05, wlf <wulf@rock-chips.com> wrote:
> Dear Simon,
>
>
> 在 2017年08月14日 05:35, Simon Glass 写道:
>>
>> On 8 August 2017 at 21:36, William Wu <william.wu@rock-chips.com> wrote:
>>>
>>> This patch implements board_usb_init() for dwc2 gadget, it
>>> generally called from do_fastboot to do dwc2 udc probe and
>>> support fastboot over USB.
>>>
>>> Signed-off-by: William Wu <william.wu@rock-chips.com>
>>> ---
>>>   board/rockchip/evb_rv1108/evb_rv1108.c | 47
>>> ++++++++++++++++++++++++++++++++++
>>>   1 file changed, 47 insertions(+)
>>>
>>> diff --git a/board/rockchip/evb_rv1108/evb_rv1108.c
>>> b/board/rockchip/evb_rv1108/evb_rv1108.c
>>> index fe37eac..8ca5ee6 100644
>>> --- a/board/rockchip/evb_rv1108/evb_rv1108.c
>>> +++ b/board/rockchip/evb_rv1108/evb_rv1108.c
>>> @@ -50,3 +50,50 @@ int dram_init_banksize(void)
>>>
>>>          return 0;
>>>   }
>>> +
>>> +#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG)
>>> +#include <usb.h>
>>> +#include <usb/dwc2_udc.h>
>>> +
>>> +static struct dwc2_plat_otg_data rv1108_otg_data = {
>>> +       .rx_fifo_sz     = 512,
>>> +       .np_tx_fifo_sz  = 16,
>>> +       .tx_fifo_sz     = 128,
>>> +};
>>> +
>>> +int board_usb_init(int index, enum usb_init_type init)
>>> +{
>>> +       int node;
>>> +       const char *mode;
>>> +       bool matched = false;
>>> +       const void *blob = gd->fdt_blob;
>>> +
>>> +       /* find the usb_otg node */
>>> +       node = fdt_node_offset_by_compatible(blob, -1,
>>> +                                       "rockchip,rv1108-usb");
>>> +
>>> +       while (node > 0) {
>>> +               mode = fdt_getprop(blob, node, "dr_mode", NULL);
>>> +               if (mode && strcmp(mode, "otg") == 0) {
>>> +                       matched = true;
>>> +                       break;
>>> +               }
>>> +
>>> +               node = fdt_node_offset_by_compatible(blob, node,
>>> +                                       "rockchip,rv1108-usb");
>>> +       }
>>> +       if (!matched) {
>>> +               debug("Not found usb_otg device\n");
>>> +               return -ENODEV;
>>> +       }
>>> +
>>> +       rv1108_otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
>>> +
>>> +       return dwc2_udc_probe(&rv1108_otg_data);
>>
>> These USB init things have been bothering me for a while. Do you think
>> this could be changed into a driver that you could probe with
>> device_probe()? Then much of the code in here would not be needed and
>> it might be easier to tidy it up when we have proper driver-model
>> support for USB device mode.
>
> Yes,  on rockchip platforms, it did most of the same USB init things in
> different board special drivers.
> I think may be we can try to optimize the code in two different ways.
>
> Method1.
> 1. Move the USB init things from board_usb_init(), just simply call
> dwc2_udc_probe().
> 2. Create a new USB init  function in drivers/usb/gadget/dwc2_udc_otg.c,
>      and call it in dwc2_udc_probe().
> 3. Use fdt (Flat Device Tree manipulation )  to parse the dts, and get the
> regs_phy, regs_otg and so on.
>
> Method2.
> Just like your  suggestion, use driver-model method to probe with
> device_probe,
> actually, I don't know much about the driver-model, as far as I know, we may
> need
> to do the following work:
> 1. Create a new uclass id for usb udc, and declare a new uclass_driver with
> UCLASS_DRIVER,
>     and also need to create a  new U-boot driver for dwc2 controller with
> U_BOOT_DRIVER.
> 2. How to call device_probe()? Maybe it's better to create a new driver
> (like drivers/usb/host/usb-uclass.c)
>     in drivers/usb/gadget to match different usb gadget controllers, and
> wrap the device_probe()
>     to a new function (like udc_pre_probe()), and then different udc driver
> can call it,
>     e.g.
>     dwc2_udc_probe() --> udc_pre_probe() --> device_probe()
>
> In summary, method1 is easily to be done, but method2 is more generic.
>
> I hope I haven't misunderstood your proposal, and hope to get your reply.
> Thank you!

Yes I think method 2 is better.

You will have to call device_probe() as you say. I think what you
suggest is reasonable, since something has to decide that the USB
device mode should be started.

Regards,
Simon

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [U-Boot] [PATCH 3/3] rockchip: evb-rv1108: add usb init function for dwc2 gadget
  2017-09-09  4:54       ` Simon Glass
@ 2017-09-11  3:51         ` wlf
  0 siblings, 0 replies; 19+ messages in thread
From: wlf @ 2017-09-11  3:51 UTC (permalink / raw)
  To: u-boot

Dear Simon,

在 2017年09月09日 12:54, Simon Glass 写道:
> Hi,
>
> On 14 August 2017 at 04:05, wlf <wulf@rock-chips.com> wrote:
>> Dear Simon,
>>
>>
>> 在 2017年08月14日 05:35, Simon Glass 写道:
>>> On 8 August 2017 at 21:36, William Wu <william.wu@rock-chips.com> wrote:
>>>> This patch implements board_usb_init() for dwc2 gadget, it
>>>> generally called from do_fastboot to do dwc2 udc probe and
>>>> support fastboot over USB.
>>>>
>>>> Signed-off-by: William Wu <william.wu@rock-chips.com>
>>>> ---
>>>>    board/rockchip/evb_rv1108/evb_rv1108.c | 47
>>>> ++++++++++++++++++++++++++++++++++
>>>>    1 file changed, 47 insertions(+)
>>>>
>>>> diff --git a/board/rockchip/evb_rv1108/evb_rv1108.c
>>>> b/board/rockchip/evb_rv1108/evb_rv1108.c
>>>> index fe37eac..8ca5ee6 100644
>>>> --- a/board/rockchip/evb_rv1108/evb_rv1108.c
>>>> +++ b/board/rockchip/evb_rv1108/evb_rv1108.c
>>>> @@ -50,3 +50,50 @@ int dram_init_banksize(void)
>>>>
>>>>           return 0;
>>>>    }
>>>> +
>>>> +#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG)
>>>> +#include <usb.h>
>>>> +#include <usb/dwc2_udc.h>
>>>> +
>>>> +static struct dwc2_plat_otg_data rv1108_otg_data = {
>>>> +       .rx_fifo_sz     = 512,
>>>> +       .np_tx_fifo_sz  = 16,
>>>> +       .tx_fifo_sz     = 128,
>>>> +};
>>>> +
>>>> +int board_usb_init(int index, enum usb_init_type init)
>>>> +{
>>>> +       int node;
>>>> +       const char *mode;
>>>> +       bool matched = false;
>>>> +       const void *blob = gd->fdt_blob;
>>>> +
>>>> +       /* find the usb_otg node */
>>>> +       node = fdt_node_offset_by_compatible(blob, -1,
>>>> +                                       "rockchip,rv1108-usb");
>>>> +
>>>> +       while (node > 0) {
>>>> +               mode = fdt_getprop(blob, node, "dr_mode", NULL);
>>>> +               if (mode && strcmp(mode, "otg") == 0) {
>>>> +                       matched = true;
>>>> +                       break;
>>>> +               }
>>>> +
>>>> +               node = fdt_node_offset_by_compatible(blob, node,
>>>> +                                       "rockchip,rv1108-usb");
>>>> +       }
>>>> +       if (!matched) {
>>>> +               debug("Not found usb_otg device\n");
>>>> +               return -ENODEV;
>>>> +       }
>>>> +
>>>> +       rv1108_otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg");
>>>> +
>>>> +       return dwc2_udc_probe(&rv1108_otg_data);
>>> These USB init things have been bothering me for a while. Do you think
>>> this could be changed into a driver that you could probe with
>>> device_probe()? Then much of the code in here would not be needed and
>>> it might be easier to tidy it up when we have proper driver-model
>>> support for USB device mode.
>> Yes,  on rockchip platforms, it did most of the same USB init things in
>> different board special drivers.
>> I think may be we can try to optimize the code in two different ways.
>>
>> Method1.
>> 1. Move the USB init things from board_usb_init(), just simply call
>> dwc2_udc_probe().
>> 2. Create a new USB init  function in drivers/usb/gadget/dwc2_udc_otg.c,
>>       and call it in dwc2_udc_probe().
>> 3. Use fdt (Flat Device Tree manipulation )  to parse the dts, and get the
>> regs_phy, regs_otg and so on.
>>
>> Method2.
>> Just like your  suggestion, use driver-model method to probe with
>> device_probe,
>> actually, I don't know much about the driver-model, as far as I know, we may
>> need
>> to do the following work:
>> 1. Create a new uclass id for usb udc, and declare a new uclass_driver with
>> UCLASS_DRIVER,
>>      and also need to create a  new U-boot driver for dwc2 controller with
>> U_BOOT_DRIVER.
>> 2. How to call device_probe()? Maybe it's better to create a new driver
>> (like drivers/usb/host/usb-uclass.c)
>>      in drivers/usb/gadget to match different usb gadget controllers, and
>> wrap the device_probe()
>>      to a new function (like udc_pre_probe()), and then different udc driver
>> can call it,
>>      e.g.
>>      dwc2_udc_probe() --> udc_pre_probe() --> device_probe()
>>
>> In summary, method1 is easily to be done, but method2 is more generic.
>>
>> I hope I haven't misunderstood your proposal, and hope to get your reply.
>> Thank you!
> Yes I think method 2 is better.
>
> You will have to call device_probe() as you say. I think what you
> suggest is reasonable, since something has to decide that the USB
> device mode should be started.
Thanks for your reply.  I will try to update a new patch according to 
method 2.

>
> Regards,
> Simon
>
>
>

-- 
吴良峰 William.Wu
福建省福州市铜盘路软件大道89号软件园A区21号楼
No.21 Building, A District, No.89,software Boulevard Fuzhou,Fujian, PRC
手机: 13685012275
座机: 0591-83991906-8520
邮件:wulf at rock-chips.com

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [U-Boot] [U-Boot, 2/3] ARM: dts: rockchip: add USB nodes for evb-rv1108
  2017-08-09  3:12 [U-Boot] [PATCH 2/3] ARM: dts: rockchip: add USB nodes for evb-rv1108 William Wu
@ 2017-08-18 16:08 ` Philipp Tomsich
  0 siblings, 0 replies; 19+ messages in thread
From: Philipp Tomsich @ 2017-08-18 16:08 UTC (permalink / raw)
  To: u-boot

> This patch adds USB OTG/EHCI/OHCI nodes for evb-rv1108 USB ports.
> 
> Signed-off-by: William Wu <william.wu@rock-chips.com>
> ---
>  arch/arm/dts/rv1108-evb.dts | 22 ++++++++++++++++++++++
>  arch/arm/dts/rv1108.dtsi    | 24 ++++++++++++++++++++++++
>  2 files changed, 46 insertions(+)
> 

Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2017-09-11  3:51 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-09  3:36 [U-Boot] [PATCH 0/3] rockchip: rv1108: support USB OTG and Host ports on evb-rv1108 William Wu
2017-08-09  3:36 ` [U-Boot] [PATCH 1/3] configs: rockchip: add USB configs for evb-rv1108 board William Wu
2017-08-13 21:35   ` Simon Glass
2017-08-18 16:08   ` [U-Boot] [U-Boot, " Philipp Tomsich
2017-09-05  9:52   ` Philipp Tomsich
2017-09-05 12:22   ` Philipp Tomsich
2017-08-09  3:36 ` [U-Boot] [PATCH 2/3] ARM: dts: rockchip: add USB nodes for evb-rv1108 William Wu
2017-08-13 21:35   ` Simon Glass
2017-08-18 16:08   ` [U-Boot] [U-Boot, " Philipp Tomsich
2017-09-05  9:52   ` Philipp Tomsich
2017-09-05 12:22   ` Philipp Tomsich
2017-08-09  3:36 ` [U-Boot] [PATCH 3/3] rockchip: evb-rv1108: add usb init function for dwc2 gadget William Wu
2017-08-13 21:35   ` Simon Glass
2017-08-14 10:05     ` wlf
2017-09-05  4:14       ` wlf
2017-09-09  4:54       ` Simon Glass
2017-09-11  3:51         ` wlf
2017-08-18 16:08   ` [U-Boot] [U-Boot, " Philipp Tomsich
  -- strict thread matches above, loose matches on Subject: below --
2017-08-09  3:12 [U-Boot] [PATCH 2/3] ARM: dts: rockchip: add USB nodes for evb-rv1108 William Wu
2017-08-18 16:08 ` [U-Boot] [U-Boot, " Philipp Tomsich

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.