[PATCH v2 0/2] Fix 'no USB device found' error.

This series fixes usb0 dr_mode for am335x-icev2 and am335x-evmsk. It must be set to 'peripheral' in order to avoid 'no USB device found' error, in usb_ether_init() function.
Signed-off-by: Julien Panis jpanis@baylibre.com --- Changes in v2: - Drop the modification made in arch/arm/mach-omap2/am33xx/board.c - Configure usb0 dr_mode as peripheral in 'am335x-icev2-u-boot.dtsi' and 'am335x-evmsk-u-boot.dtsi' device trees. - Link to v1: https://lore.kernel.org/r/20230621-fix_usb_ether_init-v1-1-2156923994a9@bayl...
--- Julien Panis (2): arm: dts: am335x-icev2-u-boot: Configure peripheral mode for usb0 arm: dts: am335x-evmsk-u-boot: Configure peripheral mode for usb0
arch/arm/dts/am335x-evmsk-u-boot.dtsi | 4 ++++ arch/arm/dts/am335x-icev2-u-boot.dtsi | 4 ++++ 2 files changed, 8 insertions(+) --- base-commit: 19b77d3d23966a0d6dbb3c86187765f11100fb6f change-id: 20230621-fix_usb_ether_init-4bf4f1135113
Best regards,

This patch configures usb0 dr_mode as peripheral on am335x-icev2 board.
Signed-off-by: Julien Panis jpanis@baylibre.com --- arch/arm/dts/am335x-icev2-u-boot.dtsi | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/arch/arm/dts/am335x-icev2-u-boot.dtsi b/arch/arm/dts/am335x-icev2-u-boot.dtsi index 67bfac916eee..7dcd5ec00605 100644 --- a/arch/arm/dts/am335x-icev2-u-boot.dtsi +++ b/arch/arm/dts/am335x-icev2-u-boot.dtsi @@ -22,3 +22,7 @@ xtal-load-pf = <0>; }; }; + +&usb0 { + dr_mode = "peripheral"; +};

This patch configures usb0 dr_mode as peripheral on am335x-evmsk board.
Signed-off-by: Julien Panis jpanis@baylibre.com --- arch/arm/dts/am335x-evmsk-u-boot.dtsi | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/arch/arm/dts/am335x-evmsk-u-boot.dtsi b/arch/arm/dts/am335x-evmsk-u-boot.dtsi index 669cb6bf1655..010005c45091 100644 --- a/arch/arm/dts/am335x-evmsk-u-boot.dtsi +++ b/arch/arm/dts/am335x-evmsk-u-boot.dtsi @@ -20,3 +20,7 @@ }; }; }; + +&usb0 { + dr_mode = "peripheral"; +};

On Thu, Jun 22, 2023 at 04:34:34PM +0200, Julien Panis wrote:
This series fixes usb0 dr_mode for am335x-icev2 and am335x-evmsk. It must be set to 'peripheral' in order to avoid 'no USB device found' error, in usb_ether_init() function.
Signed-off-by: Julien Panis jpanis@baylibre.com
Changes in v2:
- Drop the modification made in arch/arm/mach-omap2/am33xx/board.c
- Configure usb0 dr_mode as peripheral in 'am335x-icev2-u-boot.dtsi' and 'am335x-evmsk-u-boot.dtsi' device trees.
- Link to v1: https://lore.kernel.org/r/20230621-fix_usb_ether_init-v1-1-2156923994a9@bayl...
Julien Panis (2): arm: dts: am335x-icev2-u-boot: Configure peripheral mode for usb0 arm: dts: am335x-evmsk-u-boot: Configure peripheral mode for usb0
arch/arm/dts/am335x-evmsk-u-boot.dtsi | 4 ++++ arch/arm/dts/am335x-icev2-u-boot.dtsi | 4 ++++ 2 files changed, 8 insertions(+)
I'll ask the first question that Nishanth might also ask, which is why don't these belong in the kernel dts files? Thanks!

On 6/22/23 17:49, Tom Rini wrote:
On Thu, Jun 22, 2023 at 04:34:34PM +0200, Julien Panis wrote:
This series fixes usb0 dr_mode for am335x-icev2 and am335x-evmsk. It must be set to 'peripheral' in order to avoid 'no USB device found' error, in usb_ether_init() function.
Signed-off-by: Julien Panis jpanis@baylibre.com
Changes in v2:
- Drop the modification made in arch/arm/mach-omap2/am33xx/board.c
- Configure usb0 dr_mode as peripheral in 'am335x-icev2-u-boot.dtsi' and 'am335x-evmsk-u-boot.dtsi' device trees.
- Link to v1: https://lore.kernel.org/r/20230621-fix_usb_ether_init-v1-1-2156923994a9@bayl...
Julien Panis (2): arm: dts: am335x-icev2-u-boot: Configure peripheral mode for usb0 arm: dts: am335x-evmsk-u-boot: Configure peripheral mode for usb0
arch/arm/dts/am335x-evmsk-u-boot.dtsi | 4 ++++ arch/arm/dts/am335x-icev2-u-boot.dtsi | 4 ++++ 2 files changed, 8 insertions(+)
I'll ask the first question that Nishanth might also ask, which is why don't these belong in the kernel dts files? Thanks!
That's a good question. :) Looping Nishanth... usb0 dr_mode property is already overlayed for am335x-evm, in 'am335x-evm-u-boot.dtsi'. So, it appeared more consistent to me to do the same thing for am335x-icev2 and am335x-evmsk. I guess that the goal is to configure usb0 as host by default at kernel boot, since we do not necessarily want to use this usb0 as peripheral from userspace. Is it the right explanation @Vignesh @Nishanth ?

On Fri, Jun 23, 2023 at 09:42:01AM +0200, Julien Panis wrote:
On 6/22/23 17:49, Tom Rini wrote:
On Thu, Jun 22, 2023 at 04:34:34PM +0200, Julien Panis wrote:
This series fixes usb0 dr_mode for am335x-icev2 and am335x-evmsk. It must be set to 'peripheral' in order to avoid 'no USB device found' error, in usb_ether_init() function.
Signed-off-by: Julien Panis jpanis@baylibre.com
Changes in v2:
- Drop the modification made in arch/arm/mach-omap2/am33xx/board.c
- Configure usb0 dr_mode as peripheral in 'am335x-icev2-u-boot.dtsi' and 'am335x-evmsk-u-boot.dtsi' device trees.
- Link to v1: https://lore.kernel.org/r/20230621-fix_usb_ether_init-v1-1-2156923994a9@bayl...
Julien Panis (2): arm: dts: am335x-icev2-u-boot: Configure peripheral mode for usb0 arm: dts: am335x-evmsk-u-boot: Configure peripheral mode for usb0
arch/arm/dts/am335x-evmsk-u-boot.dtsi | 4 ++++ arch/arm/dts/am335x-icev2-u-boot.dtsi | 4 ++++ 2 files changed, 8 insertions(+)
I'll ask the first question that Nishanth might also ask, which is why don't these belong in the kernel dts files? Thanks!
That's a good question. :) Looping Nishanth... usb0 dr_mode property is already overlayed for am335x-evm, in 'am335x-evm-u-boot.dtsi'. So, it appeared more consistent to me to do the same thing for am335x-icev2 and am335x-evmsk. I guess that the goal is to configure usb0 as host by default at kernel boot, since we do not necessarily want to use this usb0 as peripheral from userspace. Is it the right explanation @Vignesh @Nishanth ?
It's I think even more likely that the am335x_evm fragment needs to go upstream too.

On 13:59-20230623, Tom Rini wrote:
On Fri, Jun 23, 2023 at 09:42:01AM +0200, Julien Panis wrote:
On 6/22/23 17:49, Tom Rini wrote:
On Thu, Jun 22, 2023 at 04:34:34PM +0200, Julien Panis wrote:
This series fixes usb0 dr_mode for am335x-icev2 and am335x-evmsk. It must be set to 'peripheral' in order to avoid 'no USB device found' error, in usb_ether_init() function.
Signed-off-by: Julien Panis jpanis@baylibre.com
Changes in v2:
- Drop the modification made in arch/arm/mach-omap2/am33xx/board.c
- Configure usb0 dr_mode as peripheral in 'am335x-icev2-u-boot.dtsi' and 'am335x-evmsk-u-boot.dtsi' device trees.
- Link to v1: https://lore.kernel.org/r/20230621-fix_usb_ether_init-v1-1-2156923994a9@bayl...
Julien Panis (2): arm: dts: am335x-icev2-u-boot: Configure peripheral mode for usb0 arm: dts: am335x-evmsk-u-boot: Configure peripheral mode for usb0
arch/arm/dts/am335x-evmsk-u-boot.dtsi | 4 ++++ arch/arm/dts/am335x-icev2-u-boot.dtsi | 4 ++++ 2 files changed, 8 insertions(+)
I'll ask the first question that Nishanth might also ask, which is why don't these belong in the kernel dts files? Thanks!
That's a good question. :) Looping Nishanth... usb0 dr_mode property is already overlayed for am335x-evm, in 'am335x-evm-u-boot.dtsi'. So, it appeared more consistent to me to do the same thing for am335x-icev2 and am335x-evmsk. I guess that the goal is to configure usb0 as host by default at kernel boot, since we do not necessarily want to use this usb0 as peripheral from userspace. Is it the right explanation @Vignesh @Nishanth ?
It's I think even more likely that the am335x_evm fragment needs to go upstream too.
Adding Tony to the thread, but I think it is better to send the changes to upstream kernel.
-- Regards Nishanth Menon

On 6/26/23 09:32, Nishanth Menon wrote:
On 13:59-20230623, Tom Rini wrote:
On Fri, Jun 23, 2023 at 09:42:01AM +0200, Julien Panis wrote:
On 6/22/23 17:49, Tom Rini wrote:
On Thu, Jun 22, 2023 at 04:34:34PM +0200, Julien Panis wrote:
This series fixes usb0 dr_mode for am335x-icev2 and am335x-evmsk. It must be set to 'peripheral' in order to avoid 'no USB device found' error, in usb_ether_init() function.
Signed-off-by: Julien Panis jpanis@baylibre.com
Changes in v2:
- Drop the modification made in arch/arm/mach-omap2/am33xx/board.c
- Configure usb0 dr_mode as peripheral in 'am335x-icev2-u-boot.dtsi' and 'am335x-evmsk-u-boot.dtsi' device trees.
- Link to v1: https://lore.kernel.org/r/20230621-fix_usb_ether_init-v1-1-2156923994a9@bayl...
Julien Panis (2): arm: dts: am335x-icev2-u-boot: Configure peripheral mode for usb0 arm: dts: am335x-evmsk-u-boot: Configure peripheral mode for usb0
arch/arm/dts/am335x-evmsk-u-boot.dtsi | 4 ++++ arch/arm/dts/am335x-icev2-u-boot.dtsi | 4 ++++ 2 files changed, 8 insertions(+)
I'll ask the first question that Nishanth might also ask, which is why don't these belong in the kernel dts files? Thanks!
That's a good question. :) Looping Nishanth... usb0 dr_mode property is already overlayed for am335x-evm, in 'am335x-evm-u-boot.dtsi'. So, it appeared more consistent to me to do the same thing for am335x-icev2 and am335x-evmsk. I guess that the goal is to configure usb0 as host by default at kernel boot, since we do not necessarily want to use this usb0 as peripheral from userspace. Is it the right explanation @Vignesh @Nishanth ?
It's I think even more likely that the am335x_evm fragment needs to go upstream too.
Adding Tony to the thread, but I think it is better to send the changes to upstream kernel.
-- Regards Nishanth Menon
OK, thanks. So I will send a series to linux (usb0 configured as peripheral for the 3 boards). Then, I will send a patch to remove usb0 node from 'am335x-evm-u-boot.dtsi'.
Julien Panis

On 26/06/2023 10:32, Nishanth Menon wrote:
On 13:59-20230623, Tom Rini wrote:
On Fri, Jun 23, 2023 at 09:42:01AM +0200, Julien Panis wrote:
On 6/22/23 17:49, Tom Rini wrote:
On Thu, Jun 22, 2023 at 04:34:34PM +0200, Julien Panis wrote:
This series fixes usb0 dr_mode for am335x-icev2 and am335x-evmsk. It must be set to 'peripheral' in order to avoid 'no USB device found' error, in usb_ether_init() function.
Signed-off-by: Julien Panis jpanis@baylibre.com
Changes in v2:
- Drop the modification made in arch/arm/mach-omap2/am33xx/board.c
- Configure usb0 dr_mode as peripheral in 'am335x-icev2-u-boot.dtsi' and 'am335x-evmsk-u-boot.dtsi' device trees.
- Link to v1: https://lore.kernel.org/r/20230621-fix_usb_ether_init-v1-1-2156923994a9@bayl...
Julien Panis (2): arm: dts: am335x-icev2-u-boot: Configure peripheral mode for usb0 arm: dts: am335x-evmsk-u-boot: Configure peripheral mode for usb0
arch/arm/dts/am335x-evmsk-u-boot.dtsi | 4 ++++ arch/arm/dts/am335x-icev2-u-boot.dtsi | 4 ++++ 2 files changed, 8 insertions(+)
I'll ask the first question that Nishanth might also ask, which is why don't these belong in the kernel dts files? Thanks!
That's a good question. :) Looping Nishanth... usb0 dr_mode property is already overlayed for am335x-evm, in 'am335x-evm-u-boot.dtsi'. So, it appeared more consistent to me to do the same thing for am335x-icev2 and am335x-evmsk. I guess that the goal is to configure usb0 as host by default at kernel boot, since we do not necessarily want to use this usb0 as peripheral from userspace. Is it the right explanation @Vignesh @Nishanth ?
It's I think even more likely that the am335x_evm fragment needs to go upstream too.
Adding Tony to the thread, but I think it is better to send the changes to upstream kernel.
Linux DT files are correct. USB0 is a dual-role port so it sets it to 'otg'. u-boot doesn't support 'otg' so we need to override it to 'peripheral' in -u-boot.dtsi

On Mon, Jul 03, 2023 at 07:12:47PM +0300, Roger Quadros wrote:
On 26/06/2023 10:32, Nishanth Menon wrote:
On 13:59-20230623, Tom Rini wrote:
On Fri, Jun 23, 2023 at 09:42:01AM +0200, Julien Panis wrote:
On 6/22/23 17:49, Tom Rini wrote:
On Thu, Jun 22, 2023 at 04:34:34PM +0200, Julien Panis wrote:
This series fixes usb0 dr_mode for am335x-icev2 and am335x-evmsk. It must be set to 'peripheral' in order to avoid 'no USB device found' error, in usb_ether_init() function.
Signed-off-by: Julien Panis jpanis@baylibre.com
Changes in v2:
- Drop the modification made in arch/arm/mach-omap2/am33xx/board.c
- Configure usb0 dr_mode as peripheral in 'am335x-icev2-u-boot.dtsi' and 'am335x-evmsk-u-boot.dtsi' device trees.
- Link to v1: https://lore.kernel.org/r/20230621-fix_usb_ether_init-v1-1-2156923994a9@bayl...
Julien Panis (2): arm: dts: am335x-icev2-u-boot: Configure peripheral mode for usb0 arm: dts: am335x-evmsk-u-boot: Configure peripheral mode for usb0
arch/arm/dts/am335x-evmsk-u-boot.dtsi | 4 ++++ arch/arm/dts/am335x-icev2-u-boot.dtsi | 4 ++++ 2 files changed, 8 insertions(+)
I'll ask the first question that Nishanth might also ask, which is why don't these belong in the kernel dts files? Thanks!
That's a good question. :) Looping Nishanth... usb0 dr_mode property is already overlayed for am335x-evm, in 'am335x-evm-u-boot.dtsi'. So, it appeared more consistent to me to do the same thing for am335x-icev2 and am335x-evmsk. I guess that the goal is to configure usb0 as host by default at kernel boot, since we do not necessarily want to use this usb0 as peripheral from userspace. Is it the right explanation @Vignesh @Nishanth ?
It's I think even more likely that the am335x_evm fragment needs to go upstream too.
Adding Tony to the thread, but I think it is better to send the changes to upstream kernel.
Linux DT files are correct. USB0 is a dual-role port so it sets it to 'otg'. u-boot doesn't support 'otg' so we need to override it to 'peripheral' in -u-boot.dtsi
Ah, thanks, that was the missing bit of background information.

* Tom Rini trini@konsulko.com [230703 16:22]:
On Mon, Jul 03, 2023 at 07:12:47PM +0300, Roger Quadros wrote:
Linux DT files are correct. USB0 is a dual-role port so it sets it to 'otg'. u-boot doesn't support 'otg' so we need to override it to 'peripheral' in -u-boot.dtsi
Ah, thanks, that was the missing bit of background information.
It would be best to parse dual-role feature in the driver to handle it as peripheral only and keep the dts the same.
Regards,
Tony

On 06/07/2023 06:53, Tony Lindgren wrote:
- Tom Rini trini@konsulko.com [230703 16:22]:
On Mon, Jul 03, 2023 at 07:12:47PM +0300, Roger Quadros wrote:
Linux DT files are correct. USB0 is a dual-role port so it sets it to 'otg'. u-boot doesn't support 'otg' so we need to override it to 'peripheral' in -u-boot.dtsi
Ah, thanks, that was the missing bit of background information.
It would be best to parse dual-role feature in the driver to handle it as peripheral only and keep the dts the same.
+1

On 22/06/2023 17:34, Julien Panis wrote:
This series fixes usb0 dr_mode for am335x-icev2 and am335x-evmsk. It must be set to 'peripheral' in order to avoid 'no USB device found' error, in usb_ether_init() function.
Signed-off-by: Julien Panis jpanis@baylibre.com
Changes in v2:
- Drop the modification made in arch/arm/mach-omap2/am33xx/board.c
- Configure usb0 dr_mode as peripheral in 'am335x-icev2-u-boot.dtsi' and 'am335x-evmsk-u-boot.dtsi' device trees.
- Link to v1: https://lore.kernel.org/r/20230621-fix_usb_ether_init-v1-1-2156923994a9@bayl...
Julien Panis (2): arm: dts: am335x-icev2-u-boot: Configure peripheral mode for usb0 arm: dts: am335x-evmsk-u-boot: Configure peripheral mode for usb0
arch/arm/dts/am335x-evmsk-u-boot.dtsi | 4 ++++ arch/arm/dts/am335x-icev2-u-boot.dtsi | 4 ++++ 2 files changed, 8 insertions(+)
For this series: Reviewed-by: Roger Quadros rogerq@kernel.org
participants (5)
-
Julien Panis
-
Nishanth Menon
-
Roger Quadros
-
Tom Rini
-
Tony Lindgren