Changeset 27990


Ignore:
Timestamp:
2011-08-15T16:11:43+02:00 (5 years ago)
Author:
juhosg
Message:

ramips: allow to specify port layout for the switch of the RT305x/RT3350

Based on a patch by Roman Yeryomin <roman@…>

Location:
trunk/target/linux/ramips/files
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/rt305x_esw_platform.h

    r24331 r27990  
    1212#define _RT305X_ESW_PLATFORM_H 
    1313 
     14enum { 
     15        RT305X_ESW_VLAN_CONFIG_NONE = 0, 
     16        RT305X_ESW_VLAN_CONFIG_LLLLW, 
     17        RT305X_ESW_VLAN_CONFIG_WLLLL, 
     18}; 
     19 
    1420struct rt305x_esw_platform_data 
    1521{ 
     22        u8 vlan_config; 
    1623}; 
    1724 
  • trunk/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-300-revb.c

    r27808 r27990  
    111111 
    112112        rt305x_register_flash(0, &dir_300b_flash_data); 
     113        rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW; 
    113114        rt305x_register_ethernet(); 
    114115        ramips_register_gpio_leds(-1, ARRAY_SIZE(dir_300b_leds_gpio), 
  • trunk/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-f5d8235-v2.c

    r27754 r27990  
    133133        ramips_register_gpio_leds(-1, ARRAY_SIZE(f5d8235v2_leds_gpio), 
    134134                                                f5d8235v2_leds_gpio); 
     135        rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_NONE; 
    135136        rt305x_register_ethernet(); 
    136137        platform_device_register(&f5d8235v2_switch); 
  • trunk/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-fonera20n.c

    r27383 r27990  
    119119                                     fonera20n_gpio_buttons); 
    120120 
     121        rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW; 
    121122        rt305x_register_ethernet(); 
    122123        rt305x_register_wifi(); 
  • trunk/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-hw550-3g.c

    r27378 r27990  
    128128 
    129129        rt305x_register_flash(0, &hw550_3g_flash_data); 
     130        rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW; 
    130131        rt305x_register_ethernet(); 
    131132        ramips_register_gpio_leds(-1, ARRAY_SIZE(hw550_3g_leds_gpio), 
  • trunk/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-mofi3500-3gn.c

    r26466 r27990  
    128128 
    129129        rt305x_register_flash(0, &mofi3500_3gn_flash_data); 
     130        rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW; 
    130131        rt305x_register_ethernet(); 
    131132        ramips_register_gpio_leds(-1, ARRAY_SIZE(mofi3500_3gn_leds_gpio), 
  • trunk/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-nw718.c

    r27813 r27990  
    130130                         RT305X_GPIO_MODE_GPIO << RT305X_GPIO_MODE_UART0_SHIFT); 
    131131 
     132        rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW; 
    132133        rt305x_register_ethernet(); 
    133134        ramips_register_gpio_leds(-1, ARRAY_SIZE(nw718_leds_gpio), 
  • trunk/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-pwh2004.c

    r27383 r27990  
    9696                                     ARRAY_SIZE(pwh2004_gpio_buttons), 
    9797                                     pwh2004_gpio_buttons); 
     98        rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW; 
    9899        rt305x_register_ethernet(); 
    99100        rt305x_register_wifi(); 
  • trunk/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-rt-g32-revb.c

    r27812 r27990  
    104104                            ARRAY_SIZE(rt_g32b_spi_slave_info)); 
    105105 
     106        rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW; 
    106107        rt305x_register_ethernet(); 
    107108        ramips_register_gpio_buttons(-1, RT_G32B_BUTTONS_POLL_INTERVAL, 
  • trunk/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-v22rw-2x2.c

    r27383 r27990  
    105105 
    106106        rt305x_register_flash(0, &v22rw_2x2_flash_data); 
     107        rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW; 
    107108        rt305x_register_ethernet(); 
    108109        ramips_register_gpio_leds(-1, ARRAY_SIZE(v22rw_2x2_leds_gpio), 
  • trunk/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-wcr150gn.c

    r27387 r27990  
    6161        rt305x_gpio_init(RT305X_GPIO_MODE_GPIO << RT305X_GPIO_MODE_UART0_SHIFT); 
    6262        rt305x_register_flash(0, &wcr150gn_flash_data); 
     63        rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW; 
    6364        rt305x_register_ethernet(); 
    6465        rt305x_register_wifi(); 
  • trunk/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-whr-g300n.c

    r27383 r27990  
    131131 
    132132        rt305x_register_flash(0, &whr_g300n_flash_data); 
     133        rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW; 
    133134        rt305x_register_ethernet(); 
    134135        ramips_register_gpio_leds(-1, ARRAY_SIZE(whr_g300n_leds_gpio), 
  • trunk/target/linux/ramips/files/drivers/net/ramips_esw.c

    r27382 r27990  
    7373                (RT305X_ESW_PORTS_NOCPU | RT305X_ESW_PORTS_CPU) 
    7474 
     75#define RT305X_ESW_NUM_VLANS    16 
     76#define RT305X_ESW_NUM_PORTS    7 
     77 
    7578struct rt305x_esw { 
    7679        void __iomem *base; 
     
    222225                      RT305X_ESW_REG_SOCPC); 
    223226 
    224         rt305x_esw_set_pvid(esw, RT305X_ESW_PORT4, 2); 
    225         rt305x_esw_set_pvid(esw, RT305X_ESW_PORT5, 1); 
    226227        rt305x_esw_wr(esw, 0x3f502b28, RT305X_ESW_REG_FPA2); 
    227228        rt305x_esw_wr(esw, 0x00000000, RT305X_ESW_REG_FPA); 
     
    253254        rt305x_mii_write(esw, 0, 31, 0x8000); 
    254255 
    255         /* set default vlan */ 
    256         rt305x_esw_set_vlan_id(esw, 0, 1); 
    257         rt305x_esw_set_vlan_id(esw, 1, 2); 
    258         rt305x_esw_set_vmsc(esw, 0, 
    259                             (BIT(RT305X_ESW_PORT0) | BIT(RT305X_ESW_PORT1) | 
    260                              BIT(RT305X_ESW_PORT2) | BIT(RT305X_ESW_PORT3) | 
    261                              BIT(RT305X_ESW_PORT6))); 
    262         rt305x_esw_set_vmsc(esw, 1, 
    263                             (BIT(RT305X_ESW_PORT4) | BIT(RT305X_ESW_PORT6))); 
    264         rt305x_esw_set_vmsc(esw, 2, 0); 
    265         rt305x_esw_set_vmsc(esw, 3, 0); 
     256        for (i = 0; i < RT305X_ESW_NUM_VLANS; i++) { 
     257                rt305x_esw_set_vlan_id(esw, i, 0); 
     258                rt305x_esw_set_vmsc(esw, i, 0); 
     259        } 
     260 
     261        for (i = 0; i < RT305X_ESW_NUM_PORTS; i++) 
     262                rt305x_esw_set_pvid(esw, i, 1); 
     263 
     264        switch (esw->pdata->vlan_config) { 
     265        case RT305X_ESW_VLAN_CONFIG_NONE: 
     266                break; 
     267 
     268        case RT305X_ESW_VLAN_CONFIG_LLLLW: 
     269                rt305x_esw_set_vlan_id(esw, 0, 1); 
     270                rt305x_esw_set_vlan_id(esw, 1, 2); 
     271                rt305x_esw_set_pvid(esw, RT305X_ESW_PORT4, 2); 
     272 
     273                rt305x_esw_set_vmsc(esw, 0, 
     274                                BIT(RT305X_ESW_PORT0) | BIT(RT305X_ESW_PORT1) | 
     275                                BIT(RT305X_ESW_PORT2) | BIT(RT305X_ESW_PORT3) | 
     276                                BIT(RT305X_ESW_PORT6)); 
     277                rt305x_esw_set_vmsc(esw, 1, 
     278                                BIT(RT305X_ESW_PORT4) | BIT(RT305X_ESW_PORT6)); 
     279                break; 
     280 
     281        case RT305X_ESW_VLAN_CONFIG_WLLLL: 
     282                rt305x_esw_set_vlan_id(esw, 0, 1); 
     283                rt305x_esw_set_vlan_id(esw, 1, 2); 
     284                rt305x_esw_set_pvid(esw, RT305X_ESW_PORT0, 2); 
     285 
     286                rt305x_esw_set_vmsc(esw, 0, 
     287                                BIT(RT305X_ESW_PORT1) | BIT(RT305X_ESW_PORT2) | 
     288                                BIT(RT305X_ESW_PORT3) | BIT(RT305X_ESW_PORT4) | 
     289                                BIT(RT305X_ESW_PORT6)); 
     290                rt305x_esw_set_vmsc(esw, 1, 
     291                                BIT(RT305X_ESW_PORT0) | BIT(RT305X_ESW_PORT6)); 
     292                break; 
     293 
     294        default: 
     295                BUG(); 
     296        } 
    266297} 
    267298 
Note: See TracChangeset for help on using the changeset viewer.