Changeset 12463


Ignore:
Timestamp:
2008-09-01T16:41:26+02:00 (9 years ago)
Author:
nbd
Message:

make openwrt boot on ar9130 (currently no ethernet yet)

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

Legend:

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

    r11894 r12463  
    3131#define AR71XX_SYS_TYPE_LEN     64 
    3232#define AR71XX_BASE_FREQ        40000000 
     33#define AR91XX_BASE_FREQ        5000000 
    3334 
    3435#define AR71XX_MEM_SIZE_MIN     0x0200000 
     
    129130                chip = "7161"; 
    130131                break; 
     132        case REV_ID_CHIP_AR9130: 
     133                chip = "9130"; 
     134                break; 
    131135        default: 
    132136                chip = "71xx"; 
     
    137141} 
    138142 
    139 static void __init ar71xx_detect_sys_frequency(void) 
     143static void __init ar91xx_detect_sys_frequency(void) 
    140144{ 
    141145        u32 pll; 
     
    145149        pll = ar71xx_pll_rr(PLL_REG_CPU_PLL_CFG); 
    146150 
    147         div = ((pll >> PLL_DIV_SHIFT) & PLL_DIV_MASK) + 1; 
     151        div = ((pll >> AR91XX_PLL_DIV_SHIFT) & AR91XX_PLL_DIV_MASK); 
     152        freq = div * AR91XX_BASE_FREQ; 
     153 
     154        ar71xx_cpu_freq = freq; 
     155 
     156        div = ((pll >> AR91XX_DDR_DIV_SHIFT) & AR91XX_DDR_DIV_MASK) + 1; 
     157        ar71xx_ddr_freq = freq / div; 
     158 
     159        div = (((pll >> AR91XX_AHB_DIV_SHIFT) & AR91XX_AHB_DIV_MASK) + 1) * 2; 
     160        ar71xx_ahb_freq = ar71xx_cpu_freq / div; 
     161} 
     162 
     163static void __init ar71xx_detect_sys_frequency(void) 
     164{ 
     165        u32 pll; 
     166        u32 freq; 
     167        u32 div; 
     168 
     169        if ((ar71xx_reset_rr(RESET_REG_REV_ID) & REV_ID_MASK) >= 
     170                        REV_ID_CHIP_AR9130) { 
     171                return ar91xx_detect_sys_frequency(); 
     172        } 
     173 
     174        pll = ar71xx_pll_rr(PLL_REG_CPU_PLL_CFG); 
     175 
     176        div = ((pll >> AR71XX_PLL_DIV_SHIFT) & AR71XX_PLL_DIV_MASK) + 1; 
    148177        freq = div * AR71XX_BASE_FREQ; 
    149178 
    150         div = ((pll >> CPU_DIV_SHIFT) & CPU_DIV_MASK) + 1; 
     179        div = ((pll >> AR71XX_CPU_DIV_SHIFT) & AR71XX_CPU_DIV_MASK) + 1; 
    151180        ar71xx_cpu_freq = freq / div; 
    152181 
    153         div = ((pll >> DDR_DIV_SHIFT) & DDR_DIV_MASK) + 1; 
     182        div = ((pll >> AR71XX_DDR_DIV_SHIFT) & AR71XX_DDR_DIV_MASK) + 1; 
    154183        ar71xx_ddr_freq = freq / div; 
    155184 
    156         div = (((pll >> AHB_DIV_SHIFT) & AHB_DIV_MASK) + 1) * 2; 
     185        div = (((pll >> AR71XX_AHB_DIV_SHIFT) & AR71XX_AHB_DIV_MASK) + 1) * 2; 
    157186        ar71xx_ahb_freq = ar71xx_cpu_freq / div; 
    158187} 
  • trunk/target/linux/ar71xx/files/include/asm-mips/mach-ar71xx/ar71xx.h

    r11894 r12463  
    104104#define PLL_REG_PCI_CLK         0x1c 
    105105 
    106 #define PLL_DIV_SHIFT           3 
    107 #define PLL_DIV_MASK            0x1f 
    108 #define CPU_DIV_SHIFT           16 
    109 #define CPU_DIV_MASK            0x3 
    110 #define DDR_DIV_SHIFT           18 
    111 #define DDR_DIV_MASK            0x3 
    112 #define AHB_DIV_SHIFT           20 
    113 #define AHB_DIV_MASK            0x7 
     106#define AR71XX_PLL_DIV_SHIFT            3 
     107#define AR71XX_PLL_DIV_MASK             0x1f 
     108#define AR71XX_CPU_DIV_SHIFT            16 
     109#define AR71XX_CPU_DIV_MASK             0x3 
     110#define AR71XX_DDR_DIV_SHIFT            18 
     111#define AR71XX_DDR_DIV_MASK             0x3 
     112#define AR71XX_AHB_DIV_SHIFT            20 
     113#define AR71XX_AHB_DIV_MASK             0x7 
     114 
     115#define AR91XX_PLL_DIV_SHIFT            0 
     116#define AR91XX_PLL_DIV_MASK             0x3ff 
     117#define AR91XX_DDR_DIV_SHIFT            22 
     118#define AR91XX_DDR_DIV_MASK             0x3 
     119#define AR91XX_AHB_DIV_SHIFT            19 
     120#define AR91XX_AHB_DIV_MASK             0x1 
    114121 
    115122extern void __iomem *ar71xx_pll_base; 
     
    307314#define REV_ID_CHIP_AR7141      0xa1 
    308315#define REV_ID_CHIP_AR7161      0xa2 
     316#define REV_ID_CHIP_AR9130      0xb0 
    309317 
    310318#define REV_ID_REVISION_MASK    0x3 
Note: See TracChangeset for help on using the changeset viewer.