Changeset 20494


Ignore:
Timestamp:
2010-03-26T23:35:41+01:00 (8 years ago)
Author:
nbd
Message:

ar71xx: add support for ar7241 and ar7242

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

Legend:

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

    r18757 r20494  
    5151 
    5252        case AR71XX_SOC_AR7240: 
     53        case AR71XX_SOC_AR7241: 
     54        case AR71XX_SOC_AR7242: 
    5355                mask_inv = mask & RESET_MODULE_USB_OHCI_DLL_7240; 
    5456                local_irq_save(flags); 
     
    9193 
    9294        case AR71XX_SOC_AR7240: 
     95        case AR71XX_SOC_AR7241: 
     96        case AR71XX_SOC_AR7242: 
    9397                mask_inv = mask & RESET_MODULE_USB_OHCI_DLL_7240; 
    9498                local_irq_save(flags); 
     
    129133 
    130134        case AR71XX_SOC_AR7240: 
     135        case AR71XX_SOC_AR7241: 
     136        case AR71XX_SOC_AR7242: 
    131137                local_irq_save(flags); 
    132138                t = ar71xx_reset_rr(AR724X_RESET_REG_RESET_MODULE); 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/dev-usb.c

    r18940 r20494  
    129129        ar71xx_usb_ctrl_wr(USB_CTRL_REG_FLADJ, 0x3); 
    130130 
    131         ar71xx_ohci_device.resource = ar7240_ohci_resources; 
    132         ar71xx_ohci_device.num_resources = ARRAY_SIZE(ar7240_ohci_resources); 
    133  
    134         platform_device_register(&ar71xx_ohci_device); 
     131        if (ar71xx_soc == AR71XX_SOC_AR7241 || ar71xx_soc == AR71XX_SOC_AR7242) { 
     132                ar71xx_ehci_data.is_ar91xx = 1; 
     133                ar71xx_ehci_device.resource = ar7240_ohci_resources; 
     134                ar71xx_ehci_device.num_resources = ARRAY_SIZE(ar7240_ohci_resources); 
     135                platform_device_register(&ar71xx_ehci_device); 
     136        } else { 
     137                ar71xx_ohci_device.resource = ar7240_ohci_resources; 
     138                ar71xx_ohci_device.num_resources = ARRAY_SIZE(ar7240_ohci_resources); 
     139                platform_device_register(&ar71xx_ohci_device); 
     140        } 
    135141} 
    136142 
     
    154160        switch (ar71xx_soc) { 
    155161        case AR71XX_SOC_AR7240: 
     162        case AR71XX_SOC_AR7241: 
     163        case AR71XX_SOC_AR7242: 
    156164                ar7240_usb_setup(); 
    157165                break; 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/devices.c

    r18985 r20494  
    8585void __init ar71xx_add_device_mdio(u32 phy_mask) 
    8686{ 
    87         if (ar71xx_soc == AR71XX_SOC_AR7240) 
     87        switch (ar71xx_soc) { 
     88        case AR71XX_SOC_AR7240: 
     89        case AR71XX_SOC_AR7241: 
     90        case AR71XX_SOC_AR7242: 
    8891                ar71xx_mdio_data.is_ar7240 = 1; 
     92                break; 
     93        default: 
     94                break; 
     95        } 
    8996 
    9097        ar71xx_mdio_data.phy_mask = phy_mask; 
     
    334341 
    335342        case AR71XX_SOC_AR7240: 
     343        case AR71XX_SOC_AR7241: 
     344        case AR71XX_SOC_AR7242: 
    336345                pll_10 = AR724X_PLL_VAL_10; 
    337346                pll_100 = AR724X_PLL_VAL_100; 
     
    429438 
    430439        case AR71XX_SOC_AR7240: 
     440        case AR71XX_SOC_AR7241: 
     441        case AR71XX_SOC_AR7242: 
    431442                pdata->ddr_flush = id ? ar724x_ddr_flush_ge1 
    432443                                      : ar724x_ddr_flush_ge0; 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/gpio.c

    r20247 r20494  
    163163 
    164164        case AR71XX_SOC_AR7240: 
     165        case AR71XX_SOC_AR7241: 
     166        case AR71XX_SOC_AR7242: 
    165167                ar71xx_gpio_chip.ngpio = AR724X_GPIO_COUNT; 
    166168                break; 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/irq.c

    r20286 r20494  
    210210        __raw_writel(0, base + AR71XX_RESET_REG_MISC_INT_STATUS); 
    211211 
    212         if (ar71xx_soc == AR71XX_SOC_AR7240) 
     212        switch (ar71xx_soc) { 
     213        case AR71XX_SOC_AR7240: 
     214        case AR71XX_SOC_AR7241: 
     215        case AR71XX_SOC_AR7242: 
    213216                ar71xx_misc_irq_chip.ack = ar724x_misc_irq_ack; 
    214         else 
     217                break; 
     218        default: 
    215219                ar71xx_misc_irq_chip.mask_ack = ar71xx_misc_irq_mask; 
     220                break; 
     221        } 
    216222 
    217223        for (i = AR71XX_MISC_IRQ_BASE; 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/pci.c

    r16676 r20494  
    5353 
    5454        case AR71XX_SOC_AR7240: 
     55        case AR71XX_SOC_AR7241: 
     56        case AR71XX_SOC_AR7242: 
    5557                ret = ar724x_pcibios_map_irq(dev, slot, pin); 
    5658                break; 
     
    7678 
    7779        case AR71XX_SOC_AR7240: 
     80        case AR71XX_SOC_AR7241: 
     81        case AR71XX_SOC_AR7242: 
    7882                ret = ar724x_pcibios_init(); 
    7983                break; 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/setup.c

    r20278 r20494  
    107107                break; 
    108108 
    109         case REV_ID_MAJOR_AR724X: 
     109        case REV_ID_MAJOR_AR7240: 
    110110                ar71xx_soc = AR71XX_SOC_AR7240; 
    111111                chip = "7240"; 
     112                rev = (id & AR724X_REV_ID_REVISION_MASK); 
     113                break; 
     114 
     115        case REV_ID_MAJOR_AR7241: 
     116                ar71xx_soc = AR71XX_SOC_AR7241; 
     117                chip = "7241"; 
     118                rev = (id & AR724X_REV_ID_REVISION_MASK); 
     119                break; 
     120 
     121        case REV_ID_MAJOR_AR7242: 
     122                ar71xx_soc = AR71XX_SOC_AR7242; 
     123                chip = "7242"; 
    112124                rev = (id & AR724X_REV_ID_REVISION_MASK); 
    113125                break; 
     
    211223 
    212224        case AR71XX_SOC_AR7240: 
     225        case AR71XX_SOC_AR7241: 
     226        case AR71XX_SOC_AR7242: 
    213227                ar724x_detect_sys_frequency(); 
    214228                break; 
  • trunk/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/ar71xx.h

    r20493 r20494  
    113113        AR71XX_SOC_AR7161, 
    114114        AR71XX_SOC_AR7240, 
     115        AR71XX_SOC_AR7241, 
     116        AR71XX_SOC_AR7242, 
    115117        AR71XX_SOC_AR9130, 
    116118        AR71XX_SOC_AR9132 
     
    430432#define AR724X_RESET_PCIE               BIT(6) 
    431433 
    432 #define REV_ID_MAJOR_MASK       0xf0 
    433 #define REV_ID_MAJOR_AR71XX     0xa0 
    434 #define REV_ID_MAJOR_AR913X     0xb0 
    435 #define REV_ID_MAJOR_AR724X     0xc0 
     434#define REV_ID_MAJOR_MASK       0xfff0 
     435#define REV_ID_MAJOR_AR71XX     0x00a0 
     436#define REV_ID_MAJOR_AR913X     0x00b0 
     437#define REV_ID_MAJOR_AR7240     0x00c0 
     438#define REV_ID_MAJOR_AR7241     0x0100 
     439#define REV_ID_MAJOR_AR7242     0x1100 
    436440 
    437441#define AR71XX_REV_ID_MINOR_MASK        0x3 
  • trunk/target/linux/ar71xx/files/arch/mips/pci/pci-ar724x.c

    r20493 r20494  
    249249        } 
    250250 
     251        if (ar71xx_soc == AR71XX_SOC_AR7241 || ar71xx_soc == AR71XX_SOC_AR7242) { 
     252                t = __raw_readl(base + AR724X_PCI_REG_APP); 
     253                t |= BIT(16); 
     254                __raw_writel(t, base + AR724X_PCI_REG_APP); 
     255        } 
     256 
    251257        return 0; 
    252258} 
Note: See TracChangeset for help on using the changeset viewer.