linux/io.h: add generic ioremap()/iounmap() defines
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Tue, 28 Jun 2016 01:48:42 +0000 (10:48 +0900)
committerTom Rini <trini@konsulko.com>
Thu, 14 Jul 2016 22:22:26 +0000 (18:22 -0400)
For most of architectures in U-Boot, virtual address is straight
mapped to physical address.  So, it makes sense to have generic
defines of ioremap and friends in <linux/io.h>.

All of them are just empty and will disappear at compile time, but
they will be helpful to implement drivers which are counterparts of
Linux ones.

I notice MIPS already has its own implementation, so I added a
Kconfig symbol CONFIG_HAVE_ARCH_IOREMAP which MIPS (and maybe
Sandbox as well) can select.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
arch/Kconfig
include/linux/io.h

index c43787c63962af2c9b2d9d8ab381de2a67a8e2cb..92d4b97701bf6b160e99f2214328fac1046c47e8 100644 (file)
@@ -1,6 +1,9 @@
 config CREATE_ARCH_SYMLINK
        bool
 
+config HAVE_ARCH_IOREMAP
+       bool
+
 choice
        prompt "Architecture select"
        default SANDBOX
@@ -33,6 +36,7 @@ config MICROBLAZE
 
 config MIPS
        bool "MIPS architecture"
+       select HAVE_ARCH_IOREMAP
        select HAVE_PRIVATE_LIBGCC
        select SUPPORT_OF_CONTROL
 
index 1b36a2299e1b095f298e550242207f5141852fde..a104b7e69f7c871d267f7a541683b831aed3a071 100644 (file)
@@ -5,6 +5,22 @@
 #ifndef _LINUX_IO_H
 #define _LINUX_IO_H
 
+#include <linux/compiler.h>
+#include <linux/types.h>
 #include <asm/io.h>
 
+#ifndef CONFIG_HAVE_ARCH_IOREMAP
+static inline void __iomem *ioremap(resource_size_t offset,
+                                   resource_size_t size)
+{
+       return (void __iomem *)(unsigned long)offset;
+}
+
+static inline void iounmap(void __iomem *addr)
+{
+}
+
+#define devm_ioremap(dev, offset, size)                ioremap(offset, size)
+#endif
+
 #endif /* _LINUX_IO_H */