Browse Source

kconfig: Introduce HAVE_ARCH_IOMAP

Introduce a new Kconfig option for architecture codes to control
whether it provides io{read,write}{8,16,32} I/O accessor functions.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Bin Meng 6 years ago
parent
commit
2895c4b7d6
2 changed files with 10 additions and 0 deletions
  1. 4 0
      include/linux/io.h
  2. 6 0
      lib/Kconfig

+ 4 - 0
include/linux/io.h

@@ -7,6 +7,7 @@
 #include <linux/types.h>
 #include <linux/types.h>
 #include <asm/io.h>
 #include <asm/io.h>
 
 
+#ifndef CONFIG_HAVE_ARCH_IOMAP
 static inline u8 ioread8(const volatile void __iomem *addr)
 static inline u8 ioread8(const volatile void __iomem *addr)
 {
 {
 	return readb(addr);
 	return readb(addr);
@@ -21,6 +22,7 @@ static inline u32 ioread32(const volatile void __iomem *addr)
 {
 {
 	return readl(addr);
 	return readl(addr);
 }
 }
+#endif /* !CONFIG_HAVE_ARCH_IOMAP */
 
 
 #ifdef CONFIG_64BIT
 #ifdef CONFIG_64BIT
 static inline u64 ioread64(const volatile void __iomem *addr)
 static inline u64 ioread64(const volatile void __iomem *addr)
@@ -29,6 +31,7 @@ static inline u64 ioread64(const volatile void __iomem *addr)
 }
 }
 #endif /* CONFIG_64BIT */
 #endif /* CONFIG_64BIT */
 
 
+#ifndef CONFIG_HAVE_ARCH_IOMAP
 static inline void iowrite8(u8 value, volatile void __iomem *addr)
 static inline void iowrite8(u8 value, volatile void __iomem *addr)
 {
 {
 	writeb(value, addr);
 	writeb(value, addr);
@@ -43,6 +46,7 @@ static inline void iowrite32(u32 value, volatile void __iomem *addr)
 {
 {
 	writel(value, addr);
 	writel(value, addr);
 }
 }
+#endif /* !CONFIG_HAVE_ARCH_IOMAP */
 
 
 #ifdef CONFIG_64BIT
 #ifdef CONFIG_64BIT
 static inline void iowrite64(u64 value, volatile void __iomem *addr)
 static inline void iowrite64(u64 value, volatile void __iomem *addr)

+ 6 - 0
lib/Kconfig

@@ -21,6 +21,12 @@ config DYNAMIC_CRC_TABLE
 	  Enable this option to calculate entries for CRC tables at runtime.
 	  Enable this option to calculate entries for CRC tables at runtime.
 	  This can be helpful when reducing the size of the build image
 	  This can be helpful when reducing the size of the build image
 
 
+config HAVE_ARCH_IOMAP
+	bool
+	help
+	  Enable this option if architecture provides io{read,write}{8,16,32}
+	  I/O accessor functions.
+
 config HAVE_PRIVATE_LIBGCC
 config HAVE_PRIVATE_LIBGCC
 	bool
 	bool