Changeset 11673


Ignore:
Timestamp:
2008-07-06T01:06:07+02:00 (8 years ago)
Author:
blogic
Message:

lots of ifxmips fixes and features

Location:
trunk/target/linux/ifxmips/files
Files:
4 deleted
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ifxmips/files/arch/mips/ifxmips/board.c

    r11609 r11673  
    3333#include <linux/etherdevice.h> 
    3434#include <asm/ifxmips/ifxmips.h> 
    35 #include <asm/ifxmips/ifxmips_mii0.h> 
    3635 
    3736#define MAX_BOARD_NAME_LEN              32 
     
    6463EXPORT_SYMBOL_GPL(ebu_lock); 
    6564 
    66 static struct ifxmips_mac ifxmips_mii_mac; 
     65static unsigned char ifxmips_mii_mac[6]; 
     66static int ifxmips_brn = 0; 
    6767 
    6868static struct platform_device 
     
    8787        .name = "ifxmips_mii0", 
    8888        .dev = { 
    89                 .platform_data = &ifxmips_mii_mac, 
     89                .platform_data = ifxmips_mii_mac, 
    9090        } 
    9191}; 
     
    173173                if((i != 5) && (str[(3 * i) + 2] != ':')) 
    174174                        goto out; 
    175                 ifxmips_mii_mac.mac[i] = simple_strtoul(&str[3 * i], NULL, 16); 
     175                ifxmips_mii_mac[i] = simple_strtoul(&str[3 * i], NULL, 16); 
    176176        } 
    177         if(is_valid_ether_addr(ifxmips_mii_mac.mac)) 
     177        if(is_valid_ether_addr(ifxmips_mii_mac)) 
    178178                cmdline_mac = 1; 
    179179out: 
     
    258258}; 
    259259 
    260 struct ifxmips_board* ifxmips_find_board(void) 
     260int 
     261ifxmips_find_brn_block(void){ 
     262        unsigned char temp[0]; 
     263        memcpy_fromio(temp, (void*)KSEG1ADDR(IFXMIPS_FLASH_START + 0x800000 - 0x10000), 8); 
     264        if(memcmp(temp, "BRN-BOOT", 8) == 0) 
     265                return 1; 
     266        else 
     267                return 0; 
     268} 
     269 
     270int 
     271ifxmips_has_brn_block(void) 
     272{ 
     273        return ifxmips_brn; 
     274} 
     275 
     276struct ifxmips_board* 
     277ifxmips_find_board(void) 
    261278{ 
    262279        int i; 
     
    275292 
    276293        chiprev = ifxmips_r32(IFXMIPS_MPS_CHIPID); 
     294        ifxmips_brn = ifxmips_find_brn_block(); 
    277295 
    278296        if(!cmdline_mac) 
    279                 random_ether_addr(ifxmips_mii_mac.mac); 
     297                random_ether_addr(ifxmips_mii_mac); 
    280298 
    281299        if(!board) 
  • trunk/target/linux/ifxmips/files/arch/mips/ifxmips/clock.c

    r11607 r11673  
    3232#include <asm/ifxmips/ifxmips.h> 
    3333 
    34 #define FIX_FOR_36M_CRYSTAL             1 
    3534#define BASIC_INPUT_CLOCK_FREQUENCY_1   35328000 
    3635#define BASIC_INPUT_CLOCK_FREQUENCY_2   36000000 
     
    3938 
    4039#define GET_BITS(x, msb, lsb)           (((x) & ((1 << ((msb) + 1)) - 1)) >> (lsb)) 
    41 #define SET_BITS(x, msb, lsb, value)    (((x) & ~(((1 << ((msb) + 1)) - 1) ^ ((1 << (lsb)) - 1))) | (((value) & ((1 << (1 + (msb) - (lsb))) - 1)) << (lsb))) 
    42  
    43 #define CGU_PLL0_PHASE_DIVIDER_ENABLE   (*IFXMIPS_CGU_PLL0_CFG & (1 << 31)) 
    44 #define CGU_PLL0_BYPASS                 (*IFXMIPS_CGU_PLL0_CFG & (1 << 30)) 
    45 #define CGU_PLL0_SRC                    (*IFXMIPS_CGU_PLL0_CFG & (1 << 29)) 
    46 #define CGU_PLL0_CFG_DSMSEL             (*IFXMIPS_CGU_PLL0_CFG & (1 << 28)) 
    47 #define CGU_PLL0_CFG_FRAC_EN            (*IFXMIPS_CGU_PLL0_CFG & (1 << 27)) 
     40 
     41 
     42#define CGU_PLL0_PHASE_DIVIDER_ENABLE   (ifxmips_r32(IFXMIPS_CGU_PLL0_CFG) & (1 << 31)) 
     43#define CGU_PLL0_BYPASS                 (ifxmips_r32(IFXMIPS_CGU_PLL0_CFG) & (1 << 30)) 
     44#define CGU_PLL0_CFG_DSMSEL             (ifxmips_r32(IFXMIPS_CGU_PLL0_CFG) & (1 << 28)) 
     45#define CGU_PLL0_CFG_FRAC_EN            (ifxmips_r32(IFXMIPS_CGU_PLL0_CFG) & (1 << 27)) 
     46#define CGU_PLL1_SRC                    (ifxmips_r32(IFXMIPS_CGU_PLL1_CFG) & (1 << 31)) 
     47#define CGU_PLL1_BYPASS                 (ifxmips_r32(IFXMIPS_CGU_PLL1_CFG) & (1 << 30)) 
     48#define CGU_PLL1_CFG_DSMSEL             (ifxmips_r32(IFXMIPS_CGU_PLL1_CFG) & (1 << 28)) 
     49#define CGU_PLL1_CFG_FRAC_EN            (ifxmips_r32(IFXMIPS_CGU_PLL1_CFG) & (1 << 27)) 
     50#define CGU_PLL2_PHASE_DIVIDER_ENABLE   (ifxmips_r32(IFXMIPS_CGU_PLL2_CFG) & (1 << 20)) 
     51#define CGU_PLL2_BYPASS                 (ifxmips_r32(IFXMIPS_CGU_PLL2_CFG) & (1 << 19)) 
     52#define CGU_SYS_FPI_SEL                 (1 << 6) 
     53#define CGU_SYS_DDR_SEL                 0x3 
     54#define CGU_PLL0_SRC                    (1 << 29) 
     55 
    4856#define CGU_PLL0_CFG_PLLK               GET_BITS(*IFXMIPS_CGU_PLL0_CFG, 26, 17) 
    4957#define CGU_PLL0_CFG_PLLN               GET_BITS(*IFXMIPS_CGU_PLL0_CFG, 12, 6) 
    5058#define CGU_PLL0_CFG_PLLM               GET_BITS(*IFXMIPS_CGU_PLL0_CFG, 5, 2) 
    51 #define CGU_PLL1_SRC                    (*IFXMIPS_CGU_PLL1_CFG & (1 << 31)) 
    52 #define CGU_PLL1_BYPASS                 (*IFXMIPS_CGU_PLL1_CFG & (1 << 30)) 
    53 #define CGU_PLL1_CFG_DSMSEL             (*IFXMIPS_CGU_PLL1_CFG & (1 << 28)) 
    54 #define CGU_PLL1_CFG_FRAC_EN            (*IFXMIPS_CGU_PLL1_CFG & (1 << 27)) 
    5559#define CGU_PLL1_CFG_PLLK               GET_BITS(*IFXMIPS_CGU_PLL1_CFG, 26, 17) 
    5660#define CGU_PLL1_CFG_PLLN               GET_BITS(*IFXMIPS_CGU_PLL1_CFG, 12, 6) 
    5761#define CGU_PLL1_CFG_PLLM               GET_BITS(*IFXMIPS_CGU_PLL1_CFG, 5, 2) 
    58 #define CGU_PLL2_PHASE_DIVIDER_ENABLE   (*IFXMIPS_CGU_PLL2_CFG & (1 << 20)) 
    59 #define CGU_PLL2_BYPASS                 (*IFXMIPS_CGU_PLL2_CFG & (1 << 19)) 
    6062#define CGU_PLL2_SRC                    GET_BITS(*IFXMIPS_CGU_PLL2_CFG, 18, 17) 
    6163#define CGU_PLL2_CFG_INPUT_DIV          GET_BITS(*IFXMIPS_CGU_PLL2_CFG, 16, 13) 
    6264#define CGU_PLL2_CFG_PLLN               GET_BITS(*IFXMIPS_CGU_PLL2_CFG, 12, 6) 
    6365#define CGU_PLL2_CFG_PLLM               GET_BITS(*IFXMIPS_CGU_PLL2_CFG, 5, 2) 
    64 #define CGU_SYS_PPESEL                  GET_BITS(*IFXMIPS_CGU_SYS, 8, 7) 
    65 #define CGU_SYS_FPI_SEL                 (*IFXMIPS_CGU_SYS & (1 << 6)) 
    66 #define CGU_SYS_CPU1SEL                 GET_BITS(*IFXMIPS_CGU_SYS, 5, 4) 
    67 #define CGU_SYS_CPU0SEL                 GET_BITS(*IFXMIPS_CGU_SYS, 3, 2) 
    68 #define CGU_SYS_DDR_SEL                 GET_BITS(*IFXMIPS_CGU_SYS, 1, 0) 
    6966#define CGU_IF_CLK_PCI_CLK              GET_BITS(*IFXMIPS_CGU_IF_CLK, 23, 20) 
    70 #define CGU_IF_CLK_USBSEL               GET_BITS(*IFXMIPS_CGU_IF_CLK, 5, 4) 
    71 #define CGU_IF_CLK_MIISEL               GET_BITS(*IFXMIPS_CGU_IF_CLK, 1, 0) 
    7267 
    7368static unsigned int cgu_get_pll0_fdiv(void); 
     69unsigned int ifxmips_clocks[] = {CLOCK_167M, CLOCK_133M, CLOCK_111M, CLOCK_83M }; 
     70 
     71#define DDR_HZ ifxmips_clocks[ifxmips_r32(IFXMIPS_CGU_SYS) & 0x3] 
     72 
    7473 
    7574static inline unsigned int 
     
    7978        { 
    8079        case 0: 
    81                 if(CGU_PLL0_SRC) 
     80                if(ifxmips_r32(IFXMIPS_CGU_PLL0_CFG) & CGU_PLL0_SRC) 
    8281                        return BASIS_INPUT_CRYSTAL_USB; 
    8382                else if(CGU_PLL0_PHASE_DIVIDER_ENABLE) 
     
    170169} 
    171170 
    172 static inline unsigned int 
    173 cgu_get_pll0_fps(int phase) 
    174 { 
    175         register unsigned int fps = cgu_get_pll0_fosc(); 
    176  
    177         switch(phase) 
    178         { 
    179         case 1: 
    180                 /*  1.25    */ 
    181                 fps = ((fps << 2) + 2) / 5; 
    182                 break; 
    183         case 2: 
    184                 /*  1.5     */ 
    185                 fps = ((fps << 1) + 1) / 3; 
    186                 break; 
    187         } 
    188         return fps; 
    189 } 
    190  
    191171static unsigned int 
    192172cgu_get_pll0_fdiv(void) 
    193173{ 
    194174        register unsigned int div = CGU_PLL2_CFG_INPUT_DIV + 1; 
    195  
    196175        return (cgu_get_pll0_fosc() + (div >> 1)) / div; 
    197176} 
    198177 
    199 static inline unsigned int 
    200 cgu_get_pll1_fosc(void) 
    201 { 
    202         if(CGU_PLL1_BYPASS) 
    203                 return get_input_clock(1); 
    204         else 
    205                 return !CGU_PLL1_CFG_FRAC_EN 
    206                         ? dsm(1, CGU_PLL1_CFG_PLLM, CGU_PLL1_CFG_PLLN, 0, CGU_PLL1_CFG_DSMSEL, 0) 
    207                         : dsm(1, CGU_PLL1_CFG_PLLM, CGU_PLL1_CFG_PLLN, CGU_PLL1_CFG_PLLK, CGU_PLL1_CFG_DSMSEL, 0); 
    208 } 
    209  
    210 static inline unsigned int 
    211 cgu_get_pll1_fps(void) 
    212 { 
    213         register unsigned int fps = cgu_get_pll1_fosc(); 
    214  
    215         return ((fps << 1) + 1) / 3; 
    216 } 
    217  
    218 static inline unsigned int 
    219 cgu_get_pll1_fdiv(void) 
    220 { 
    221         return cgu_get_pll1_fosc(); 
    222 } 
    223  
    224 static inline unsigned int 
    225 cgu_get_pll2_fosc(void) 
    226 { 
    227         u64 res, clock = get_input_clock(2); 
    228  
    229         if ( CGU_PLL2_BYPASS ) 
    230                 return get_input_clock(2); 
    231  
    232         res = (CGU_PLL2_CFG_PLLN + 1) * clock; 
    233         do_div(res, CGU_PLL2_CFG_PLLM + 1); 
    234  
    235         return res; 
    236 } 
    237  
    238 static inline unsigned int 
    239 cgu_get_pll2_fps(int phase) 
    240 { 
    241         register unsigned int fps = cgu_get_pll2_fosc(); 
    242  
    243         switch ( phase ) 
    244         { 
    245         case 1: 
    246                 /*  1.125   */ 
    247                 fps = ((fps << 2) + 2) / 5; break; 
    248         case 2: 
    249                 /*  1.25    */ 
    250                 fps = ((fps << 3) + 4) / 9; 
    251         } 
    252  
    253         return fps; 
    254 } 
    255  
    256 static inline unsigned int 
    257 cgu_get_pll2_fdiv(void) 
    258 { 
    259         register unsigned int div = CGU_IF_CLK_PCI_CLK + 1; 
    260         return (cgu_get_pll2_fosc() + (div >> 1)) / div; 
    261 } 
    262  
    263 unsigned int 
    264 cgu_get_mips_clock(int cpu) 
     178unsigned int 
     179cgu_get_io_region_clock(void) 
    265180{ 
    266181        register unsigned int ret = cgu_get_pll0_fosc(); 
    267         register unsigned int cpusel = cpu == 0 ? CGU_SYS_CPU0SEL : CGU_SYS_CPU1SEL; 
    268  
    269         if(cpusel == 0) 
    270                 return ret; 
    271         else if(cpusel == 2) 
    272                 ret <<= 1; 
    273  
    274         switch(CGU_SYS_DDR_SEL) 
     182        switch(ifxmips_r32(IFXMIPS_CGU_PLL2_CFG) & CGU_SYS_DDR_SEL) 
    275183        { 
    276184        default: 
     
    287195 
    288196unsigned int 
    289 cgu_get_cpu_clock(void) 
    290 { 
    291         return cgu_get_mips_clock(0); 
    292 } 
    293  
    294 unsigned int 
    295 cgu_get_io_region_clock(void) 
    296 { 
    297         register unsigned int ret = cgu_get_pll0_fosc(); 
    298  
    299         switch(CGU_SYS_DDR_SEL) 
    300         { 
    301         default: 
    302         case 0: 
    303                 return (ret + 1) / 2; 
    304         case 1: 
    305                 return (ret * 2 + 2) / 5; 
    306         case 2: 
    307                 return (ret + 1) / 3; 
    308         case 3: 
    309                 return (ret + 2) / 4; 
    310         } 
    311 } 
    312  
    313 unsigned int 
    314197cgu_get_fpi_bus_clock(int fpi) 
    315198{ 
    316199        register unsigned int ret = cgu_get_io_region_clock(); 
    317  
    318         if((fpi == 2) && (CGU_SYS_FPI_SEL)) 
     200        if((fpi == 2) && (ifxmips_r32(IFXMIPS_CGU_SYS) & CGU_SYS_FPI_SEL)) 
    319201                ret >>= 1; 
    320  
    321202        return ret; 
    322 } 
    323  
    324 unsigned int 
    325 cgu_get_pp32_clock(void) 
    326 { 
    327         switch(CGU_SYS_PPESEL) 
    328         { 
    329         default: 
    330         case 0: 
    331                 return cgu_get_pll2_fps(1); 
    332         case 1: 
    333                 return cgu_get_pll2_fps(2); 
    334         case 2: 
    335                 return (cgu_get_pll2_fps(1) + 1) >> 1; 
    336         case 3: 
    337                 return (cgu_get_pll2_fps(2) + 1) >> 1; 
    338         } 
    339 } 
    340  
    341 unsigned int 
    342 cgu_get_ethernet_clock(int mii) 
    343 { 
    344         switch(CGU_IF_CLK_MIISEL) 
    345         { 
    346         case 0: 
    347                 return (cgu_get_pll2_fosc() + 3) / 12; 
    348         case 1: 
    349                 return (cgu_get_pll2_fosc() + 3) / 6; 
    350         case 2: 
    351                 return 50000000; 
    352         case 3: 
    353                 return 25000000; 
    354         } 
    355         return 0; 
    356 } 
    357  
    358 unsigned int 
    359 cgu_get_usb_clock(void) 
    360 { 
    361         switch(CGU_IF_CLK_USBSEL) 
    362         { 
    363         case 0: 
    364                 return (cgu_get_pll2_fosc() + 12) / 25; 
    365         case 1: 
    366                 return 12000000; 
    367         case 2: 
    368                 return 12000000 / 4; 
    369         case 3: 
    370                 return 12000000; 
    371         } 
    372         return 0; 
    373 } 
    374  
    375 unsigned int 
    376 cgu_get_clockout(int clkout) 
    377 { 
    378         unsigned int fosc1 = cgu_get_pll1_fosc(); 
    379         unsigned int fosc2 = cgu_get_pll2_fosc(); 
    380  
    381         if(clkout > 3 || clkout < 0) 
    382                 return 0; 
    383  
    384         switch(((unsigned int)clkout << 2) | GET_BITS(*IFXMIPS_CGU_IF_CLK, 15 - clkout * 2, 14 - clkout * 2)) 
    385         { 
    386         case 0: /*  32.768KHz   */ 
    387         case 15: 
    388                 return (fosc1 + 6000) / 12000; 
    389         case 1: /*  1.536MHz    */ 
    390                 return (fosc1 + 128) / 256; 
    391         case 2: /*  2.5MHz      */ 
    392                 return (fosc2 + 60) / 120; 
    393         case 3: /*  12MHz       */ 
    394         case 5: 
    395         case 12: 
    396                 return (fosc2 + 12) / 25; 
    397         case 4: /*  40MHz       */ 
    398                 return (cgu_get_pll2_fps(2) + 3) / 6; 
    399         case 6: /*  24MHz       */ 
    400                 return (cgu_get_pll2_fps(2) + 5) / 10; 
    401         case 7: /*  48MHz       */ 
    402                 return (cgu_get_pll2_fps(2) + 2) / 5; 
    403         case 8: /*  25MHz       */ 
    404         case 14: 
    405                 return (fosc2 + 6) / 12; 
    406         case 9: /*  50MHz       */ 
    407         case 13: 
    408                 return (fosc2 + 3) / 6; 
    409         case 10:/*  30MHz       */ 
    410                 return (fosc2 + 5) / 10; 
    411         case 11:/*  60MHz       */ 
    412                 return (fosc2 + 2) / 5; 
    413         } 
    414         return 0; 
    415203} 
    416204 
     
    420208        ifxmips_w32(ifxmips_r32(IFXMIPS_CGU_IFCCR) & ~0xf00000, IFXMIPS_CGU_IFCCR); 
    421209        ifxmips_w32(ifxmips_r32(IFXMIPS_CGU_IFCCR) | 0x800000, IFXMIPS_CGU_IFCCR); 
    422         // internal or external clock 
    423210        if(external_clock) 
    424211        { 
     
    432219 
    433220unsigned int 
    434 ifxmips_get_ddr_hz(void) 
    435 { 
    436         switch(ifxmips_r32(IFXMIPS_CGU_SYS) & 0x3) 
    437         { 
    438         case 0: 
    439                 return CLOCK_167M; 
    440         case 1: 
    441                 return CLOCK_133M; 
    442         case 2: 
    443                 return CLOCK_111M; 
    444         } 
    445         return CLOCK_83M; 
    446 } 
    447 EXPORT_SYMBOL(ifxmips_get_ddr_hz); 
    448  
    449 unsigned int 
    450221ifxmips_get_cpu_hz(void) 
    451222{ 
    452         unsigned int ddr_clock = ifxmips_get_ddr_hz(); 
     223        unsigned int ddr_clock = DDR_HZ; 
    453224        switch(ifxmips_r32(IFXMIPS_CGU_SYS) & 0xc) 
    454225        { 
     
    465236ifxmips_get_fpi_hz(void) 
    466237{ 
    467         unsigned int ddr_clock = ifxmips_get_ddr_hz(); 
     238        unsigned int ddr_clock = DDR_HZ; 
    468239        if(ifxmips_r32(IFXMIPS_CGU_SYS) & 0x40) 
    469240                return ddr_clock >> 1; 
     
    471242} 
    472243EXPORT_SYMBOL(ifxmips_get_fpi_hz); 
    473  
    474  
  • trunk/target/linux/ifxmips/files/arch/mips/ifxmips/gpio.c

    r11609 r11673  
    4040#include <asm/uaccess.h> 
    4141#include <asm/ifxmips/ifxmips.h> 
    42 #include <asm/ifxmips/ifxmips_ioctl.h> 
    4342 
    4443#define MAX_PORTS                       2 
  • trunk/target/linux/ifxmips/files/arch/mips/ifxmips/prom.c

    r11606 r11673  
    1919 
    2020#include <linux/init.h> 
     21#include <linux/module.h> 
    2122#include <linux/bootmem.h> 
    2223#include <asm/bootinfo.h> 
     
    8485        return prom_cp1_base; 
    8586} 
     87EXPORT_SYMBOL(prom_get_cp1_base); 
    8688 
    8789unsigned int prom_get_cp1_size(void) 
     
    8991        return prom_cp1_size; 
    9092} 
     93EXPORT_SYMBOL(prom_get_cp1_size); 
    9194 
    9295void __init 
  • trunk/target/linux/ifxmips/files/drivers/mtd/maps/ifxmips.c

    r11607 r11673  
    2828#include <linux/mtd/cfi.h> 
    2929#include <asm/ifxmips/ifxmips.h> 
     30#include <asm/ifxmips/ifxmips_prom.h> 
    3031#include <asm/ifxmips/ifxmips_ebu.h> 
    3132#include <linux/magic.h> 
     
    9192 
    9293static struct mtd_partition 
    93 ifxmips_partitions[4] = { 
    94         { 
    95                 name:"U-Boot", 
     94ifxmips_partitions[] = { 
     95        { 
     96                name:"uboot", 
    9697                offset:0x00000000, 
    9798                size:0x00020000, 
    9899        }, 
    99100        { 
    100                 name:"U-Boot-Env", 
     101                name:"uboot_env", 
    101102                offset:0x00020000, 
    102103                size:0x00010000, 
     
    109110        { 
    110111                name:"rootfs", 
     112                offset:0x0, 
     113                size:0x0, 
     114        }, 
     115        { 
     116                name:"board_config", 
    111117                offset:0x0, 
    112118                size:0x0, 
     
    120126        printk(KERN_INFO "ifxmips_mtd: kernel size is %ld \n", temp + 0x40); 
    121127        return temp + 0x40; 
     128} 
     129 
     130int 
     131find_brn_block(unsigned long start_offset){ 
     132        unsigned char temp[9]; 
     133        ifxmips_copy_from(&ifxmips_map, &temp, start_offset, 8); 
     134        temp[8] = '\0'; 
     135        printk(KERN_INFO "data in brn block %s\n", temp); 
     136        if(memcmp(temp, "BRN-BOOT", 8) == 0) 
     137                return 1; 
     138        else 
     139                return 0; 
    122140} 
    123141 
     
    171189        } 
    172190 
     191        parts = &ifxmips_partitions[0]; 
    173192        ifxmips_partitions[2].size = uimage_size; 
    174193        ifxmips_partitions[3].offset = ifxmips_partitions[2].offset + ifxmips_partitions[2].size; 
    175194        ifxmips_partitions[3].size = ((ifxmips_mtd->size >> 20) * 1024 * 1024) - ifxmips_partitions[3].offset; 
    176  
    177         parts = &ifxmips_partitions[0]; 
    178         add_mtd_partitions(ifxmips_mtd, parts, 4); 
     195        if(ifxmips_has_brn_block()) 
     196        { 
     197                ifxmips_partitions[3].size -= ifxmips_mtd->erasesize; 
     198                ifxmips_partitions[4].offset = ifxmips_mtd->size - ifxmips_mtd->erasesize; 
     199                ifxmips_partitions[4].size = ifxmips_mtd->erasesize; 
     200                add_mtd_partitions(ifxmips_mtd, parts, 5); 
     201        } else { 
     202                add_mtd_partitions(ifxmips_mtd, parts, 4); 
     203        } 
    179204 
    180205        printk(KERN_INFO "ifxmips_mtd: added ifxmips flash with %dMB\n", ifxmips_mtd->size >> 20); 
  • trunk/target/linux/ifxmips/files/drivers/net/ifxmips_mii0.c

    r11609 r11673  
    3737#include <asm/delay.h> 
    3838#include <asm/ifxmips/ifxmips.h> 
    39 #include <asm/ifxmips/ifxmips_mii0.h> 
    4039#include <asm/ifxmips/ifxmips_dma.h> 
    4140#include <asm/ifxmips/ifxmips_pmu.h> 
     41 
     42struct ifxmips_mii_priv { 
     43        struct net_device_stats stats; 
     44        struct dma_device_info *dma_device; 
     45        struct sk_buff *skb; 
     46}; 
    4247 
    4348static struct net_device *ifxmips_mii0_dev; 
     
    6469                ((phy_reg & MDIO_ACC_REG_MASK) << MDIO_ACC_REG_OFFSET); 
    6570 
     71        while(ifxmips_r32(IFXMIPS_PPE32_MDIO_ACC) & MDIO_ACC_REQUEST); 
    6672        ifxmips_w32(val, IFXMIPS_PPE32_MDIO_ACC); 
    6773        while(ifxmips_r32(IFXMIPS_PPE32_MDIO_ACC) & MDIO_ACC_REQUEST){}; 
     
    344350{ 
    345351        int result = 0; 
    346         struct ifxmips_mac *mac = (struct ifxmips_mac*)dev->dev.platform_data; 
     352        unsigned char *mac = (unsigned char*)dev->dev.platform_data; 
    347353        ifxmips_mii0_dev = alloc_etherdev(sizeof(struct ifxmips_mii_priv)); 
    348354        ifxmips_mii0_dev->init = ifxmips_mii_dev_init; 
    349         memcpy(mac_addr, mac->mac, 6); 
     355        memcpy(mac_addr, mac, 6); 
    350356        strcpy(ifxmips_mii0_dev->name, "eth%d"); 
    351357        ifxmips_mii_chip_init(REV_MII_MODE); 
  • trunk/target/linux/ifxmips/files/drivers/serial/ifxmips_asc.c

    r11596 r11673  
    4949#include <asm/ifxmips/ifxmips.h> 
    5050#include <asm/ifxmips/ifxmips_irq.h> 
    51 #include <asm/ifxmips/ifxmips_serial.h> 
    5251 
    5352#define PORT_IFXMIPSASC  111 
     
    162161 
    163162        while(((ifxmips_r32(port->membase + IFXMIPS_ASC_FSTAT) & ASCFSTAT_TXFFLMASK) 
    164                                 >> ASCFSTAT_TXFFLOFF) != IFXMIPSASC_TXFIFO_FULL) 
     163                                >> ASCFSTAT_TXFFLOFF) != TXFIFO_FULL) 
    165164        { 
    166165                if(port->x_char) 
     
    249248        ifxmips_w32(((ifxmips_r32(port->membase + IFXMIPS_ASC_CLC) & ~ASCCLC_RMCMASK)) | (1 << ASCCLC_RMCOFFSET), port->membase + IFXMIPS_ASC_CLC); 
    250249        ifxmips_w32(0, port->membase + IFXMIPS_ASC_PISEL); 
    251         ifxmips_w32(((IFXMIPSASC_TXFIFO_FL << ASCTXFCON_TXFITLOFF) & ASCTXFCON_TXFITLMASK) | ASCTXFCON_TXFEN | ASCTXFCON_TXFFLU, port->membase + IFXMIPS_ASC_TXFCON); 
    252         ifxmips_w32(((IFXMIPSASC_RXFIFO_FL << ASCRXFCON_RXFITLOFF) & ASCRXFCON_RXFITLMASK) | ASCRXFCON_RXFEN | ASCRXFCON_RXFFLU, port->membase + IFXMIPS_ASC_RXFCON); 
     250        ifxmips_w32(((TXFIFO_FL << ASCTXFCON_TXFITLOFF) & ASCTXFCON_TXFITLMASK) | ASCTXFCON_TXFEN | ASCTXFCON_TXFFLU, port->membase + IFXMIPS_ASC_TXFCON); 
     251        ifxmips_w32(((RXFIFO_FL << ASCRXFCON_RXFITLOFF) & ASCRXFCON_RXFITLMASK) | ASCRXFCON_RXFEN | ASCRXFCON_RXFFLU, port->membase + IFXMIPS_ASC_RXFCON); 
    253252        wmb (); 
    254253        ifxmips_w32(ifxmips_r32(port->membase + IFXMIPS_ASC_CON) | ASCCON_M_8ASYNC | ASCCON_FEN | ASCCON_TOEN | ASCCON_ROEN, port->membase + IFXMIPS_ASC_CON); 
     
    400399        if(port->type == PORT_IFXMIPSASC) 
    401400        { 
    402                 if(port->membase == IFXMIPS_ASC_BASE_ADDR) 
     401                if(port->membase == (void*)IFXMIPS_ASC_BASE_ADDR) 
    403402                        return "asc0"; 
    404403                else 
     
    502501                        fifocnt = (ifxmips_r32((u32*)(IFXMIPS_ASC_BASE_ADDR + (port * IFXMIPS_ASC_BASE_DIFF) + IFXMIPS_ASC_FSTAT)) & ASCFSTAT_TXFFLMASK) 
    503502                                        >> ASCFSTAT_TXFFLOFF; 
    504                 } while(fifocnt == IFXMIPSASC_TXFIFO_FULL); 
     503                } while(fifocnt == TXFIFO_FULL); 
    505504 
    506505                if(s[i] == '\0') 
     
    513512                                fifocnt = (ifxmips_r32((u32*)(IFXMIPS_ASC_BASE_ADDR + (port * IFXMIPS_ASC_BASE_DIFF) + IFXMIPS_ASC_FSTAT)) & ASCFSTAT_TXFFLMASK) 
    514513                                        >> ASCFSTAT_TXFFLOFF; 
    515                         } while(fifocnt == IFXMIPSASC_TXFIFO_FULL); 
     514                        } while(fifocnt == TXFIFO_FULL); 
    516515                } 
    517516                ifxmips_w32(s[i], (u32*)(IFXMIPS_ASC_BASE_ADDR + (port * IFXMIPS_ASC_BASE_DIFF) + IFXMIPS_ASC_TBUF)); 
  • trunk/target/linux/ifxmips/files/include/asm-mips/ifxmips/ifxmips.h

    r11609 r11673  
    1616 *   Copyright (C) 2005 infineon 
    1717 *   Copyright (C) 2007 John Crispin <blogic@openwrt.org>  
    18  * 
    1918 */ 
    2019#ifndef _IFXMIPS_H__ 
     
    7271#define ASCOPT_PARODD                   0x0 
    7372#define ASCOPT_CREAD                    0x20 
    74 #define ASCFSTAT_TXFFLMASK              0x3F00 
    75 #define ASCFSTAT_TXFFLOFF               8 
     73#define TXFIFO_FL                               1 
     74#define RXFIFO_FL                               1 
     75#define TXFIFO_FULL                             16 
     76#define ASCCLC_RMCMASK                  0x0000FF00 
     77#define ASCCLC_RMCOFFSET                8 
     78#define ASCCON_M_8ASYNC                 0x0 
     79#define ASCCON_M_7ASYNC                 0x2 
     80#define ASCCON_ODD                              0x00000020 
     81#define ASCCON_STP                              0x00000080 
     82#define ASCCON_BRS                              0x00000100 
     83#define ASCCON_FDE                              0x00000200 
     84#define ASCCON_R                                0x00008000 
     85#define ASCCON_FEN                              0x00020000 
     86#define ASCCON_ROEN                             0x00080000 
     87#define ASCCON_TOEN                             0x00100000 
     88#define ASCSTATE_PE                             0x00010000 
     89#define ASCSTATE_FE                             0x00020000 
     90#define ASCSTATE_ROE                    0x00080000 
     91#define ASCSTATE_ANY                    (ASCSTATE_ROE|ASCSTATE_PE|ASCSTATE_FE) 
     92#define ASCWHBSTATE_CLRREN              0x00000001 
     93#define ASCWHBSTATE_SETREN              0x00000002 
     94#define ASCWHBSTATE_CLRPE               0x00000004 
     95#define ASCWHBSTATE_CLRFE               0x00000008 
     96#define ASCWHBSTATE_CLRROE              0x00000020 
     97#define ASCTXFCON_TXFEN                 0x0001 
     98#define ASCTXFCON_TXFFLU                0x0002 
     99#define ASCTXFCON_TXFITLMASK    0x3F00 
     100#define ASCTXFCON_TXFITLOFF     8 
     101#define ASCRXFCON_RXFEN         0x0001 
     102#define ASCRXFCON_RXFFLU        0x0002 
     103#define ASCRXFCON_RXFITLMASK    0x3F00 
     104#define ASCRXFCON_RXFITLOFF     8 
     105#define ASCFSTAT_RXFFLMASK      0x003F 
     106#define ASCFSTAT_TXFFLMASK      0x3F00 
     107#define ASCFSTAT_TXFFLOFF       8 
    76108 
    77109 
     
    335367#define IFXMIPS_SSC_SFCON               ((u32*)(IFXMIPS_SSC_BASE_ADDR + 0x0060)) 
    336368#define IFXMIPS_SSC_WHBGPOSTAT  ((u32*)(IFXMIPS_SSC_BASE_ADDR + 0x0078)) 
    337 #define IFXMIPS_SSC_STATE       ((u32*)(IFXMIPS_SSC_BASE_ADDR + 0x0014)) 
     369#define IFXMIPS_SSC_STATE               ((u32*)(IFXMIPS_SSC_BASE_ADDR + 0x0014)) 
    338370#define IFXMIPS_SSC_WHBSTATE    ((u32*)(IFXMIPS_SSC_BASE_ADDR + 0x0018)) 
    339371#define IFXMIPS_SSC_FSTAT               ((u32*)(IFXMIPS_SSC_BASE_ADDR + 0x0038)) 
     
    473505#define IFXMIPS_MPS_AD1ENR              ((u32*)(IFXMIPS_MPS_BASE_ADDR + 0x005C)) 
    474506 
    475 #define IFXMIPS_MPS_CHIPID_VERSION_GET(value)    (((value) >> 28) & ((1 << 4) - 1)) 
     507#define IFXMIPS_MPS_CHIPID_VERSION_GET(value)   (((value) >> 28) & ((1 << 4) - 1)) 
    476508#define IFXMIPS_MPS_CHIPID_VERSION_SET(value)   (((( 1 << 4) - 1) & (value)) << 28) 
    477509#define IFXMIPS_MPS_CHIPID_PARTNUM_GET(value)   (((value) >> 12) & ((1 << 16) - 1)) 
  • trunk/target/linux/ifxmips/files/include/asm-mips/ifxmips/ifxmips_cgu.h

    r11607 r11673  
     1/* 
     2 *   This program is free software; you can redistribute it and/or modify 
     3 *   it under the terms of the GNU General Public License as published by 
     4 *   the Free Software Foundation; either version 2 of the License, or 
     5 *   (at your option) any later version. 
     6 * 
     7 *   This program is distributed in the hope that it will be useful, 
     8 *   but WITHOUT ANY WARRANTY; without even the implied warranty of 
     9 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
     10 *   GNU General Public License for more details. 
     11 * 
     12 *   You should have received a copy of the GNU General Public License 
     13 *   along with this program; if not, write to the Free Software 
     14 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 
     15 * 
     16 *   Copyright (C) 2007 John Crispin <blogic@openwrt.org>  
     17 */ 
    118#ifndef _IFXMIPS_CGU_H__ 
    219#define _IFXMIPS_CGU_H__ 
    3 u32 cgu_get_mips_clock(int cpu); 
    4 u32 cgu_get_cpu_clock(void); 
    5 u32 cgu_get_io_region_clock(void); 
    6 u32 cgu_get_fpi_bus_clock(int fpi); 
    7 u32 cgu_get_pp32_clock(void); 
    8 u32 cgu_get_ethernet_clock(int mii); 
    9 u32 cgu_get_usb_clock(void); 
    10 u32 cgu_get_clockout(int clkout); 
     20 
     21unsigned int cgu_get_mips_clock(int cpu); 
     22unsigned int cgu_get_io_region_clock(void); 
     23unsigned int cgu_get_fpi_bus_clock(int fpi); 
    1124void cgu_setup_pci_clk(int internal_clock); 
    12 u32 ifxmips_get_ddr_hz(void); 
    13 u32 ifxmips_get_cpu_hz(void); 
    14 u32 ifxmips_get_fpi_hz(void); 
     25unsigned int ifxmips_get_ddr_hz(void); 
     26unsigned int ifxmips_get_fpi_hz(void); 
     27unsigned int ifxmips_get_cpu_hz(void); 
     28 
    1529#endif 
  • trunk/target/linux/ifxmips/files/include/asm-mips/ifxmips/ifxmips_gpio.h

    r9831 r11673  
    1313 *   along with this program; if not, write to the Free Software 
    1414 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. 
    15  * 
    1615 *   Copyright (C) 2007 John Crispin <blogic@openwrt.org>  
    17  * 
    1816 */ 
    1917#ifndef _IFXMIPS_GPIO_H__ 
  • trunk/target/linux/ifxmips/files/include/asm-mips/ifxmips/ifxmips_irq.h

    r11578 r11673  
    1616 *   Copyright (C) 2005 infineon 
    1717 *   Copyright (C) 2007 John Crispin <blogic@openwrt.org>  
    18  * 
    1918 */ 
    2019#ifndef _IFXMIPS_IRQ__ 
  • trunk/target/linux/ifxmips/files/include/asm-mips/ifxmips/ifxmips_led.h

    r9898 r11673  
    1616 *   Copyright (C) 2007 John Crispin <blogic@openwrt.org>  
    1717 */ 
     18#ifndef _IFXMIPS_LED_H__  
     19#define _IFXMIPS_LED_H__ 
    1820 
    1921extern void ifxmips_led_set(unsigned int led); 
     
    2123extern void ifxmips_led_blink_set(unsigned int led); 
    2224extern void ifxmips_led_blink_clear(unsigned int led); 
     25 
     26#endif 
  • trunk/target/linux/ifxmips/files/include/asm-mips/ifxmips/ifxmips_pmu.h

    r9831 r11673  
    1515 * 
    1616 *   Copyright (C) 2007 John Crispin <blogic@openwrt.org>  
    17  * 
    1817 */ 
    1918#ifndef _IFXMIPS_PMU_H__ 
  • trunk/target/linux/ifxmips/files/include/asm-mips/ifxmips/ifxmips_prom.h

    r11578 r11673  
    1515 * 
    1616 *   Copyright (C) 2008 John Crispin <blogic@openwrt.org>  
    17  * 
    1817 */ 
    19  
    2018#ifndef _IFXPROM_H__ 
    2119#define _IFXPROM_H__ 
     
    2422extern u32 *prom_get_cp1_base(void); 
    2523extern u32 prom_get_cp1_size(void); 
     24extern int ifxmips_has_brn_block(void); 
    2625 
    2726#endif 
Note: See TracChangeset for help on using the changeset viewer.