Changeset 24340


Ignore:
Timestamp:
2010-12-08T11:15:33+01:00 (7 years ago)
Author:
juhosg
Message:

ramips: ramips_esw: add more definitions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ramips/files/drivers/net/ramips_esw.c

    r24339 r24340  
    3838#define RT305X_ESW_VMSC_MSC_S           8 
    3939 
     40#define RT305X_ESW_SOCPC_DISUN2CPU_S    0 
     41#define RT305X_ESW_SOCPC_DISMC2CPU_S    8 
     42#define RT305X_ESW_SOCPC_DISBC2CPU_S    16 
     43#define RT305X_ESW_SOCPC_CRC_PADDING    BIT(25) 
     44 
     45#define RT305X_ESW_POC1_EN_BP_S         0 
     46#define RT305X_ESW_POC1_EN_FC_S         8 
     47#define RT305X_ESW_POC1_DIS_RMC2CPU_S   16 
     48#define RT305X_ESW_POC1_DIS_PORT_S      23 
     49 
     50#define RT305X_ESW_POC3_UNTAG_EN_S      0 
     51#define RT305X_ESW_POC3_ENAGING_S       8 
     52#define RT305X_ESW_POC3_DIS_UC_PAUSE_S  16 
     53 
    4054#define RT305X_ESW_PORT0                0 
    4155#define RT305X_ESW_PORT1                1 
     
    4559#define RT305X_ESW_PORT5                5 
    4660#define RT305X_ESW_PORT6                6 
     61 
     62#define RT305X_ESW_PORTS_INTERNAL                                       \ 
     63                (BIT(RT305X_ESW_PORT0) | BIT(RT305X_ESW_PORT1) |        \ 
     64                 BIT(RT305X_ESW_PORT2) | BIT(RT305X_ESW_PORT3) |        \ 
     65                 BIT(RT305X_ESW_PORT4)) 
     66 
     67#define RT305X_ESW_PORTS_NOCPU  \ 
     68                (RT305X_ESW_PORTS_INTERNAL | BIT(RT305X_ESW_PORT5)) 
     69 
     70#define RT305X_ESW_PORTS_CPU    BIT(RT305X_ESW_PORT6) 
     71 
     72#define RT305X_ESW_PORTS_ALL    \ 
     73                (RT305X_ESW_PORTS_NOCPU | RT305X_ESW_PORTS_CPU) 
    4774 
    4875struct rt305x_esw { 
     
    171198        rt305x_esw_wr(esw, 0x00000000, RT305X_ESW_REG_SGC2); 
    172199        rt305x_esw_wr(esw, 0x00405555, RT305X_ESW_REG_PFC1); 
    173         rt305x_esw_wr(esw, 0x00007f7f, RT305X_ESW_REG_POC1); 
    174         rt305x_esw_wr(esw, 0x00007f3f, RT305X_ESW_REG_POC3); 
     200 
     201        /* Enable Back Pressure, and Flow Control */ 
     202        rt305x_esw_wr(esw, 
     203                      ((RT305X_ESW_PORTS_ALL << RT305X_ESW_POC1_EN_BP_S) | 
     204                       (RT305X_ESW_PORTS_ALL << RT305X_ESW_POC1_EN_FC_S)), 
     205                      RT305X_ESW_REG_POC1); 
     206 
     207        /* Enable Aging, and VLAN TAG removal */ 
     208        rt305x_esw_wr(esw, 
     209                      ((RT305X_ESW_PORTS_ALL << RT305X_ESW_POC3_ENAGING_S) | 
     210                       (RT305X_ESW_PORTS_NOCPU << RT305X_ESW_POC3_UNTAG_EN_S)), 
     211                      RT305X_ESW_REG_POC3); 
     212 
    175213        rt305x_esw_wr(esw, 0x00d6500c, RT305X_ESW_REG_FCT2); 
    176214        rt305x_esw_wr(esw, 0x0008a301, RT305X_ESW_REG_SGC); 
    177         rt305x_esw_wr(esw, 0x02404040, RT305X_ESW_REG_SOCPC); 
     215 
     216        /* Setup SoC Port control register */ 
     217        rt305x_esw_wr(esw, 
     218                      (RT305X_ESW_SOCPC_CRC_PADDING | 
     219                       (RT305X_ESW_PORTS_CPU << RT305X_ESW_SOCPC_DISUN2CPU_S) | 
     220                       (RT305X_ESW_PORTS_CPU << RT305X_ESW_SOCPC_DISMC2CPU_S) | 
     221                       (RT305X_ESW_PORTS_CPU << RT305X_ESW_SOCPC_DISBC2CPU_S)), 
     222                      RT305X_ESW_REG_SOCPC); 
     223 
    178224        rt305x_esw_set_pvid(esw, RT305X_ESW_PORT4, 2); 
    179225        rt305x_esw_set_pvid(esw, RT305X_ESW_PORT5, 1); 
Note: See TracChangeset for help on using the changeset viewer.