[LEDE-DEV] [PATCH 2/3] brcm47xx: resolve GPIO conflict for WRT54GSv1

Mirko Parthey mirko.parthey at web.de
Thu May 18 12:49:03 PDT 2017


On the Linksys WRT54GSv1, the adm6996 switch driver and the
gpio_button_hotplug module both claim GPIO 6, which is connected to the
Reset button.  When the switch driver's request wins, the Reset button
cannot work. This makes it impossible to enter failsafe mode without a
serial console.

Stop requesting the "adm_rc" GPIO in the switch driver, since it is not
used anywhere.

Fixes FS#792.

Signed-off-by: Mirko Parthey <mirko.parthey at web.de>
---
 target/linux/generic/files/drivers/net/phy/adm6996.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/target/linux/generic/files/drivers/net/phy/adm6996.c b/target/linux/generic/files/drivers/net/phy/adm6996.c
index 25776b836651..0a1b303ab1c0 100644
--- a/target/linux/generic/files/drivers/net/phy/adm6996.c
+++ b/target/linux/generic/files/drivers/net/phy/adm6996.c
@@ -1154,12 +1154,13 @@ static int adm6996_gpio_probe(struct platform_device *pdev)
 	ret = devm_gpio_request(&pdev->dev, priv->eedi, "adm_eedi");
 	if (ret)
 		return ret;
-	ret = devm_gpio_request(&pdev->dev, priv->eerc, "adm_eerc");
-	if (ret)
-		return ret;
 	ret = devm_gpio_request(&pdev->dev, priv->eesk, "adm_eesk");
 	if (ret)
 		return ret;
+	/*
+	 * We do not request the "adm_rc" GPIO here. The driver does not use it,
+	 * and it conflicts with the Reset button GPIO on the Linksys WRT54GSv1.
+	 */
 
 	ret = adm6996_switch_init(priv, dev_name(&pdev->dev), NULL);
 	if (ret < 0)
-- 
2.1.4




More information about the Lede-dev mailing list