kernel: b53: use hard coded switch reset gpio on some boards.
authorhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 14 Sep 2013 16:17:36 +0000 (16:17 +0000)
committerhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 14 Sep 2013 16:17:36 +0000 (16:17 +0000)
The Linksys wrt310n v1 does not have a robo_reset config variable in
nvram, but GPIO Pin 8 is the pin needed for resetting the external
switch, Linksys hard coded it into their source code.

Thank you Devastator for testing.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37988 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/generic/files/drivers/net/phy/b53/b53_priv.h

index 308a729..60f6bf9 100644 (file)
@@ -286,14 +286,22 @@ static inline int b53_write64(struct b53_device *dev, u8 page, u8 reg,
 #ifdef CONFIG_BCM47XX
 
 #include <bcm47xx_nvram.h>
+#include <bcm47xx_board.h>
 static inline int b53_switch_get_reset_gpio(struct b53_device *dev)
 {
-       return bcm47xx_nvram_gpio_pin("robo_reset");
+       enum bcm47xx_board board = bcm47xx_board_get();
+
+       switch (board) {
+       case BCM47XX_BOARD_LINKSYS_WRT310NV1:
+               return 8;
+       default:
+               return bcm47xx_nvram_gpio_pin("robo_reset");
+       }
 }
 #else
 static inline int b53_switch_get_reset_gpio(struct b53_device *dev)
 {
-       return -ENOENT;
+       return -ENOENT;
 }
 #endif
 #endif