aboutsummaryrefslogtreecommitdiff
path: root/arch/sparc/include/asm/pci_32.h
diff options
context:
space:
mode:
authorDaniel Hellstrom <daniel@gaisler.com>2011-05-23 21:04:47 +0000
committerDavid S. Miller <davem@davemloft.net>2011-06-02 14:32:37 -0700
commit26893c1368aeb96e06e4f9dce61bbde3351d5e9f (patch)
tree1457ec4070127d751d7c4f938d37c1dcf5aa901d /arch/sparc/include/asm/pci_32.h
parentcfe3af5dde34a019c1bd2485b1dc0f2d7a326ccd (diff)
sparc32,leon: added LEON-common low-level PCI routines
The LEON architecture does not have a BIOS or bootloader that initializes PCI for us, instead Linux generic PCI layer is used to set up resources and IRQ. Signed-off-by: Daniel Hellstrom <daniel@gaisler.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/include/asm/pci_32.h')
-rw-r--r--arch/sparc/include/asm/pci_32.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/arch/sparc/include/asm/pci_32.h b/arch/sparc/include/asm/pci_32.h
index 332ac9ab36b..862e3ce92b1 100644
--- a/arch/sparc/include/asm/pci_32.h
+++ b/arch/sparc/include/asm/pci_32.h
@@ -47,7 +47,31 @@ extern struct device_node *pci_device_to_OF_node(struct pci_dev *pdev);
#endif /* __KERNEL__ */
+#ifndef CONFIG_LEON_PCI
/* generic pci stuff */
#include <asm-generic/pci.h>
+#else
+/*
+ * On LEON PCI Memory space is mapped 1:1 with physical address space.
+ *
+ * I/O space is located at low 64Kbytes in PCI I/O space. The I/O addresses
+ * are converted into CPU addresses to virtual addresses that are mapped with
+ * MMU to the PCI Host PCI I/O space window which are translated to the low
+ * 64Kbytes by the Host controller.
+ */
+
+extern void
+pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
+ struct resource *res);
+
+extern void
+pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
+ struct pci_bus_region *region);
+
+static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
+{
+ return PCI_IRQ_NONE;
+}
+#endif
#endif /* __SPARC_PCI_H */