Changeset 17914


Ignore:
Timestamp:
2009-10-05T20:44:06+02:00 (7 years ago)
Author:
juhosg
Message:

ramips: merge ops-rt288x.c and rt288x_pci.h into pci-rt288x.c

Location:
trunk/target/linux/ramips
Files:
2 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ramips/files/arch/mips/pci/pci-rt288x.c

    r17862 r17914  
    55 
    66#include <asm/mach-ralink/rt288x.h> 
    7 #include <asm/mach-ralink/rt288x_pci.h> 
    87 
    9 extern int pci_config_read(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 *val); 
    10 extern int pci_config_write(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 val); 
     8#define RT2880_PCI_SLOT1_BASE           0x20000000 
     9#define RALINK_PCI_BASE                 0xA0440000 
     10#define RT2880_PCI_PCICFG_ADDR          ((unsigned long*)(RALINK_PCI_BASE + 0x0000)) 
     11#define RT2880_PCI_ARBCTL               ((unsigned long*)(RALINK_PCI_BASE + 0x0080)) 
     12#define RT2880_PCI_BAR0SETUP_ADDR       ((unsigned long*)(RALINK_PCI_BASE + 0x0010)) 
     13#define RT2880_PCI_CONFIG_ADDR          ((unsigned long*)(RALINK_PCI_BASE + 0x0020)) 
     14#define RT2880_PCI_CONFIG_DATA          ((unsigned long*)(RALINK_PCI_BASE + 0x0024)) 
     15#define RT2880_PCI_MEMBASE              ((unsigned long*)(RALINK_PCI_BASE + 0x0028)) 
     16#define RT2880_PCI_IOBASE               ((unsigned long*)(RALINK_PCI_BASE + 0x002C)) 
     17#define RT2880_PCI_IMBASEBAR0_ADDR      ((unsigned long*)(RALINK_PCI_BASE + 0x0018)) 
     18#define RT2880_PCI_ID                   ((unsigned long*)(RALINK_PCI_BASE + 0x0030)) 
     19#define RT2880_PCI_CLASS                ((unsigned long*)(RALINK_PCI_BASE + 0x0034)) 
     20#define RT2880_PCI_SUBID                ((unsigned long*)(RALINK_PCI_BASE + 0x0038)) 
     21#define RT2880_PCI_PCIMSK_ADDR          ((unsigned long*)(RALINK_PCI_BASE + 0x000C)) 
     22 
     23#define PCI_ACCESS_READ  0 
     24#define PCI_ACCESS_WRITE 1 
     25 
     26static int config_access(unsigned char access_type, struct pci_bus *bus, 
     27        unsigned int devfn, unsigned char where, u32 * data) 
     28{ 
     29        unsigned int slot = PCI_SLOT(devfn); 
     30        unsigned int address; 
     31        u8 func = PCI_FUNC(devfn); 
     32        address = (bus->number << 16) | (slot << 11) | (func << 8) | (where& 0xfc) | 0x80000000; 
     33        writel(address, RT2880_PCI_CONFIG_ADDR); 
     34        if (access_type == PCI_ACCESS_WRITE) 
     35                writel(*data, RT2880_PCI_CONFIG_DATA); 
     36        else 
     37                *data = readl(RT2880_PCI_CONFIG_DATA); 
     38        return 0; 
     39} 
     40 
     41int 
     42pci_config_read(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 * val) 
     43{ 
     44        u32 data = 0; 
     45        if(config_access(PCI_ACCESS_READ, bus, devfn, where, &data)) 
     46                return PCIBIOS_DEVICE_NOT_FOUND; 
     47        if(size == 1) 
     48                *val = (data >> ((where & 3) << 3)) & 0xff; 
     49        else if(size == 2) 
     50                *val = (data >> ((where & 3) << 3)) & 0xffff; 
     51        else 
     52                *val = data; 
     53        return PCIBIOS_SUCCESSFUL; 
     54} 
     55 
     56int 
     57pci_config_write(struct pci_bus *bus, unsigned int devfn, 
     58        int where, int size, u32 val) 
     59{ 
     60        u32 data = 0; 
     61        if(size == 4) 
     62        { 
     63                data = val; 
     64        } else { 
     65                if(config_access(PCI_ACCESS_READ, bus, devfn, where, &data)) 
     66                        return PCIBIOS_DEVICE_NOT_FOUND; 
     67                if(size == 1) 
     68                        data = (data & ~(0xff << ((where & 3) << 3))) | 
     69                                (val << ((where & 3) << 3)); 
     70                else if(size == 2) 
     71                        data = (data & ~(0xffff << ((where & 3) << 3))) | 
     72                                (val << ((where & 3) << 3)); 
     73        } 
     74        if(config_access(PCI_ACCESS_WRITE, bus, devfn, where, &data)) 
     75                return PCIBIOS_DEVICE_NOT_FOUND; 
     76        return PCIBIOS_SUCCESSFUL; 
     77} 
    1178 
    1279struct pci_ops rt2880_pci_ops = { 
  • trunk/target/linux/ramips/patches-2.6.30/102-rt288x-pci-driver-hook.patch

    r17860 r17914  
    55 obj-$(CONFIG_WR_PPMC)          += fixup-wrppmc.o 
    66 obj-$(CONFIG_MIKROTIK_RB532)   += pci-rc32434.o ops-rc32434.o fixup-rc32434.o 
    7 +obj-$(CONFIG_SOC_RT288X)       += pci-rt288x.o ops-rt288x.o 
     7+obj-$(CONFIG_SOC_RT288X)       += pci-rt288x.o 
Note: See TracChangeset for help on using the changeset viewer.