From: Roger Quadros <rogerq@kernel.org>
To: Siddharth Vadapalli <s-vadapalli@ti.com>
Cc: Tom Rini <trini@konsulko.com>,
Martyn Welch <martyn.welch@collabora.com>,
Sjoerd Simons <sjoerd@collabora.com>,
Mattijs Korpershoek <mkorpershoek@baylibre.com>,
marex@denx.de, vigneshr@ti.com, nm@ti.com, j-humphreys@ti.com,
srk@ti.com, u-boot@lists.denx.de
Subject: Re: [PATCH] configs: am62x_evm_*: Fix USB DFU configuration
Date: Fri, 6 Dec 2024 11:17:28 +0200 [thread overview]
Message-ID: <d103c8e4-d599-4c75-9239-11e7e8adf6e9@kernel.org> (raw)
In-Reply-To: <unf757pwgah5ylkcfdumtdo5zs2ny3nxct5u26t6up7aldqim2@mxhhtb53gw4x>
Hello Siddharth,
On 06/12/2024 09:19, Siddharth Vadapalli wrote:
> On Tue, Dec 03, 2024 at 10:40:29PM +0200, Roger Quadros wrote:
>
> Hello Roger,
>
>> CONFIG_USB_XHCI_DWC3 is not required for AM62x as the XHCI
>> driver is registered through the dwc3-generic driver.
>>
>> CONFIG_USB_XHCI_DWC3 causes problems by hijacking the
>> USB controller even if it is not set for Host mode in
>> device tree.
>>
>> 'dm tree' output after 'usb start' is fixed from
>>
>> simple_bus 5 [ + ] dwc3-am62 | |-- dwc3-usb@f900000
>> usb_gadget 0 [ ] dwc3-generic-periphe | | |-- usb@31000000
>> usb 0 [ + ] xhci-dwc3 | | `-- usb@31000000
>> usb_hub 0 [ + ] usb_hub | | `-- usb_hub
>> simple_bus 6 [ + ] dwc3-am62 | |-- dwc3-usb@f910000
>> usb 1 [ + ] dwc3-generic-host | | |-- usb@31100000
>> usb_hub 1 [ + ] usb_hub | | | `-- usb_hub
>> usb 1 [ + ] xhci-dwc3 | | `-- usb@31100000
>> usb_hub 2 [ + ] usb_hub | | `-- usb_hub
>>
>> [notice that 'xhci-dwc3' and 'usb_hub' drivers are probed
>> for both USB instances although the first instance
>> is supposed to be 'peripheral' only]
>>
>> to
>>
>> simple_bus 5 [ ] dwc3-am62 | |-- dwc3-usb@f900000
>> usb_gadget 0 [ ] dwc3-generic-periphe | | `-- usb@31000000
>> simple_bus 6 [ + ] dwc3-am62 | |-- dwc3-usb@f910000
>> usb 1 [ + ] dwc3-generic-host | | `-- usb@31100000
>> usb_hub 0 [ + ] usb_hub | | `-- usb_hub
>
> While this fixes the issue, I am wondering if the issue lies elsewhere.
> In U-Boot, the compatible "snps,dwc3" is associated with:
> drivers/usb/host/xhci-dwc3.c
> while in Linux, the compatible "snps,dwc3" is associated with:
> drivers/usb/dwc3/core.c
>
> So there seem to be two alternatives that I could think of:
> 1. Modify U-Boot to match Linux in the sense that we associate
> "snps,dwc3" with drivers/usb/dwc3/core.c in U-Boot.
Many platforms (grep for CONFIG_USB_XHCI_DWC3
in configs/) use xhci-dwc3 to get Host mode working
without the need for core.c. Maybe it was more simpler that way?
Also see USB_XHCI_DWC3_OF_SIMPLE.
So if we drop "snps,dwc3" from xhci-dwc3, we will have to ensure each
and every platform works.
> 2. With the understanding that "dr_mode" doesn't have to be host/otg for
> the compatible "snps,dwc3" which is tied to drivers/usb/host/xhci-dwc3.c,
> do the following to exit probe when "dr_mode" is "peripheral":
> -------------------------------------------------------------------------
> diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
> index e3e0ceff43e..edfd7b97a73 100644
> --- a/drivers/usb/host/xhci-dwc3.c
> +++ b/drivers/usb/host/xhci-dwc3.c
> @@ -208,6 +208,8 @@ static int xhci_dwc3_probe(struct udevice *dev)
> writel(reg, &dwc3_reg->g_usb2phycfg[0]);
>
> dr_mode = usb_get_dr_mode(dev_ofnode(dev));
> + if (dr_mode == USB_DR_MODE_PERIPHERAL)
> + return -ENODEV;
> if (dr_mode == USB_DR_MODE_OTG &&
> dev_read_bool(dev, "usb-role-switch")) {
> dr_mode = usb_get_role_switch_default_mode(dev_ofnode(dev));
> -------------------------------------------------------------------------
> which will still show "xhci-dwc3" in the output of "dm tree" after "usb
> start", but the driver won't be probed (absence of "+" in the "Probed"
> column of "dm tree" output).
I agree with your second proposal.
But it is a separate bug (in xhci-dwc3 driver) which also
fixes the issue this patch is fixing.
Regardless, I think both fixes should go in.
Could you please send a patch to fix xhci-dwc3? Thanks!
>
> I just wanted to point this out as a possible fix for other scenarios.
> Disabling "CONFIG_USB_XHCI_DWC3" seems to be the best choice in the
> current scenario (i.e. it shouldn't have been set in "USB DFU" fragment
> to begin with).
>
>>
>> Fixes: dfc2dff5a844 ("configs: am62x_evm_*: Enable USB and DFU support")
>> Signed-off-by: Roger Quadros <rogerq@kernel.org>
>
> Reviewed-by: Siddharth Vadapalli <s-vadapalli@ti.com>
>
>> ---
>> configs/am62x_a53_usbdfu.config | 1 -
>> 1 file changed, 1 deletion(-)
>>
>> diff --git a/configs/am62x_a53_usbdfu.config b/configs/am62x_a53_usbdfu.config
>> index 3a19cf23287..0d3c6df1e73 100644
>> --- a/configs/am62x_a53_usbdfu.config
>> +++ b/configs/am62x_a53_usbdfu.config
>> @@ -16,7 +16,6 @@ CONFIG_USB=y
>> CONFIG_DM_USB_GADGET=y
>> CONFIG_SPL_DM_USB_GADGET=y
>> CONFIG_USB_XHCI_HCD=y
>> -CONFIG_USB_XHCI_DWC3=y
>> CONFIG_USB_DWC3=y
>> CONFIG_USB_DWC3_GENERIC=y
>> CONFIG_SPL_USB_DWC3_GENERIC=y
>>
>> ---
>> base-commit: 3073246d1be682071d8b3d07d06c2484907aed60
>> change-id: 20241203-am62-usb-xhci-be62bc9584c9
>>
>> Best regards,
>> --
>> Roger Quadros <rogerq@kernel.org>
>>
--
cheers,
-roger
next prev parent reply other threads:[~2024-12-06 9:17 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-03 20:40 [PATCH] configs: am62x_evm_*: Fix USB DFU configuration Roger Quadros
2024-12-06 7:19 ` Siddharth Vadapalli
2024-12-06 9:17 ` Roger Quadros [this message]
2024-12-06 9:38 ` Siddharth Vadapalli
2024-12-06 9:44 ` Roger Quadros
2024-12-06 10:07 ` Siddharth Vadapalli
2024-12-09 12:32 ` Roger Quadros
2024-12-09 12:59 ` Siddharth Vadapalli
2024-12-12 19:18 ` Tom Rini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d103c8e4-d599-4c75-9239-11e7e8adf6e9@kernel.org \
--to=rogerq@kernel.org \
--cc=j-humphreys@ti.com \
--cc=marex@denx.de \
--cc=martyn.welch@collabora.com \
--cc=mkorpershoek@baylibre.com \
--cc=nm@ti.com \
--cc=s-vadapalli@ti.com \
--cc=sjoerd@collabora.com \
--cc=srk@ti.com \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
--cc=vigneshr@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.