From 17c18e23abc68753fb30d3bafd2faaa9889da0ce Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Wed, 13 Feb 2013 16:05:32 +0000 Subject: switch: add support for BCM53125 SVN-Revision: 35586 --- package/switch/src/switch-robo.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'package') 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; -- cgit v1.2.3