From 18bfc8fa84cd6d748c134b6265786f7d8226f86c Mon Sep 17 00:00:00 2001 From: Aditya Prayoga Date: Wed, 5 Dec 2018 00:39:23 +0800 Subject: [PATCH] net: mvneta: Add GPIO configuration support This patch add GPIO configuration support in mvneta driver. Driver will handle PHY reset. GPIO pins should be set in device tree. Ported from mvpp2x [https://patchwork.ozlabs.org/patch/799654/] Initial discussion to port the changes into mvneta [https://patchwork.ozlabs.org/patch/1005765/] Signed-off-by: Aditya Prayoga Tested-by: Dennis Gilmore Reviewed-by: Stefan Roese Acked-by: Joe Hershberger --- drivers/net/mvneta.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/net/mvneta.c b/drivers/net/mvneta.c index 8cb04b5..333be8f 100644 --- a/drivers/net/mvneta.c +++ b/drivers/net/mvneta.c @@ -27,6 +27,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; @@ -274,6 +275,9 @@ struct mvneta_port { int init; int phyaddr; struct phy_device *phydev; +#ifdef CONFIG_DM_GPIO + struct gpio_desc phy_reset_gpio; +#endif struct mii_dev *bus; }; @@ -1749,6 +1753,17 @@ static int mvneta_probe(struct udevice *dev) if (ret) return ret; +#ifdef CONFIG_DM_GPIO + gpio_request_by_name(dev, "phy-reset-gpios", 0, + &pp->phy_reset_gpio, GPIOD_IS_OUT); + + if (dm_gpio_is_valid(&pp->phy_reset_gpio)) { + dm_gpio_set_value(&pp->phy_reset_gpio, 1); + mdelay(10); + dm_gpio_set_value(&pp->phy_reset_gpio, 0); + } +#endif + return board_network_enable(bus); } -- 2.7.4