@@ -150,6 +150,7 @@ __BUILD_MEMORY_STRING(__raw_, q, u64)
*/
#undef CONF_SLOWDOWN_IO
+#ifndef CONFIG_GENERIC_IOMAP
/*
* On SuperH I/O ports are memory mapped, so we access them using normal
* load/store instructions. sh_io_port_base is the virtual address to
@@ -163,11 +164,7 @@ static inline void __set_io_port_base(unsigned long pbase)
barrier();
}
-#ifdef CONFIG_GENERIC_IOMAP
-#define __ioport_map ioport_map
-#else
extern void __iomem *__ioport_map(unsigned long addr, unsigned int size);
-#endif
#ifdef CONF_SLOWDOWN_IO
#define SLOW_DOWN_IO __raw_readw(sh_io_port_base)
@@ -239,12 +236,6 @@ __BUILD_IOPORT_STRING(w, u16)
__BUILD_IOPORT_STRING(l, u32)
__BUILD_IOPORT_STRING(q, u64)
-#else /* !CONFIG_HAS_IOPORT_MAP */
-
-#include <asm/io_noioport.h>
-
-#endif
-
#define inb(addr) inb(addr)
#define inw(addr) inw(addr)
#define inl(addr) inl(addr)
@@ -265,6 +256,21 @@ __BUILD_IOPORT_STRING(q, u64)
#define outsb outsb
#define outsw outsw
#define outsl outsl
+#else /* !CONFIG_GENERIC_IOMAP */
+#define __ioport_map ioport_map
+#endif
+
+#else /* !CONFIG_HAS_IOPORT_MAP */
+
+#define insb insb
+#define insw insw
+#define insl insl
+#define outsb outsb
+#define outsw outsw
+#define outsl outsl
+#include <asm/io_noioport.h>
+
+#endif
#define IO_SPACE_LIMIT 0xffffffff
@@ -311,10 +317,20 @@ unsigned long long poke_real_address_q(unsigned long long addr,
#define xlate_dev_mem_ptr(p) __va(p)
#define unxlate_dev_mem_ptr(p, v) do { } while (0)
-#include <asm-generic/io.h>
-
#define ARCH_HAS_VALID_PHYS_ADDR_RANGE
int valid_phys_addr_range(phys_addr_t addr, size_t size);
int valid_mmap_phys_addr_range(unsigned long pfn, size_t size);
+
+#ifdef __KERNEL__
+#define PCI_IOBASE ((void __iomem *)0xfe240000UL)
+
+#define HAVE_ARCH_PIO_SIZE
+#define PIO_OFFSET 0xfe240000UL
+#define PIO_MASK 0x3ffffUL
+#define PIO_RESERVED 0x40000UL
+#endif /* __KERNEL__ */
+
+#include <asm-generic/io.h>
+
#endif /* __ASM_SH_IO_H */
similarity index 99%
rename from arch/sh/drivers/pci/pci-sh4.h
rename to arch/sh/include/asm/pci-sh4.h
@@ -5,9 +5,9 @@
#if defined(CONFIG_CPU_SUBTYPE_SH7780) || \
defined(CONFIG_CPU_SUBTYPE_SH7785) || \
defined(CONFIG_CPU_SUBTYPE_SH7763)
-#include "pci-sh7780.h"
+#include <asm/pci-sh7780.h>
#else
-#include "pci-sh7751.h"
+#include <asm/pci-sh7751.h>
#endif
#include <asm/io.h>
@@ -153,6 +153,7 @@
#define SH4_PCIPDTR_PB0 0x000000001 /* Port 0 Enable */
#define SH4_PCIPDR 0x220 /* Port IO Data Register */
+#ifndef CONFIG_PCI_HOST_COMMON
/* arch/sh/kernel/drivers/pci/ops-sh4.c */
extern struct pci_ops sh4_pci_ops;
int pci_fixup_pcic(struct pci_channel *chan);
@@ -178,5 +179,5 @@ static inline unsigned long pci_read_reg(struct pci_channel *chan,
{
return __raw_readl(chan->reg_base + reg);
}
-
+#endif
#endif /* __PCI_SH4_H */
similarity index 100%
rename from arch/sh/drivers/pci/pci-sh7751.h
rename to arch/sh/include/asm/pci-sh7751.h
similarity index 100%
rename from arch/sh/drivers/pci/pci-sh7780.h
rename to arch/sh/include/asm/pci-sh7780.h
@@ -2,6 +2,7 @@
#ifndef __ASM_SH_PCI_H
#define __ASM_SH_PCI_H
+#ifndef CONFIG_SH_DEVICE_TREE
/* Can be used to override the logic in pci_scan_bus for skipping
already-configured bus numbers - to be used for buggy BIOSes
or architectures with incomplete PCI setup by the loader */
@@ -88,4 +89,7 @@ static inline int pci_proc_domain(struct pci_bus *bus)
return hose->need_domain_info;
}
+#else /* CONFIG_SH_DEVICE_TREE */
+#include <asm-generic/pci.h>
+#endif
#endif /* __ASM_SH_PCI_H */
When CONFIG_OF=y, a common PCI framework is used. The new driver also needs to reference PCI headers, so move the necessary header files to a public location rather than a private one. Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> --- arch/sh/include/asm/io.h | 40 +++++++++++++------ .../sh/{drivers/pci => include/asm}/pci-sh4.h | 7 ++-- .../{drivers/pci => include/asm}/pci-sh7751.h | 0 .../{drivers/pci => include/asm}/pci-sh7780.h | 0 arch/sh/include/asm/pci.h | 4 ++ 5 files changed, 36 insertions(+), 15 deletions(-) rename arch/sh/{drivers/pci => include/asm}/pci-sh4.h (99%) rename arch/sh/{drivers/pci => include/asm}/pci-sh7751.h (100%) rename arch/sh/{drivers/pci => include/asm}/pci-sh7780.h (100%)