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