[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <AM0PR02MB5524BDEBE80C82BC689C3DD6BDAF9@AM0PR02MB5524.eurprd02.prod.outlook.com>
Date: Mon, 27 Feb 2023 19:44:09 +0000
From: Paul Geurts <paul.geurts@...drive-technologies.com>
To: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: [PATCH 4/4] net: dsa: b53: mdio: Add optional reset gpio
Some Broadcom Ethernet switch devices feature a reset pin driven by GPIO.
Provide the option to specify a reset gpio.
Signed-off-by: Paul Geurts <paul.geurts@...drive-technologies.com>
---
drivers/net/dsa/b53/b53_mdio.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/net/dsa/b53/b53_mdio.c b/drivers/net/dsa/b53/b53_mdio.c index 8b422b298cd5..32af5881834c 100644
--- a/drivers/net/dsa/b53/b53_mdio.c
+++ b/drivers/net/dsa/b53/b53_mdio.c
@@ -22,6 +22,7 @@
#include <linux/delay.h>
#include <linux/brcmphy.h>
#include <linux/rtnetlink.h>
+#include <linux/gpio/consumer.h>
#include <net/dsa.h>
#include "b53_priv.h"
@@ -303,6 +304,14 @@ static int b53_mdio_probe(struct mdio_device *mdiodev)
return -ENODEV;
}
+ /* Try to get a reset GPIO and get the switch out of reset when its there */
+ mdiodev->reset_gpio = devm_gpiod_get_optional(&mdiodev->dev, "reset", GPIOD_OUT_HIGH);
+ if (mdiodev->reset_gpio) {
+ mdelay(50);
+ gpiod_set_value(mdiodev->reset_gpio, 0);
+ mdelay(50);
+ }
+
/* read the first port's id */
phy_id = mdiobus_read(mdiodev->bus, 0, 2) << 16;
phy_id |= mdiobus_read(mdiodev->bus, 0, 3);
--
2.30.2
Powered by blists - more mailing lists