Skip to content

Commit 6c06f8d

Browse files
masahir0ytrini
authored andcommitted
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 <yamada.masahiro@socionext.com>
1 parent b27af39 commit 6c06f8d

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

include/linux/io.h

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,50 @@
99
#include <linux/types.h>
1010
#include <asm/io.h>
1111

12+
static inline u8 ioread8(const volatile void __iomem *addr)
13+
{
14+
return readb(addr);
15+
}
16+
17+
static inline u16 ioread16(const volatile void __iomem *addr)
18+
{
19+
return readw(addr);
20+
}
21+
22+
static inline u32 ioread32(const volatile void __iomem *addr)
23+
{
24+
return readl(addr);
25+
}
26+
27+
#ifdef CONFIG_64BIT
28+
static inline u64 ioread64(const volatile void __iomem *addr)
29+
{
30+
return readq(addr);
31+
}
32+
#endif /* CONFIG_64BIT */
33+
34+
static inline void iowrite8(u8 value, volatile void __iomem *addr)
35+
{
36+
writeb(value, addr);
37+
}
38+
39+
static inline void iowrite16(u16 value, volatile void __iomem *addr)
40+
{
41+
writew(value, addr);
42+
}
43+
44+
static inline void iowrite32(u32 value, volatile void __iomem *addr)
45+
{
46+
writel(value, addr);
47+
}
48+
49+
#ifdef CONFIG_64BIT
50+
static inline void iowrite64(u64 value, volatile void __iomem *addr)
51+
{
52+
writeq(value, addr);
53+
}
54+
#endif /* CONFIG_64BIT */
55+
1256
#ifndef CONFIG_HAVE_ARCH_IOREMAP
1357
static inline void __iomem *ioremap(resource_size_t offset,
1458
resource_size_t size)

0 commit comments

Comments
 (0)