From: Masahiro Yamada Date: Fri, 25 Aug 2017 16:02:39 +0000 (+0900) Subject: linux/io.h: import generic ioread* / iowrite* accessors from Linux X-Git-Tag: v2017.11-rc1~148 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=6c06f8dc4ab02890ef93b50dac129c2b43cc9ea3;p=oweals%2Fu-boot.git linux/io.h: import generic ioread* / iowrite* accessors from Linux Some drivers in Linux (ex. drivers/mtd/nand/denali.c) use ioread*/iowrite* accessors. Import them to make drivers more synced. I copied code from include/asm-generic/io.h of Linux. Signed-off-by: Masahiro Yamada --- diff --git a/include/linux/io.h b/include/linux/io.h index a104b7e69f..bf1ddbbaa6 100644 --- a/include/linux/io.h +++ b/include/linux/io.h @@ -9,6 +9,50 @@ #include #include +static inline u8 ioread8(const volatile void __iomem *addr) +{ + return readb(addr); +} + +static inline u16 ioread16(const volatile void __iomem *addr) +{ + return readw(addr); +} + +static inline u32 ioread32(const volatile void __iomem *addr) +{ + return readl(addr); +} + +#ifdef CONFIG_64BIT +static inline u64 ioread64(const volatile void __iomem *addr) +{ + return readq(addr); +} +#endif /* CONFIG_64BIT */ + +static inline void iowrite8(u8 value, volatile void __iomem *addr) +{ + writeb(value, addr); +} + +static inline void iowrite16(u16 value, volatile void __iomem *addr) +{ + writew(value, addr); +} + +static inline void iowrite32(u32 value, volatile void __iomem *addr) +{ + writel(value, addr); +} + +#ifdef CONFIG_64BIT +static inline void iowrite64(u64 value, volatile void __iomem *addr) +{ + writeq(value, addr); +} +#endif /* CONFIG_64BIT */ + #ifndef CONFIG_HAVE_ARCH_IOREMAP static inline void __iomem *ioremap(resource_size_t offset, resource_size_t size)