* [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.