| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 | #include <linux/config.h> | 
 | 16 |  | 
 | 17 | #ifdef CONFIG_PCI | 
 | 18 |  | 
 | 19 | /* | 
 | 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. | 
 | 26 |  */ | 
 | 27 |  | 
 | 28 | /* | 
 | 29 |  *	Un-define all the standard I/O access routines. | 
 | 30 |  */ | 
 | 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 | 
 | 47 |  | 
 | 48 | #undef	request_irq | 
 | 49 | #undef	free_irq | 
 | 50 |  | 
 | 51 | #undef	bus_to_virt | 
 | 52 | #undef	virt_to_bus | 
 | 53 |  | 
 | 54 |  | 
 | 55 | /* | 
 | 56 |  *	Re-direct all I/O memory accesses functions to PCI specific ones. | 
 | 57 |  */ | 
 | 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 | 
 | 66 |  | 
 | 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 | 
 | 75 |  | 
 | 76 | #define	request_irq	pci_request_irq | 
 | 77 | #define	free_irq	pci_free_irq | 
 | 78 |  | 
 | 79 | #define	virt_to_bus	pci_virt_to_bus | 
 | 80 | #define	bus_to_virt	pci_bus_to_virt | 
 | 81 |  | 
 | 82 | #define	CONFIG_COMEMPCI	1 | 
 | 83 |  | 
 | 84 |  | 
 | 85 | /* | 
 | 86 |  *	Prototypes of the real PCI functions (defined in bios32.c). | 
 | 87 |  */ | 
 | 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); | 
 | 94 |  | 
 | 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); | 
 | 101 |  | 
 | 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); | 
 | 108 |  | 
 | 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); | 
 | 117 |  | 
 | 118 | #endif /* CONFIG_PCI */ | 
 | 119 | /****************************************************************************/ | 
 | 120 | #endif	/* mcfpci_h */ |