On 11/12/24 7:42 AM, Abbarapu, Venkatesh wrote:
Hi,
-----Original Message-----
From: Marek Vasut <ma...@denx.de>
Sent: Tuesday, November 12, 2024 11:28 AM
To: Abbarapu, Venkatesh <venkatesh.abbar...@amd.com>; u-boot@lists.denx.de
Cc: Simek, Michal <michal.si...@amd.com>; fabrice.gasn...@foss.st.com; git
(AMD-Xilinx) <g...@amd.com>
Subject: Re: [PATCH v11 3/7] usb: onboard-hub: add support for Microchip
USB5744
On 11/12/24 6:07 AM, Venkatesh Yadav Abbarapu wrote:
Add support for the Microchip USB5744 USB3.0 and USB2.0 Hub.
The usb5744 driver trigger hub reset signal after soft reset.
The usb5744 hub need to reset after the phy initialization, which
toggles the gpio.
Also update the usb2514 hub_data with the reset delay as 1us.
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbar...@amd.com>
Reviewed-by: Marek Vasut <ma...@denx.de>
---
common/usb_onboard_hub.c | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/common/usb_onboard_hub.c b/common/usb_onboard_hub.c index
827ecf9b02..1d146eccee 100644
--- a/common/usb_onboard_hub.c
+++ b/common/usb_onboard_hub.c
@@ -88,10 +88,26 @@ static int usb_onboard_hub_remove(struct udevice *dev)
return ret;
}
+static const struct onboard_hub_data usb2514_data = {
+ .reset_us = 1,
+};
+
+static const struct onboard_hub_data usb5744_data = {
+ .power_on_delay_us = 10000,
+ .reset_us = 10000,
+};
+
static const struct udevice_id usb_onboard_hub_ids[] = {
/* Use generic usbVID,PID dt-bindings (usb-device.yaml) */
- { .compatible = "usb424,2514" }, /* USB2514B USB 2.0 */
- { }
+ { .compatible = "usb424,2514", /* USB2514B USB 2.0 */
+ .data = (ulong)&usb2514_data,
This ^ hub has to be updated in 1/7 , otherwise if only 1/7 is applied (e.g.
during
bisect), this hub reset will be operated out of specification.
Also, looking at the USB2514 datasheet figure 5-3, it seems the hub needs
t4=500us
recovery time in SMBus mode. Does that mean usb2514_data .power_on_delay_us
= 500 is missing too ?
Also, it seems t_rstio is 5us in USB5477 datasheet figure 10-4 , where do these
10000us figures above come from ?
We were seeing i2c failures when we update the reset delay and power on delay
values mentioned from the datasheet so updated to 10000us, the linux reference
is below
https://github.com/torvalds/linux/commit/908f61bedb2c40c6d856bbfd7f870b967a4cb498
Is there a matching delay requirement specified in the USB hub datasheet
or is this a workaround for some board-specific behavior ?