Changeset 16644


Ignore:
Timestamp:
2009-07-01T21:32:48+02:00 (7 years ago)
Author:
juhosg
Message:

[ar71xx] add AR7240 specific definitions

Location:
trunk/target/linux/ar71xx/files/arch/mips
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/setup.c

    r16588 r16644  
    104104static void __init ar71xx_detect_sys_type(void) 
    105105{ 
    106         char *chip; 
     106        char *chip = "????"; 
    107107        u32 id; 
    108         u32 rev; 
    109  
    110         id = ar71xx_reset_rr(AR71XX_RESET_REG_REV_ID) & REV_ID_MASK; 
    111         rev = (id >> REV_ID_REVISION_SHIFT) & REV_ID_REVISION_MASK; 
    112  
    113         switch (id & REV_ID_CHIP_MASK) { 
    114         case REV_ID_CHIP_AR7130: 
    115                 ar71xx_soc = AR71XX_SOC_AR7130; 
    116                 chip = "7130"; 
    117                 break; 
    118  
    119         case REV_ID_CHIP_AR7141: 
    120                 ar71xx_soc = AR71XX_SOC_AR7141; 
    121                 chip = "7141"; 
    122                 break; 
    123  
    124         case REV_ID_CHIP_AR7161: 
    125                 ar71xx_soc = AR71XX_SOC_AR7161; 
    126                 chip = "7161"; 
    127                 break; 
    128  
    129         case REV_ID_CHIP_AR9130: 
    130                 ar71xx_soc = AR71XX_SOC_AR9130; 
    131                 chip = "9130"; 
    132                 break; 
    133  
    134         case REV_ID_CHIP_AR9132: 
    135                 ar71xx_soc = AR71XX_SOC_AR9132; 
    136                 chip = "9132"; 
     108        u32 major; 
     109        u32 minor; 
     110        u32 rev = 0; 
     111 
     112        id = ar71xx_reset_rr(AR71XX_RESET_REG_REV_ID); 
     113        major = id & REV_ID_MAJOR_MASK; 
     114 
     115        switch (major) { 
     116        case REV_ID_MAJOR_AR71XX: 
     117                minor = id & AR71XX_REV_ID_MINOR_MASK; 
     118                rev = id >> AR71XX_REV_ID_REVISION_SHIFT; 
     119                rev &= AR71XX_REV_ID_REVISION_MASK; 
     120                switch (minor) { 
     121                case AR71XX_REV_ID_MINOR_AR7130: 
     122                        ar71xx_soc = AR71XX_SOC_AR7130; 
     123                        chip = "7130"; 
     124                        break; 
     125 
     126                case AR71XX_REV_ID_MINOR_AR7141: 
     127                        ar71xx_soc = AR71XX_SOC_AR7141; 
     128                        chip = "7141"; 
     129                        break; 
     130 
     131                case AR71XX_REV_ID_MINOR_AR7161: 
     132                        ar71xx_soc = AR71XX_SOC_AR7161; 
     133                        chip = "7161"; 
     134                        break; 
     135                } 
     136                break; 
     137 
     138        case REV_ID_MAJOR_AR724X: 
     139                ar71xx_soc = AR71XX_SOC_AR7240; 
     140                chip = "7240"; 
     141                rev = (id & AR724X_REV_ID_REVISION_MASK); 
     142                break; 
     143 
     144        case REV_ID_MAJOR_AR913X: 
     145                minor = id & AR91XX_REV_ID_MINOR_MASK; 
     146                rev = id >> AR91XX_REV_ID_REVISION_SHIFT; 
     147                rev &= AR91XX_REV_ID_REVISION_MASK; 
     148                switch (minor) { 
     149                case AR91XX_REV_ID_MINOR_AR9130: 
     150                        ar71xx_soc = AR71XX_SOC_AR9130; 
     151                        chip = "9130"; 
     152                        break; 
     153 
     154                case AR91XX_REV_ID_MINOR_AR9132: 
     155                        ar71xx_soc = AR71XX_SOC_AR9132; 
     156                        chip = "9132"; 
     157                        break; 
     158                } 
    137159                break; 
    138160 
    139161        default: 
    140                 panic("ar71xx: unknown chip id:0x%02x\n", id); 
     162                panic("ar71xx: unknown chip id:0x%08x\n", id); 
    141163        } 
    142164 
    143         sprintf(ar71xx_sys_type, "Atheros AR%s rev %u (id:0x%02x)", 
    144                 chip, rev, id); 
     165        sprintf(ar71xx_sys_type, "Atheros AR%s rev %u", chip, rev); 
    145166} 
    146167 
  • trunk/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/ar71xx.h

    r16623 r16644  
    104104        AR71XX_SOC_AR7141, 
    105105        AR71XX_SOC_AR7161, 
     106        AR71XX_SOC_AR7240, 
    106107        AR71XX_SOC_AR9130, 
    107108        AR71XX_SOC_AR9132 
     
    390391#define RESET_MODULE_PCI_CORE           BIT(0) 
    391392 
    392 #define REV_ID_MASK             0xff 
    393 #define REV_ID_CHIP_MASK        0xf3 
    394 #define REV_ID_CHIP_AR7130      0xa0 
    395 #define REV_ID_CHIP_AR7141      0xa1 
    396 #define REV_ID_CHIP_AR7161      0xa2 
    397 #define REV_ID_CHIP_AR9130      0xb0 
    398 #define REV_ID_CHIP_AR9132      0xb1 
    399  
    400 #define REV_ID_REVISION_MASK    0x3 
    401 #define REV_ID_REVISION_SHIFT   2 
     393#define REV_ID_MAJOR_MASK       0xf0 
     394#define REV_ID_MAJOR_AR71XX     0xa0 
     395#define REV_ID_MAJOR_AR913X     0xb0 
     396#define REV_ID_MAJOR_AR724X     0xc0 
     397 
     398#define AR71XX_REV_ID_MINOR_MASK        0x3 
     399#define AR71XX_REV_ID_MINOR_AR7130      0x0 
     400#define AR71XX_REV_ID_MINOR_AR7141      0x1 
     401#define AR71XX_REV_ID_MINOR_AR7161      0x2 
     402#define AR71XX_REV_ID_REVISION_MASK     0x3 
     403#define AR71XX_REV_ID_REVISION_SHIFT    2 
     404 
     405#define AR91XX_REV_ID_MINOR_MASK        0x3 
     406#define AR91XX_REV_ID_MINOR_AR9130      0x0 
     407#define AR91XX_REV_ID_MINOR_AR9132      0x1 
     408#define AR91XX_REV_ID_REVISION_MASK     0x3 
     409#define AR91XX_REV_ID_REVISION_SHIFT    2 
     410 
     411#define AR724X_REV_ID_REVISION_MASK     0x3 
    402412 
    403413extern void __iomem *ar71xx_reset_base; 
Note: See TracChangeset for help on using the changeset viewer.