All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/5] cmd: bind: Fix driver binding
@ 2021-04-19  9:45 Patrice Chotard
  2021-04-19  9:45 ` [PATCH v2 1/5] cmd: bind: Fix driver binding on a device Patrice Chotard
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Patrice Chotard @ 2021-04-19  9:45 UTC (permalink / raw)
  To: u-boot


This series is fixing issues reported by Herbert Poetzl when trying to
bind Ethernet gadget over USB on STM32MP1 platform.
2 issues have been found:
   - fix the bind command.
   - add dwc2 bcdDevice in USB gadget controller.
   - add test to check binding of driver without compatible string.

Changes in v2:
  - add bind test

Patrice Chotard (5):
  cmd: bind: Fix driver binding on a device
  usb: gadget: Add bcdDevice for the DWC2 USB Gadget Controller
  usb: sandbox: Add gadget callbacks
  configs: sandbox: add USB_ETHER and GADGET_DOWNLOAD gadget support
  test/py: Add usb gadget binding test

 cmd/bind.c                        |  2 +-
 configs/sandbox_defconfig         |  3 +++
 drivers/core/device.c             |  2 +-
 drivers/core/lists.c              | 11 ++++++++---
 drivers/core/root.c               |  2 +-
 drivers/misc/imx8/scu.c           |  2 +-
 drivers/serial/serial-uclass.c    |  2 +-
 drivers/timer/timer-uclass.c      |  2 +-
 drivers/usb/gadget/gadget_chips.h |  8 ++++++++
 drivers/usb/host/usb-sandbox.c    | 28 ++++++++++++++++++++++++++++
 include/dm/lists.h                |  3 ++-
 test/dm/nop.c                     |  2 +-
 test/dm/test-fdt.c                |  2 +-
 test/py/tests/test_bind.py        |  7 +++++++
 14 files changed, 64 insertions(+), 12 deletions(-)

-- 
2.17.1

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

* [PATCH v2 1/5] cmd: bind: Fix driver binding on a device
  2021-04-19  9:45 [PATCH v2 0/5] cmd: bind: Fix driver binding Patrice Chotard
@ 2021-04-19  9:45 ` Patrice Chotard
  2021-04-19  9:45 ` [PATCH v2 2/5] usb: gadget: Add bcdDevice for the DWC2 USB Gadget Controller Patrice Chotard
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 13+ messages in thread
From: Patrice Chotard @ 2021-04-19  9:45 UTC (permalink / raw)
  To: u-boot

Fix a regression brings by commit 84f8e36f03fa ("cmd: bind: allow to
bind driver with driver data")

As example, the following bind command doesn't work:

   bind /soc/usb-otg at 49000000 usb_ether

As usb_ether driver has no compatible string, it can't be find by
lists_bind_fdt(). In bind_by_node_path(), which called lists_bind_fdt(),
the driver entry is known, pass it to lists_bind_fdt() to force the driver
entry selection.

For this, add a new parameter struct *driver to lists_bind_fdt().
Fix also all lists_bind_fdt() callers.

Fixes: 84f8e36f03fa ("cmd: bind: allow to bind driver with driver data")
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reported-by: Herbert Poetzl <herbert@13thfloor.at>
Cc: Marek Vasut <marex@denx.de>
Cc: Herbert Poetzl <herbert@13thfloor.at>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---

(no changes since v1)

 cmd/bind.c                     |  2 +-
 drivers/core/device.c          |  2 +-
 drivers/core/lists.c           | 11 ++++++++---
 drivers/core/root.c            |  2 +-
 drivers/misc/imx8/scu.c        |  2 +-
 drivers/serial/serial-uclass.c |  2 +-
 drivers/timer/timer-uclass.c   |  2 +-
 include/dm/lists.h             |  3 ++-
 test/dm/nop.c                  |  2 +-
 test/dm/test-fdt.c             |  2 +-
 10 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/cmd/bind.c b/cmd/bind.c
index af2f22cc4c..d8f610943c 100644
--- a/cmd/bind.c
+++ b/cmd/bind.c
@@ -152,7 +152,7 @@ static int bind_by_node_path(const char *path, const char *drv_name)
 	}
 
 	ofnode = ofnode_path(path);
-	ret = lists_bind_fdt(parent, ofnode, &dev, false);
+	ret = lists_bind_fdt(parent, ofnode, &dev, drv, false);
 
 	if (!dev || ret) {
 		printf("Unable to bind. err:%d\n", ret);
diff --git a/drivers/core/device.c b/drivers/core/device.c
index 81f6880eac..3abd89aca6 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -1133,6 +1133,6 @@ int dev_enable_by_path(const char *path)
 	if (ret)
 		return ret;
 
-	return lists_bind_fdt(parent, node, NULL, false);
+	return lists_bind_fdt(parent, node, NULL, NULL, false);
 }
 #endif
diff --git a/drivers/core/lists.c b/drivers/core/lists.c
index e214306b90..2eb808ce2d 100644
--- a/drivers/core/lists.c
+++ b/drivers/core/lists.c
@@ -182,7 +182,7 @@ static int driver_check_compatible(const struct udevice_id *of_match,
 }
 
 int lists_bind_fdt(struct udevice *parent, ofnode node, struct udevice **devp,
-		   bool pre_reloc_only)
+		   struct driver *drv, bool pre_reloc_only)
 {
 	struct driver *driver = ll_entry_start(struct driver, driver);
 	const int n_ents = ll_entry_count(struct driver, driver);
@@ -225,8 +225,13 @@ int lists_bind_fdt(struct udevice *parent, ofnode node, struct udevice **devp,
 		for (entry = driver; entry != driver + n_ents; entry++) {
 			ret = driver_check_compatible(entry->of_match, &id,
 						      compat);
-			if (!ret)
-				break;
+			if (drv) {
+				if (drv == entry)
+					break;
+			} else {
+				if (!ret)
+					break;
+			}
 		}
 		if (entry == driver + n_ents)
 			continue;
diff --git a/drivers/core/root.c b/drivers/core/root.c
index 9bc682cffe..3c6fa3838d 100644
--- a/drivers/core/root.c
+++ b/drivers/core/root.c
@@ -236,7 +236,7 @@ static int dm_scan_fdt_node(struct udevice *parent, ofnode parent_node,
 			pr_debug("   - ignoring disabled device\n");
 			continue;
 		}
-		err = lists_bind_fdt(parent, node, NULL, pre_reloc_only);
+		err = lists_bind_fdt(parent, node, NULL, NULL, pre_reloc_only);
 		if (err && !ret) {
 			ret = err;
 			debug("%s: ret=%d\n", node_name, ret);
diff --git a/drivers/misc/imx8/scu.c b/drivers/misc/imx8/scu.c
index 035a600f71..4ab5cb4bf1 100644
--- a/drivers/misc/imx8/scu.c
+++ b/drivers/misc/imx8/scu.c
@@ -219,7 +219,7 @@ static int imx8_scu_bind(struct udevice *dev)
 
 	debug("%s(dev=%p)\n", __func__, dev);
 	ofnode_for_each_subnode(node, dev_ofnode(dev)) {
-		ret = lists_bind_fdt(dev, node, &child, true);
+		ret = lists_bind_fdt(dev, node, &child, NULL, true);
 		if (ret)
 			return ret;
 		debug("bind child dev %s\n", child->name);
diff --git a/drivers/serial/serial-uclass.c b/drivers/serial/serial-uclass.c
index 8a87eed683..6d1c671efc 100644
--- a/drivers/serial/serial-uclass.c
+++ b/drivers/serial/serial-uclass.c
@@ -67,7 +67,7 @@ static int serial_check_stdout(const void *blob, struct udevice **devp)
 	 * anyway.
 	 */
 	if (node > 0 && !lists_bind_fdt(gd->dm_root, offset_to_ofnode(node),
-					devp, false)) {
+					devp, NULL, false)) {
 		if (!device_probe(*devp))
 			return 0;
 	}
diff --git a/drivers/timer/timer-uclass.c b/drivers/timer/timer-uclass.c
index 6f00a5d0db..b1ac604b5b 100644
--- a/drivers/timer/timer-uclass.c
+++ b/drivers/timer/timer-uclass.c
@@ -148,7 +148,7 @@ int notrace dm_timer_init(void)
 		 * If the timer is not marked to be bound before
 		 * relocation, bind it anyway.
 		 */
-		if (!lists_bind_fdt(dm_root(), node, &dev, false)) {
+		if (!lists_bind_fdt(dm_root(), node, &dev, NULL, false)) {
 			ret = device_probe(dev);
 			if (ret)
 				return ret;
diff --git a/include/dm/lists.h b/include/dm/lists.h
index 1a86552546..5896ae3658 100644
--- a/include/dm/lists.h
+++ b/include/dm/lists.h
@@ -53,13 +53,14 @@ int lists_bind_drivers(struct udevice *parent, bool pre_reloc_only);
  * @parent: parent device (root)
  * @node: device tree node to bind
  * @devp: if non-NULL, returns a pointer to the bound device
+ * @drv: if non-NULL, force this driver to be bound
  * @pre_reloc_only: If true, bind only nodes with special devicetree properties,
  * or drivers with the DM_FLAG_PRE_RELOC flag. If false bind all drivers.
  * @return 0 if device was bound, -EINVAL if the device tree is invalid,
  * other -ve value on error
  */
 int lists_bind_fdt(struct udevice *parent, ofnode node, struct udevice **devp,
-		   bool pre_reloc_only);
+		   struct driver *drv, bool pre_reloc_only);
 
 /**
  * device_bind_driver() - bind a device to a driver
diff --git a/test/dm/nop.c b/test/dm/nop.c
index 2cd92c5240..75b9e7b6cc 100644
--- a/test/dm/nop.c
+++ b/test/dm/nop.c
@@ -25,7 +25,7 @@ static int noptest_bind(struct udevice *parent)
 		const char *bind_flag = ofnode_read_string(ofnode, "bind");
 
 		if (bind_flag && (strcmp(bind_flag, "True") == 0))
-			lists_bind_fdt(parent, ofnode, &dev, false);
+			lists_bind_fdt(parent, ofnode, &dev, NULL, false);
 		ofnode = dev_read_next_subnode(ofnode);
 	}
 
diff --git a/test/dm/test-fdt.c b/test/dm/test-fdt.c
index 6e83aeecd9..c6968b0d5f 100644
--- a/test/dm/test-fdt.c
+++ b/test/dm/test-fdt.c
@@ -592,7 +592,7 @@ static int zero_size_cells_bus_child_bind(struct udevice *dev)
 	int err;
 
 	ofnode_for_each_subnode(child, dev_ofnode(dev)) {
-		err = lists_bind_fdt(dev, child, NULL, false);
+		err = lists_bind_fdt(dev, child, NULL, NULL, false);
 		if (err) {
 			dev_err(dev, "%s: lists_bind_fdt, err=%d\n",
 				__func__, err);
-- 
2.17.1

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

* [PATCH v2 2/5] usb: gadget: Add bcdDevice for the DWC2 USB Gadget Controller
  2021-04-19  9:45 [PATCH v2 0/5] cmd: bind: Fix driver binding Patrice Chotard
  2021-04-19  9:45 ` [PATCH v2 1/5] cmd: bind: Fix driver binding on a device Patrice Chotard
@ 2021-04-19  9:45 ` Patrice Chotard
  2021-06-18  6:55   ` Patrice CHOTARD
  2021-09-01  9:12   ` Patrice CHOTARD
  2021-04-19  9:45 ` [PATCH v2 3/5] usb: sandbox: Add gadget callbacks Patrice Chotard
                   ` (2 subsequent siblings)
  4 siblings, 2 replies; 13+ messages in thread
From: Patrice Chotard @ 2021-04-19  9:45 UTC (permalink / raw)
  To: u-boot

Add an entry in usb_gadget_controller_number() for the DWC2
gadget controller. It is used to bind the USB Ethernet driver.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reported-by: Herbert Poetzl <herbert@13thfloor.at>
Cc: Marek Vasut <marex@denx.de>
Cc: Herbert Poetzl <herbert@13thfloor.at>
---

(no changes since v1)

 drivers/usb/gadget/gadget_chips.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/usb/gadget/gadget_chips.h b/drivers/usb/gadget/gadget_chips.h
index 0cdf47c2dd..06e6a48949 100644
--- a/drivers/usb/gadget/gadget_chips.h
+++ b/drivers/usb/gadget/gadget_chips.h
@@ -167,6 +167,12 @@
 #define gadget_is_mtu3(g)        0
 #endif
 
+#ifdef CONFIG_USB_GADGET_DWC2_OTG
+#define gadget_is_dwc2(g)        (!strcmp("dwc2-udc", (g)->name))
+#else
+#define gadget_is_dwc2(g)        0
+#endif
+
 /**
  * usb_gadget_controller_number - support bcdDevice id convention
  * @gadget: the controller being driven
@@ -232,5 +238,7 @@ static inline int usb_gadget_controller_number(struct usb_gadget *gadget)
 		return 0x25;
 	else if (gadget_is_mtu3(gadget))
 		return 0x26;
+	else if (gadget_is_dwc2(gadget))
+		return 0x27;
 	return -ENOENT;
 }
-- 
2.17.1

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

* [PATCH v2 3/5] usb: sandbox: Add gadget callbacks
  2021-04-19  9:45 [PATCH v2 0/5] cmd: bind: Fix driver binding Patrice Chotard
  2021-04-19  9:45 ` [PATCH v2 1/5] cmd: bind: Fix driver binding on a device Patrice Chotard
  2021-04-19  9:45 ` [PATCH v2 2/5] usb: gadget: Add bcdDevice for the DWC2 USB Gadget Controller Patrice Chotard
@ 2021-04-19  9:45 ` Patrice Chotard
  2021-06-18  6:56   ` Patrice CHOTARD
  2021-06-26 18:31   ` Simon Glass
  2021-04-19  9:45 ` [PATCH v2 4/5] configs: sandbox: add USB_ETHER and GADGET_DOWNLOAD gadget support Patrice Chotard
  2021-04-19  9:45 ` [PATCH v2 5/5] test/py: Add usb gadget binding test Patrice Chotard
  4 siblings, 2 replies; 13+ messages in thread
From: Patrice Chotard @ 2021-04-19  9:45 UTC (permalink / raw)
  To: u-boot

Add usb_gadget_handle_interrupts(), usb_gadget_register_driver()
and usb_gadget_unregister_driver() to be able to test
binding usb gadget.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Herbert Poetzl <herbert@13thfloor.at>
---

(no changes since v1)

 drivers/usb/host/usb-sandbox.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/drivers/usb/host/usb-sandbox.c b/drivers/usb/host/usb-sandbox.c
index d7cc92aa54..d1103dcb2e 100644
--- a/drivers/usb/host/usb-sandbox.c
+++ b/drivers/usb/host/usb-sandbox.c
@@ -9,6 +9,13 @@
 #include <log.h>
 #include <usb.h>
 #include <dm/root.h>
+#include <linux/usb/gadget.h>
+
+struct sandbox_udc {
+	struct usb_gadget gadget;
+};
+
+struct sandbox_udc *this_controller;
 
 struct sandbox_usb_ctrl {
 	int rootdev;
@@ -117,6 +124,27 @@ static int sandbox_submit_int(struct udevice *bus, struct usb_device *udev,
 	return ret;
 }
 
+int usb_gadget_handle_interrupts(int index)
+{
+	return 0;
+}
+
+int usb_gadget_register_driver(struct usb_gadget_driver *driver)
+{
+	struct sandbox_udc *dev = this_controller;
+
+	return driver->bind(&dev->gadget);
+}
+
+int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
+{
+	struct sandbox_udc *dev = this_controller;
+
+	driver->unbind(&dev->gadget);
+
+	return 0;
+}
+
 static int sandbox_alloc_device(struct udevice *dev, struct usb_device *udev)
 {
 	struct sandbox_usb_ctrl *ctrl = dev_get_priv(dev);
-- 
2.17.1

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

* [PATCH v2 4/5] configs: sandbox: add USB_ETHER and GADGET_DOWNLOAD gadget support
  2021-04-19  9:45 [PATCH v2 0/5] cmd: bind: Fix driver binding Patrice Chotard
                   ` (2 preceding siblings ...)
  2021-04-19  9:45 ` [PATCH v2 3/5] usb: sandbox: Add gadget callbacks Patrice Chotard
@ 2021-04-19  9:45 ` Patrice Chotard
  2021-04-29 16:10   ` Simon Glass
  2021-04-19  9:45 ` [PATCH v2 5/5] test/py: Add usb gadget binding test Patrice Chotard
  4 siblings, 1 reply; 13+ messages in thread
From: Patrice Chotard @ 2021-04-19  9:45 UTC (permalink / raw)
  To: u-boot

This is needed for new gadget binding test.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Herbert Poetzl <herbert@13thfloor.at>
---

(no changes since v1)

 configs/sandbox_defconfig | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
index 5bc90d09a8..f7eb27d4a1 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
@@ -251,6 +251,9 @@ CONFIG_USB=y
 CONFIG_DM_USB=y
 CONFIG_USB_EMUL=y
 CONFIG_USB_KEYBOARD=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_DOWNLOAD=y
+CONFIG_USB_ETHER=y
 CONFIG_DM_VIDEO=y
 CONFIG_VIDEO_COPY=y
 CONFIG_CONSOLE_ROTATION=y
-- 
2.17.1

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

* [PATCH v2 5/5] test/py: Add usb gadget binding test
  2021-04-19  9:45 [PATCH v2 0/5] cmd: bind: Fix driver binding Patrice Chotard
                   ` (3 preceding siblings ...)
  2021-04-19  9:45 ` [PATCH v2 4/5] configs: sandbox: add USB_ETHER and GADGET_DOWNLOAD gadget support Patrice Chotard
@ 2021-04-19  9:45 ` Patrice Chotard
  2021-04-29 16:10   ` Simon Glass
  4 siblings, 1 reply; 13+ messages in thread
From: Patrice Chotard @ 2021-04-19  9:45 UTC (permalink / raw)
  To: u-boot

Add a specific usb gadget binding test which check that
binding a driver without compatible string is working as expected.

the command "bind /usb at 1 usb_ether" should give the following "dm tree"
command output:

[...]
 usb           0  [   ]   usb_sandbox           |-- usb at 1
 usb_hub       0  [   ]   usb_hub               |   |-- hub
 usb_emul      0  [   ]   usb_sandbox_hub       |   |   `-- hub-emul
 usb_emul      1  [   ]   usb_sandbox_flash     |   |       |-- flash-stick at 0
 usb_emul      2  [   ]   usb_sandbox_flash     |   |       |-- flash-stick at 1
 usb_emul      3  [   ]   usb_sandbox_flash     |   |       |-- flash-stick at 2
 usb_emul      4  [   ]   usb_sandbox_keyb      |   |       `-- keyb at 3
 eth           4  [   ]   usb_ether             |   `-- usb at 1
[...]

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Herbert Poetzl <herbert@13thfloor.at>

---

Changes in v2:
  - add bind test

 test/py/tests/test_bind.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/test/py/tests/test_bind.py b/test/py/tests/test_bind.py
index 6703325c0b..56edd78863 100644
--- a/test/py/tests/test_bind.py
+++ b/test/py/tests/test_bind.py
@@ -33,6 +33,13 @@ def test_bind_unbind_with_node(u_boot_console):
 	assert in_tree(tree, 'bind-test-child1', 'phy', 'phy_sandbox', 1, False)
 	assert in_tree(tree, 'bind-test-child2', 'simple_bus', 'simple_bus', 1, True)
 
+	#bind usb_ether driver (which has no compatible) to usb at 1 node.
+	##New entry usb_ether should appear in the dm tree
+	response = u_boot_console.run_command('bind  /usb at 1 usb_ether')
+	assert response == ''
+	tree = u_boot_console.run_command('dm tree')
+	assert in_tree(tree, 'usb at 1', 'eth', 'usb_ether', 1, True)
+
 	#Unbind child #1. No error expected and all devices should be there except for bind-test-child1
 	response = u_boot_console.run_command('unbind  /bind-test/bind-test-child1')
 	assert response == ''
-- 
2.17.1

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

* [PATCH v2 4/5] configs: sandbox: add USB_ETHER and GADGET_DOWNLOAD gadget support
  2021-04-19  9:45 ` [PATCH v2 4/5] configs: sandbox: add USB_ETHER and GADGET_DOWNLOAD gadget support Patrice Chotard
@ 2021-04-29 16:10   ` Simon Glass
  0 siblings, 0 replies; 13+ messages in thread
From: Simon Glass @ 2021-04-29 16:10 UTC (permalink / raw)
  To: u-boot

On Mon, 19 Apr 2021 at 02:49, Patrice Chotard
<patrice.chotard@foss.st.com> wrote:
>

> This is needed for new gadget binding test.
>
> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Herbert Poetzl <herbert@13thfloor.at>
> ---
>
> (no changes since v1)
>
>  configs/sandbox_defconfig | 3 +++
>  1 file changed, 3 insertions(+)

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

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

* [PATCH v2 5/5] test/py: Add usb gadget binding test
  2021-04-19  9:45 ` [PATCH v2 5/5] test/py: Add usb gadget binding test Patrice Chotard
@ 2021-04-29 16:10   ` Simon Glass
  0 siblings, 0 replies; 13+ messages in thread
From: Simon Glass @ 2021-04-29 16:10 UTC (permalink / raw)
  To: u-boot

On Mon, 19 Apr 2021 at 02:58, Patrice Chotard
<patrice.chotard@foss.st.com> wrote:
>
> Add a specific usb gadget binding test which check that
> binding a driver without compatible string is working as expected.
>
> the command "bind /usb at 1 usb_ether" should give the following "dm tree"
> command output:
>
> [...]
>  usb           0  [   ]   usb_sandbox           |-- usb at 1
>  usb_hub       0  [   ]   usb_hub               |   |-- hub
>  usb_emul      0  [   ]   usb_sandbox_hub       |   |   `-- hub-emul
>  usb_emul      1  [   ]   usb_sandbox_flash     |   |       |-- flash-stick at 0
>  usb_emul      2  [   ]   usb_sandbox_flash     |   |       |-- flash-stick at 1
>  usb_emul      3  [   ]   usb_sandbox_flash     |   |       |-- flash-stick at 2
>  usb_emul      4  [   ]   usb_sandbox_keyb      |   |       `-- keyb at 3
>  eth           4  [   ]   usb_ether             |   `-- usb at 1
> [...]
>
> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Herbert Poetzl <herbert@13thfloor.at>
>
> ---
>
> Changes in v2:
>   - add bind test
>
>  test/py/tests/test_bind.py | 7 +++++++
>  1 file changed, 7 insertions(+)

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

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

* Re: [PATCH v2 2/5] usb: gadget: Add bcdDevice for the DWC2 USB Gadget Controller
  2021-04-19  9:45 ` [PATCH v2 2/5] usb: gadget: Add bcdDevice for the DWC2 USB Gadget Controller Patrice Chotard
@ 2021-06-18  6:55   ` Patrice CHOTARD
  2021-08-02 15:56     ` [Uboot-stm32] " Patrice CHOTARD
  2021-09-01  9:12   ` Patrice CHOTARD
  1 sibling, 1 reply; 13+ messages in thread
From: Patrice CHOTARD @ 2021-06-18  6:55 UTC (permalink / raw)
  To: u-boot
  Cc: Patrick DELAUNAY, U-Boot STM32, Marek Vasut, Herbert Poetzl,
	Lukasz Majewski

Hi Lukasz, Marek

Can you have a look a this patch please ?

Thanks
Patrice

On 4/19/21 11:45 AM, Patrice Chotard wrote:
> Add an entry in usb_gadget_controller_number() for the DWC2
> gadget controller. It is used to bind the USB Ethernet driver.
> 
> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
> Reported-by: Herbert Poetzl <herbert@13thfloor.at>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Herbert Poetzl <herbert@13thfloor.at>
> ---
> 
> (no changes since v1)
> 
>  drivers/usb/gadget/gadget_chips.h | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/usb/gadget/gadget_chips.h b/drivers/usb/gadget/gadget_chips.h
> index 0cdf47c2dd..06e6a48949 100644
> --- a/drivers/usb/gadget/gadget_chips.h
> +++ b/drivers/usb/gadget/gadget_chips.h
> @@ -167,6 +167,12 @@
>  #define gadget_is_mtu3(g)        0
>  #endif
>  
> +#ifdef CONFIG_USB_GADGET_DWC2_OTG
> +#define gadget_is_dwc2(g)        (!strcmp("dwc2-udc", (g)->name))
> +#else
> +#define gadget_is_dwc2(g)        0
> +#endif
> +
>  /**
>   * usb_gadget_controller_number - support bcdDevice id convention
>   * @gadget: the controller being driven
> @@ -232,5 +238,7 @@ static inline int usb_gadget_controller_number(struct usb_gadget *gadget)
>  		return 0x25;
>  	else if (gadget_is_mtu3(gadget))
>  		return 0x26;
> +	else if (gadget_is_dwc2(gadget))
> +		return 0x27;
>  	return -ENOENT;
>  }
> 

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

* Re: [PATCH v2 3/5] usb: sandbox: Add gadget callbacks
  2021-04-19  9:45 ` [PATCH v2 3/5] usb: sandbox: Add gadget callbacks Patrice Chotard
@ 2021-06-18  6:56   ` Patrice CHOTARD
  2021-06-26 18:31   ` Simon Glass
  1 sibling, 0 replies; 13+ messages in thread
From: Patrice CHOTARD @ 2021-06-18  6:56 UTC (permalink / raw)
  To: u-boot
  Cc: Patrick DELAUNAY, U-Boot STM32, Marek Vasut, Herbert Poetzl, Simon Glass

Hi Marek

Can you have a look a this patch please ?

Thanks
Patrice

On 4/19/21 11:45 AM, Patrice Chotard wrote:
> Add usb_gadget_handle_interrupts(), usb_gadget_register_driver()
> and usb_gadget_unregister_driver() to be able to test
> binding usb gadget.
> 
> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Herbert Poetzl <herbert@13thfloor.at>
> ---
> 
> (no changes since v1)
> 
>  drivers/usb/host/usb-sandbox.c | 28 ++++++++++++++++++++++++++++
>  1 file changed, 28 insertions(+)
> 
> diff --git a/drivers/usb/host/usb-sandbox.c b/drivers/usb/host/usb-sandbox.c
> index d7cc92aa54..d1103dcb2e 100644
> --- a/drivers/usb/host/usb-sandbox.c
> +++ b/drivers/usb/host/usb-sandbox.c
> @@ -9,6 +9,13 @@
>  #include <log.h>
>  #include <usb.h>
>  #include <dm/root.h>
> +#include <linux/usb/gadget.h>
> +
> +struct sandbox_udc {
> +	struct usb_gadget gadget;
> +};
> +
> +struct sandbox_udc *this_controller;
>  
>  struct sandbox_usb_ctrl {
>  	int rootdev;
> @@ -117,6 +124,27 @@ static int sandbox_submit_int(struct udevice *bus, struct usb_device *udev,
>  	return ret;
>  }
>  
> +int usb_gadget_handle_interrupts(int index)
> +{
> +	return 0;
> +}
> +
> +int usb_gadget_register_driver(struct usb_gadget_driver *driver)
> +{
> +	struct sandbox_udc *dev = this_controller;
> +
> +	return driver->bind(&dev->gadget);
> +}
> +
> +int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
> +{
> +	struct sandbox_udc *dev = this_controller;
> +
> +	driver->unbind(&dev->gadget);
> +
> +	return 0;
> +}
> +
>  static int sandbox_alloc_device(struct udevice *dev, struct usb_device *udev)
>  {
>  	struct sandbox_usb_ctrl *ctrl = dev_get_priv(dev);
> 

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

* Re: [PATCH v2 3/5] usb: sandbox: Add gadget callbacks
  2021-04-19  9:45 ` [PATCH v2 3/5] usb: sandbox: Add gadget callbacks Patrice Chotard
  2021-06-18  6:56   ` Patrice CHOTARD
@ 2021-06-26 18:31   ` Simon Glass
  1 sibling, 0 replies; 13+ messages in thread
From: Simon Glass @ 2021-06-26 18:31 UTC (permalink / raw)
  To: Patrice Chotard
  Cc: U-Boot Mailing List, Patrick DELAUNAY, U-Boot STM32, Marek Vasut,
	Herbert Poetzl

On Mon, 19 Apr 2021 at 03:47, Patrice Chotard
<patrice.chotard@foss.st.com> wrote:
>
> Add usb_gadget_handle_interrupts(), usb_gadget_register_driver()
> and usb_gadget_unregister_driver() to be able to test
> binding usb gadget.
>
> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Herbert Poetzl <herbert@13thfloor.at>
> ---
>
> (no changes since v1)
>
>  drivers/usb/host/usb-sandbox.c | 28 ++++++++++++++++++++++++++++
>  1 file changed, 28 insertions(+)

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

But it looks like gadgets should be converted to DM properly?

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

* Re: [Uboot-stm32] [PATCH v2 2/5] usb: gadget: Add bcdDevice for the DWC2 USB Gadget Controller
  2021-06-18  6:55   ` Patrice CHOTARD
@ 2021-08-02 15:56     ` Patrice CHOTARD
  0 siblings, 0 replies; 13+ messages in thread
From: Patrice CHOTARD @ 2021-08-02 15:56 UTC (permalink / raw)
  To: u-boot
  Cc: Patrick DELAUNAY, U-Boot STM32, Marek Vasut, Lukasz Majewski,
	Herbert Poetzl

Hi Lukasz

Only this patch of this series is missing a reviewed-by for being accepted, can you have a look please ? 

Thanks
Patrice

On 6/18/21 8:55 AM, Patrice CHOTARD wrote:
> Hi Lukasz, Marek
> 
> Can you have a look a this patch please ?
> 
> Thanks
> Patrice
> 
> On 4/19/21 11:45 AM, Patrice Chotard wrote:
>> Add an entry in usb_gadget_controller_number() for the DWC2
>> gadget controller. It is used to bind the USB Ethernet driver.
>>
>> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
>> Reported-by: Herbert Poetzl <herbert@13thfloor.at>
>> Cc: Marek Vasut <marex@denx.de>
>> Cc: Herbert Poetzl <herbert@13thfloor.at>
>> ---
>>
>> (no changes since v1)
>>
>>  drivers/usb/gadget/gadget_chips.h | 8 ++++++++
>>  1 file changed, 8 insertions(+)
>>
>> diff --git a/drivers/usb/gadget/gadget_chips.h b/drivers/usb/gadget/gadget_chips.h
>> index 0cdf47c2dd..06e6a48949 100644
>> --- a/drivers/usb/gadget/gadget_chips.h
>> +++ b/drivers/usb/gadget/gadget_chips.h
>> @@ -167,6 +167,12 @@
>>  #define gadget_is_mtu3(g)        0
>>  #endif
>>  
>> +#ifdef CONFIG_USB_GADGET_DWC2_OTG
>> +#define gadget_is_dwc2(g)        (!strcmp("dwc2-udc", (g)->name))
>> +#else
>> +#define gadget_is_dwc2(g)        0
>> +#endif
>> +
>>  /**
>>   * usb_gadget_controller_number - support bcdDevice id convention
>>   * @gadget: the controller being driven
>> @@ -232,5 +238,7 @@ static inline int usb_gadget_controller_number(struct usb_gadget *gadget)
>>  		return 0x25;
>>  	else if (gadget_is_mtu3(gadget))
>>  		return 0x26;
>> +	else if (gadget_is_dwc2(gadget))
>> +		return 0x27;
>>  	return -ENOENT;
>>  }
>>
> _______________________________________________
> Uboot-stm32 mailing list
> Uboot-stm32@st-md-mailman.stormreply.com
> https://st-md-mailman.stormreply.com/mailman/listinfo/uboot-stm32
> 

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

* Re: [PATCH v2 2/5] usb: gadget: Add bcdDevice for the DWC2 USB Gadget Controller
  2021-04-19  9:45 ` [PATCH v2 2/5] usb: gadget: Add bcdDevice for the DWC2 USB Gadget Controller Patrice Chotard
  2021-06-18  6:55   ` Patrice CHOTARD
@ 2021-09-01  9:12   ` Patrice CHOTARD
  1 sibling, 0 replies; 13+ messages in thread
From: Patrice CHOTARD @ 2021-09-01  9:12 UTC (permalink / raw)
  To: u-boot, Lukasz Majewski
  Cc: Patrick DELAUNAY, U-Boot STM32, Marek Vasut, Herbert Poetzl,
	Lukasz Majewski

Hi Lukasz

Can you add your reviewed-by on this patch ?
This patch, and the other 4 patches of this serie, are still blocked on patchwork since April.

Thanks ;-)
Patrice

On 4/19/21 11:45 AM, Patrice Chotard wrote:
> Add an entry in usb_gadget_controller_number() for the DWC2
> gadget controller. It is used to bind the USB Ethernet driver.
> 
> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
> Reported-by: Herbert Poetzl <herbert@13thfloor.at>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Herbert Poetzl <herbert@13thfloor.at>
> ---
> 
> (no changes since v1)
> 
>  drivers/usb/gadget/gadget_chips.h | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/usb/gadget/gadget_chips.h b/drivers/usb/gadget/gadget_chips.h
> index 0cdf47c2dd..06e6a48949 100644
> --- a/drivers/usb/gadget/gadget_chips.h
> +++ b/drivers/usb/gadget/gadget_chips.h
> @@ -167,6 +167,12 @@
>  #define gadget_is_mtu3(g)        0
>  #endif
>  
> +#ifdef CONFIG_USB_GADGET_DWC2_OTG
> +#define gadget_is_dwc2(g)        (!strcmp("dwc2-udc", (g)->name))
> +#else
> +#define gadget_is_dwc2(g)        0
> +#endif
> +
>  /**
>   * usb_gadget_controller_number - support bcdDevice id convention
>   * @gadget: the controller being driven
> @@ -232,5 +238,7 @@ static inline int usb_gadget_controller_number(struct usb_gadget *gadget)
>  		return 0x25;
>  	else if (gadget_is_mtu3(gadget))
>  		return 0x26;
> +	else if (gadget_is_dwc2(gadget))
> +		return 0x27;
>  	return -ENOENT;
>  }
> 

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

end of thread, other threads:[~2021-09-01  9:13 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-19  9:45 [PATCH v2 0/5] cmd: bind: Fix driver binding Patrice Chotard
2021-04-19  9:45 ` [PATCH v2 1/5] cmd: bind: Fix driver binding on a device Patrice Chotard
2021-04-19  9:45 ` [PATCH v2 2/5] usb: gadget: Add bcdDevice for the DWC2 USB Gadget Controller Patrice Chotard
2021-06-18  6:55   ` Patrice CHOTARD
2021-08-02 15:56     ` [Uboot-stm32] " Patrice CHOTARD
2021-09-01  9:12   ` Patrice CHOTARD
2021-04-19  9:45 ` [PATCH v2 3/5] usb: sandbox: Add gadget callbacks Patrice Chotard
2021-06-18  6:56   ` Patrice CHOTARD
2021-06-26 18:31   ` Simon Glass
2021-04-19  9:45 ` [PATCH v2 4/5] configs: sandbox: add USB_ETHER and GADGET_DOWNLOAD gadget support Patrice Chotard
2021-04-29 16:10   ` Simon Glass
2021-04-19  9:45 ` [PATCH v2 5/5] test/py: Add usb gadget binding test Patrice Chotard
2021-04-29 16:10   ` Simon Glass

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.