[PATCH 03/15] SPEAr13xx: Add mach/io.h
From: Pratyush Anand <hidden>
Date: 2012-10-29 07:01:17
Also in:
linux-pci
Subsystem:
arm port, the rest · Maintainers:
Russell King, Linus Torvalds
From: Pratyush Anand <hidden>
Date: 2012-10-29 07:01:17
Also in:
linux-pci
Subsystem:
arm port, the rest · Maintainers:
Russell King, Linus Torvalds
In case of PCIe we need to have a different __io macro, which can write into PCIe address space. Signed-off-by: Pratyush Anand <redacted> --- arch/arm/mach-spear13xx/include/mach/io.h | 35 +++++++++++++++++++++++++++++ 1 files changed, 35 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-spear13xx/include/mach/io.h
diff --git a/arch/arm/mach-spear13xx/include/mach/io.h b/arch/arm/mach-spear13xx/include/mach/io.h
new file mode 100644
index 0000000..a0d93ca
--- /dev/null
+++ b/arch/arm/mach-spear13xx/include/mach/io.h@@ -0,0 +1,35 @@ +/* + * arch/arm/mach-spear13xx/include/mach/io.h + * + * spear13xx machine family generic header file + * + * Copyright (C) 2012 ST Microelectronics + * Pratyush Anand <pratyush.anand@st.com> + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +#ifndef __MACH_IO_H +#define __MACH_IO_H + +#define IO_SPACE_LIMIT 0xFFFF + +#ifdef CONFIG_SPEAR13XX_PCI +extern void __iomem *spear13xx_pcie_io_base(unsigned long addr); + +static inline void __iomem *__io(unsigned long addr) +{ + return spear13xx_pcie_io_base(addr) + (addr & IO_SPACE_LIMIT); +} +#else +static inline void __iomem *__io(unsigned long addr) +{ + return (void __iomem *)addr; +} +#endif + +#define __io(a) __io(a) + +#endif /* __MACH_IO_H */
--
1.7.5.4