xref: /OK3568_Linux_fs/u-boot/include/linux/io.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0+
3*4882a593Smuzhiyun  */
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun #ifndef _LINUX_IO_H
6*4882a593Smuzhiyun #define _LINUX_IO_H
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #include <linux/compiler.h>
9*4882a593Smuzhiyun #include <linux/types.h>
10*4882a593Smuzhiyun #include <asm/io.h>
11*4882a593Smuzhiyun 
ioread8(const volatile void __iomem * addr)12*4882a593Smuzhiyun static inline u8 ioread8(const volatile void __iomem *addr)
13*4882a593Smuzhiyun {
14*4882a593Smuzhiyun 	return readb(addr);
15*4882a593Smuzhiyun }
16*4882a593Smuzhiyun 
ioread16(const volatile void __iomem * addr)17*4882a593Smuzhiyun static inline u16 ioread16(const volatile void __iomem *addr)
18*4882a593Smuzhiyun {
19*4882a593Smuzhiyun 	return readw(addr);
20*4882a593Smuzhiyun }
21*4882a593Smuzhiyun 
ioread32(const volatile void __iomem * addr)22*4882a593Smuzhiyun static inline u32 ioread32(const volatile void __iomem *addr)
23*4882a593Smuzhiyun {
24*4882a593Smuzhiyun 	return readl(addr);
25*4882a593Smuzhiyun }
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun #ifdef CONFIG_64BIT
ioread64(const volatile void __iomem * addr)28*4882a593Smuzhiyun static inline u64 ioread64(const volatile void __iomem *addr)
29*4882a593Smuzhiyun {
30*4882a593Smuzhiyun 	return readq(addr);
31*4882a593Smuzhiyun }
32*4882a593Smuzhiyun #endif /* CONFIG_64BIT */
33*4882a593Smuzhiyun 
iowrite8(u8 value,volatile void __iomem * addr)34*4882a593Smuzhiyun static inline void iowrite8(u8 value, volatile void __iomem *addr)
35*4882a593Smuzhiyun {
36*4882a593Smuzhiyun 	writeb(value, addr);
37*4882a593Smuzhiyun }
38*4882a593Smuzhiyun 
iowrite16(u16 value,volatile void __iomem * addr)39*4882a593Smuzhiyun static inline void iowrite16(u16 value, volatile void __iomem *addr)
40*4882a593Smuzhiyun {
41*4882a593Smuzhiyun 	writew(value, addr);
42*4882a593Smuzhiyun }
43*4882a593Smuzhiyun 
iowrite32(u32 value,volatile void __iomem * addr)44*4882a593Smuzhiyun static inline void iowrite32(u32 value, volatile void __iomem *addr)
45*4882a593Smuzhiyun {
46*4882a593Smuzhiyun 	writel(value, addr);
47*4882a593Smuzhiyun }
48*4882a593Smuzhiyun 
49*4882a593Smuzhiyun #ifdef CONFIG_64BIT
iowrite64(u64 value,volatile void __iomem * addr)50*4882a593Smuzhiyun static inline void iowrite64(u64 value, volatile void __iomem *addr)
51*4882a593Smuzhiyun {
52*4882a593Smuzhiyun 	writeq(value, addr);
53*4882a593Smuzhiyun }
54*4882a593Smuzhiyun #endif /* CONFIG_64BIT */
55*4882a593Smuzhiyun 
56*4882a593Smuzhiyun #ifndef CONFIG_HAVE_ARCH_IOREMAP
ioremap(resource_size_t offset,resource_size_t size)57*4882a593Smuzhiyun static inline void __iomem *ioremap(resource_size_t offset,
58*4882a593Smuzhiyun 				    resource_size_t size)
59*4882a593Smuzhiyun {
60*4882a593Smuzhiyun 	return (void __iomem *)(unsigned long)offset;
61*4882a593Smuzhiyun }
62*4882a593Smuzhiyun 
iounmap(void __iomem * addr)63*4882a593Smuzhiyun static inline void iounmap(void __iomem *addr)
64*4882a593Smuzhiyun {
65*4882a593Smuzhiyun }
66*4882a593Smuzhiyun 
67*4882a593Smuzhiyun #define devm_ioremap(dev, offset, size)		ioremap(offset, size)
68*4882a593Smuzhiyun #endif
69*4882a593Smuzhiyun 
70*4882a593Smuzhiyun #endif /* _LINUX_IO_H */
71