diff options
author | Hauke Mehrtens <hauke@hauke-m.de> | 2013-02-13 16:05:32 +0000 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2013-02-13 16:05:32 +0000 |
commit | 17c18e23abc68753fb30d3bafd2faaa9889da0ce (patch) | |
tree | aa9f2e75e8f920135ec3684580f5e3e07cc250ba | |
parent | 446414f36778b7f7219e9a84a6fbd3060f6af321 (diff) | |
download | upstream-17c18e23abc68753fb30d3bafd2faaa9889da0ce.tar.gz upstream-17c18e23abc68753fb30d3bafd2faaa9889da0ce.tar.bz2 upstream-17c18e23abc68753fb30d3bafd2faaa9889da0ce.zip |
switch: add support for BCM53125
SVN-Revision: 35586
-rw-r--r-- | package/switch/src/switch-robo.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/package/switch/src/switch-robo.c b/package/switch/src/switch-robo.c index 2aacc36663..57240a3fd0 100644 --- a/package/switch/src/switch-robo.c +++ b/package/switch/src/switch-robo.c @@ -63,6 +63,7 @@ #define ROBO_DEVICE_ID_5397 0x97 #define ROBO_DEVICE_ID_5398 0x98 #define ROBO_DEVICE_ID_53115 0x3115 +#define ROBO_DEVICE_ID_53125 0x3125 /* Private et.o ioctls */ #define SIOCGETCPHYRD (SIOCDEVPRIVATE + 9) @@ -248,6 +249,13 @@ static int robo_switch_enable(void) robo_write16(ROBO_CTRL_PAGE, ROBO_IM_PORT_CTRL, 0); } + if (robo.devid == ROBO_DEVICE_ID_53125) { + /* Make IM port status link by default */ + val = robo_read16(ROBO_CTRL_PAGE, ROBO_PORT_OVERRIDE_CTRL) | 0xb1; + robo_write16(ROBO_CTRL_PAGE, ROBO_PORT_OVERRIDE_CTRL, val); + // TODO: init EEE feature + } + #ifdef CONFIG_BCM47XX /* WAN port LED, except for Netgear WGT634U */ if (bcm47xx_nvram_getenv("nvram_type", buf, sizeof(buf)) >= 0) { @@ -486,7 +494,8 @@ static int handle_vlan_port_read_new(switch_driver *d, char *buf, int nr) int j; if ((robo.devid == ROBO_DEVICE_ID_5395) || - (robo.devid == ROBO_DEVICE_ID_53115)) { + (robo.devid == ROBO_DEVICE_ID_53115) || + (robo.devid == ROBO_DEVICE_ID_53125)) { vtbl_access = ROBO_VTBL_ACCESS_5395; vtbl_index = ROBO_VTBL_INDX_5395; vtbl_entry = ROBO_VTBL_ENTRY_5395; @@ -557,7 +566,8 @@ static void handle_vlan_port_write_new(switch_driver *d, switch_vlan_config *c, /* write config now */ if ((robo.devid == ROBO_DEVICE_ID_5395) || - (robo.devid == ROBO_DEVICE_ID_53115)) { + (robo.devid == ROBO_DEVICE_ID_53115) || + (robo.devid == ROBO_DEVICE_ID_53125)) { vtbl_access = ROBO_VTBL_ACCESS_5395; vtbl_index = ROBO_VTBL_INDX_5395; vtbl_entry = ROBO_VTBL_ENTRY_5395; @@ -741,7 +751,8 @@ static void handle_reset_new(switch_driver *d, char *buf, int nr) __u8 vtbl_entry, vtbl_index, vtbl_access; if ((robo.devid == ROBO_DEVICE_ID_5395) || - (robo.devid == ROBO_DEVICE_ID_53115)) { + (robo.devid == ROBO_DEVICE_ID_53115) || + (robo.devid == ROBO_DEVICE_ID_53125)) { vtbl_access = ROBO_VTBL_ACCESS_5395; vtbl_index = ROBO_VTBL_INDX_5395; vtbl_entry = ROBO_VTBL_ENTRY_5395; |