Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[sfrench/cifs-2.6.git] / arch / mips / include / asm / octeon / pci-octeon.h
1 /*
2  * This file is subject to the terms and conditions of the GNU General Public
3  * License.  See the file "COPYING" in the main directory of this archive
4  * for more details.
5  *
6  * Copyright (C) 2005-2009 Cavium Networks
7  */
8
9 #ifndef __PCI_OCTEON_H__
10 #define __PCI_OCTEON_H__
11
12 #include <linux/pci.h>
13
14 /* Some PCI cards require delays when accessing config space. */
15 #define PCI_CONFIG_SPACE_DELAY 10000
16
17 /*
18  * pcibios_map_irq() is defined inside pci-octeon.c. All it does is
19  * call the Octeon specific version pointed to by this variable. This
20  * function needs to change for PCI or PCIe based hosts.
21  */
22 extern int (*octeon_pcibios_map_irq)(const struct pci_dev *dev,
23                                      u8 slot, u8 pin);
24
25 /*
26  * The following defines are used when octeon_dma_bar_type =
27  * OCTEON_DMA_BAR_TYPE_BIG
28  */
29 #define OCTEON_PCI_BAR1_HOLE_BITS 5
30 #define OCTEON_PCI_BAR1_HOLE_SIZE (1ul<<(OCTEON_PCI_BAR1_HOLE_BITS+3))
31
32 enum octeon_dma_bar_type {
33         OCTEON_DMA_BAR_TYPE_INVALID,
34         OCTEON_DMA_BAR_TYPE_SMALL,
35         OCTEON_DMA_BAR_TYPE_BIG,
36         OCTEON_DMA_BAR_TYPE_PCIE
37 };
38
39 /*
40  * This tells the DMA mapping system in dma-octeon.c how to map PCI
41  * DMA addresses.
42  */
43 extern enum octeon_dma_bar_type octeon_dma_bar_type;
44
45 #endif