
On 11/19/24 4:22 AM, Abbarapu, Venkatesh wrote:
[...]
Is there a matching delay requirement specified in the USB hub datasheet or is this a workaround for some board-specific behavior ?
The matching delay is not specified in the USB5744 hub document, but based on
testing on 2 boards with the above-mentioned delay i2c failures were not
observed.
Is this 10ms a board-specific reset delay ? Why is it in a generic driver ?
On our boards we observed i2c failures when we set the reset delay as 5us and power on delay as 1ms as per the USB5744 datasheet. The reason of adding 10ms delay is because of i2c failures and the linux reference is https://github.com/torvalds/linux/commit/908f61bedb2c40c6d856bbfd7f870 b967a4cb498 Do you have anything with respect to these delays, as you might have tested on some other boards? If anything, please let me know.
If the 10ms delay is a board specific delay, then this has to be handled in a board specific way, not hard-coded in the driver. Probably add some new property which specifies the extra board specific reset delay, but be sure to run that property by the Linux kernel maintainers too.
Thanks. I will check how to add the board specific delay as new property.
Add some reset-...-us , similar to what ethernet PHYs already do in DT.
As this delay might be specific to the boards which we tested. There won't be any issue if we can add the default "reset_delay"(5us) and "power_on_delay" (1ms) from the USB5744 datasheet, as other boards will be working without any board specific delay?
Right, the driver has to be generic , that means it should contain delays specified in the datasheet. Board specific delays have to be configured in board specific DTs.