From: DENG Qingfang <dengqf6@mail2.sysu.edu.cn> Date: Thu, 31 Oct 2019 15:33:41 +0000 (+0800) Subject: ipq40xx: mdio: remove support for phy-reset-gpio X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=6abce4d5e4c06156928929e69864056b482b64f5;p=openwrt%2Fstaging%2Fxback.git ipq40xx: mdio: remove support for phy-reset-gpio Commit 6f6c00cfc95f ("ipq40xx: Add support for Unielec U4019") has introduced support for `phy-reset-gpio` DT property, which isn't needed as the MDIO already supports `reset-gpios`[1] which could be used instead. 1. https://elixir.bootlin.com/linux/v4.19.81/source/Documentation/devicetree/bindings/net/mdio.txt Ref: PR#2511 Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn> [commit title and description facelift] Signed-off-by: Petr Štetiar <ynezz@true.cz> --- diff --git a/target/linux/ipq40xx/patches-4.19/700-net-add-qualcomm-mdio.patch b/target/linux/ipq40xx/patches-4.19/700-net-add-qualcomm-mdio.patch index c27d19fc16..e939597b8e 100644 --- a/target/linux/ipq40xx/patches-4.19/700-net-add-qualcomm-mdio.patch +++ b/target/linux/ipq40xx/patches-4.19/700-net-add-qualcomm-mdio.patch @@ -1,15 +1,3 @@ -From 234d6f40fb4b771b396b45a9492aab463771bd0b Mon Sep 17 00:00:00 2001 -From: Kristian Evensen <kristian.evensen@gmail.com> -Date: Tue, 6 Aug 2019 11:42:57 +0200 -Subject: [PATCH] phy: Add ipq40xx mdio driver - ---- - drivers/net/phy/Kconfig | 7 + - drivers/net/phy/Makefile | 1 + - drivers/net/phy/mdio-ipq40xx.c | 247 +++++++++++++++++++++++++++++++++ - 3 files changed, 255 insertions(+) - create mode 100644 drivers/net/phy/mdio-ipq40xx.c - --- a/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig @@ -519,6 +519,13 @@ config XILINX_GMII2RGMII @@ -38,7 +26,7 @@ Subject: [PATCH] phy: Add ipq40xx mdio driver obj-$(CONFIG_MDIO_OCTEON) += mdio-octeon.o --- /dev/null +++ b/drivers/net/phy/mdio-ipq40xx.c -@@ -0,0 +1,247 @@ +@@ -0,0 +1,196 @@ +/* + * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. + * @@ -61,10 +49,8 @@ Subject: [PATCH] phy: Add ipq40xx mdio driver +#include <linux/io.h> +#include <linux/of_address.h> +#include <linux/of_mdio.h> -+#include <linux/of_gpio.h> +#include <linux/phy.h> +#include <linux/platform_device.h> -+#include <linux/gpio.h> + +#define MDIO_CTRL_0_REG 0x40 +#define MDIO_CTRL_1_REG 0x44 @@ -164,60 +150,11 @@ Subject: [PATCH] phy: Add ipq40xx mdio driver + return 0; +} + -+static int ipq40xx_phy_reset(struct platform_device *pdev) -+{ -+ struct device_node *mdio_node; -+ int phy_reset_gpio_number; -+ int ret; -+ -+ mdio_node = of_find_node_by_name(NULL, "mdio"); -+ if (!mdio_node) { -+ dev_err(&pdev->dev, "Could not find mdio node\n"); -+ return 0; -+ } -+ -+ ret = of_get_named_gpio(mdio_node, "phy-reset-gpio", 0); -+ if (ret < 0) { -+ dev_err(&pdev->dev, "Could not find phy-reset-gpio\n"); -+ return 0; -+ } -+ -+ phy_reset_gpio_number = ret; -+ -+ ret = gpio_request(phy_reset_gpio_number, "phy-reset-gpio"); -+ if (ret) { -+ dev_err(&pdev->dev, "Can't get phy-reset-gpio %d\n", ret); -+ return ret; -+ } -+ -+ ret = gpio_direction_output(phy_reset_gpio_number, 0x0); -+ if (ret) { -+ dev_err(&pdev->dev, -+ "Can't set direction for phy-reset-gpio %d\n", ret); -+ goto phy_reset_out; -+ } -+ -+ usleep_range(1000, 10005); -+ -+ gpio_set_value(phy_reset_gpio_number, 0x01); -+ -+phy_reset_out: -+ gpio_free(phy_reset_gpio_number); -+ -+ return ret; -+} -+ +static int ipq40xx_mdio_probe(struct platform_device *pdev) +{ + struct ipq40xx_mdio_data *am; + struct resource *res; -+ int i, ret; -+ -+ ret = ipq40xx_phy_reset(pdev); -+ if (ret) { -+ dev_err(&pdev->dev, "Could not find qca8075 reset gpio\n"); -+ return -ENODEV; -+ } ++ int i; + + am = devm_kzalloc(&pdev->dev, sizeof(*am), GFP_KERNEL); + if (!am)