mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH 1/3] net: dsa: ksz9477: always toggle reset gpio if available
@ 2024-05-02 15:17 Ahmad Fatoum
  2024-05-02 15:17 ` [PATCH 2/3] net: dsa: ksz9477: report 0 as value when returning error Ahmad Fatoum
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Ahmad Fatoum @ 2024-05-02 15:17 UTC (permalink / raw)
  To: barebox; +Cc: Ahmad Fatoum

The barebox driver currently only ensures that the switch is out of
reset, but doesn't actually trigger a reset pulse.

The Linux driver, on the other hand, holds reset active for 10ms and
then waits a whopping 100ms after reset deassertion.

This seems excessive by a thousandfold for at least KSZ9893R[1], whose
datasheet states:

  After the de-assertion of reset, it is recommended to wait a minimum of
  100µs before starting to program the device through any interface.

Therefore, let's pulse the reset like Linux does and give the switch 100
microseconds before continuing with the driver probe.

[1]: DS00002420E-page 176

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 drivers/net/ksz9477.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ksz9477.c b/drivers/net/ksz9477.c
index 1abea9d04017..5c5f4ec8d995 100644
--- a/drivers/net/ksz9477.c
+++ b/drivers/net/ksz9477.c
@@ -433,8 +433,10 @@ static int microchip_switch_probe(struct device *dev)
 	if (IS_ERR(gpio)) {
 		dev_warn(dev, "Failed to get 'reset' GPIO (ignored)\n");
 	} else if (gpio) {
-		mdelay(1);
+		gpiod_set_value(gpio, true);
+		mdelay(10);
 		gpiod_set_value(gpio, false);
+		udelay(100);
 	}
 
 	ksz_reset_switch(dev->priv);
-- 
2.39.2




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-05-03  6:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-02 15:17 [PATCH 1/3] net: dsa: ksz9477: always toggle reset gpio if available Ahmad Fatoum
2024-05-02 15:17 ` [PATCH 2/3] net: dsa: ksz9477: report 0 as value when returning error Ahmad Fatoum
2024-05-02 15:17 ` [PATCH 3/3] net: dsa: ksz9477: return negative error codes on PHY access failures Ahmad Fatoum
2024-05-02 15:19 ` [PATCH 1/3] net: dsa: ksz9477: always toggle reset gpio if available Ahmad Fatoum
2024-05-03  6:50 ` Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox