Linux-2.6.12-rc2
[linux-2.6/next.git] / include / asm-m68knommu / mcfpci.h
blobd6229047d06e3be8494cb2daec14cf962ef031cb
1 /****************************************************************************/
3 /*
4 * mcfpci.h -- PCI bridge on ColdFire eval boards.
6 * (C) Copyright 2000, Greg Ungerer (gerg@snapgear.com)
7 * (C) Copyright 2000, Lineo Inc. (www.lineo.com)
8 */
10 /****************************************************************************/
11 #ifndef mcfpci_h
12 #define mcfpci_h
13 /****************************************************************************/
15 #include <linux/config.h>
17 #ifdef CONFIG_PCI
20 * Address regions in the PCI address space are not mapped into the
21 * normal memory space of the ColdFire. They must be accessed via
22 * handler routines. This is easy for I/O space (inb/outb/etc) but
23 * needs some code changes to support ordinary memory. Interrupts
24 * also need to be vectored through the PCI handler first, then it
25 * will call the actual driver sub-handlers.
29 * Un-define all the standard I/O access routines.
31 #undef inb
32 #undef inw
33 #undef inl
34 #undef inb_p
35 #undef inw_p
36 #undef insb
37 #undef insw
38 #undef insl
39 #undef outb
40 #undef outw
41 #undef outl
42 #undef outb_p
43 #undef outw_p
44 #undef outsb
45 #undef outsw
46 #undef outsl
48 #undef request_irq
49 #undef free_irq
51 #undef bus_to_virt
52 #undef virt_to_bus
56 * Re-direct all I/O memory accesses functions to PCI specific ones.
58 #define inb pci_inb
59 #define inw pci_inw
60 #define inl pci_inl
61 #define inb_p pci_inb
62 #define inw_p pci_inw
63 #define insb pci_insb
64 #define insw pci_insw
65 #define insl pci_insl
67 #define outb pci_outb
68 #define outw pci_outw
69 #define outl pci_outl
70 #define outb_p pci_outb
71 #define outw_p pci_outw
72 #define outsb pci_outsb
73 #define outsw pci_outsw
74 #define outsl pci_outsl
76 #define request_irq pci_request_irq
77 #define free_irq pci_free_irq
79 #define virt_to_bus pci_virt_to_bus
80 #define bus_to_virt pci_bus_to_virt
82 #define CONFIG_COMEMPCI 1
86 * Prototypes of the real PCI functions (defined in bios32.c).
88 unsigned char pci_inb(unsigned int addr);
89 unsigned short pci_inw(unsigned int addr);
90 unsigned int pci_inl(unsigned int addr);
91 void pci_insb(void *addr, void *buf, int len);
92 void pci_insw(void *addr, void *buf, int len);
93 void pci_insl(void *addr, void *buf, int len);
95 void pci_outb(unsigned char val, unsigned int addr);
96 void pci_outw(unsigned short val, unsigned int addr);
97 void pci_outl(unsigned int val, unsigned int addr);
98 void pci_outsb(void *addr, void *buf, int len);
99 void pci_outsw(void *addr, void *buf, int len);
100 void pci_outsl(void *addr, void *buf, int len);
102 int pci_request_irq(unsigned int irq,
103 void (*handler)(int, void *, struct pt_regs *),
104 unsigned long flags,
105 const char *device,
106 void *dev_id);
107 void pci_free_irq(unsigned int irq, void *dev_id);
109 void *pci_bmalloc(int size);
110 void pci_bmfree(void *bmp, int len);
111 void pci_copytoshmem(unsigned long bmp, void *src, int size);
112 void pci_copyfromshmem(void *dst, unsigned long bmp, int size);
113 unsigned long pci_virt_to_bus(volatile void *address);
114 void *pci_bus_to_virt(unsigned long address);
115 void pci_bmcpyto(void *dst, void *src, int len);
116 void pci_bmcpyfrom(void *dst, void *src, int len);
118 #endif /* CONFIG_PCI */
119 /****************************************************************************/
120 #endif /* mcfpci_h */