Messages in this thread Patch in this message | | | From | Paul Geurts <> | Subject | [PATCH 4/4] net: dsa: b53: mdio: Add optional reset gpio | Date | Mon, 27 Feb 2023 19:44:09 +0000 |
| |
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@prodrive-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
| |