allow kmod-switch to be used on brcm63xx (#4599)

SVN-Revision: 14825
owl
Florian Fainelli 2009-03-09 21:57:11 +00:00
parent ea601ebe33
commit 04909ca614
3 changed files with 14 additions and 4 deletions

View File

@ -16,7 +16,7 @@ include $(INCLUDE_DIR)/package.mk
define KernelPackage/switch define KernelPackage/switch
SUBMENU:=Other modules SUBMENU:=Other modules
DEPENDS:=@TARGET_brcm_2_4||TARGET_brcm47xx DEPENDS:=@TARGET_brcm_2_4||TARGET_brcm47xx||TARGET_brcm63xx
TITLE:=Switch drivers TITLE:=Switch drivers
FILES:= \ FILES:= \
$(PKG_BUILD_DIR)/switch-core.$(LINUX_KMOD_SUFFIX) \ $(PKG_BUILD_DIR)/switch-core.$(LINUX_KMOD_SUFFIX) \

View File

@ -11,7 +11,15 @@
#ifdef BROADCOM #ifdef BROADCOM
#include "gpio-bcm947xx.h" #include "gpio-bcm947xx.h"
#else #else
#error "Unsupported configuration." #warning "Unsupported configuration."
#define gpio_in() (-1U)
#define gpio_out(mask, value) (-1U)
#define gpio_outen(mask, value) (-1U)
#define gpio_control(mask, value) (-1U)
#define gpio_intmask(mask, value) (-1U)
#define gpio_intpolarity(mask, value) (-1U)
#endif #endif
#endif /* __GPIO_H */ #endif /* __GPIO_H */

View File

@ -41,6 +41,7 @@
#define ROBO_PHY_ADDR 0x1E /* robo switch phy address */ #define ROBO_PHY_ADDR 0x1E /* robo switch phy address */
#define ROBO_PHY_ADDR_TG3 0x01 /* Tigon3 PHY address */ #define ROBO_PHY_ADDR_TG3 0x01 /* Tigon3 PHY address */
#define ROBO_PHY_ADDR_BCM63XX 0x00 /* BCM63XX PHY address */
/* MII registers */ /* MII registers */
#define REG_MII_PAGE 0x10 /* MII Page register */ #define REG_MII_PAGE 0x10 /* MII Page register */
@ -318,13 +319,14 @@ static int robo_probe(char *devname)
/* got phy address check for robo address */ /* got phy address check for robo address */
struct mii_ioctl_data *mii = (struct mii_ioctl_data *) &robo.ifr.ifr_data; struct mii_ioctl_data *mii = (struct mii_ioctl_data *) &robo.ifr.ifr_data;
if ((mii->phy_id != ROBO_PHY_ADDR) && if ((mii->phy_id != ROBO_PHY_ADDR) &&
(mii->phy_id != ROBO_PHY_ADDR_BCM63XX) &&
(mii->phy_id != ROBO_PHY_ADDR_TG3)) { (mii->phy_id != ROBO_PHY_ADDR_TG3)) {
printk("Invalid phy address (%d)\n", mii->phy_id); printk("Invalid phy address (%d)\n", mii->phy_id);
return 1; return 1;
} }
robo.use_et = 0; robo.use_et = 0;
/* The robo has a fixed PHY address that is different from the /* The robo has a fixed PHY address that is different from the
* Tigon3 PHY address. */ * Tigon3 and BCM63xx PHY address. */
robo.phy_addr = ROBO_PHY_ADDR; robo.phy_addr = ROBO_PHY_ADDR;
} }
@ -332,7 +334,7 @@ static int robo_probe(char *devname)
(mdio_read(robo.phy_addr, 0x3) << 16); (mdio_read(robo.phy_addr, 0x3) << 16);
if (phyid == 0xffffffff || phyid == 0x55210022) { if (phyid == 0xffffffff || phyid == 0x55210022) {
printk("No Robo switch in managed mode found\n"); printk("No Robo switch in managed mode found, phy_id = 0x%08x\n", phyid);
return 1; return 1;
} }