Loading...
Note: File does not exist in v6.2.
1#ifndef _H8300_IO_H
2#define _H8300_IO_H
3
4#ifdef __KERNEL__
5
6/* H8/300 internal I/O functions */
7
8#define __raw_readb __raw_readb
9static inline u8 __raw_readb(const volatile void __iomem *addr)
10{
11 return *(volatile u8 *)addr;
12}
13
14#define __raw_readw __raw_readw
15static inline u16 __raw_readw(const volatile void __iomem *addr)
16{
17 return *(volatile u16 *)addr;
18}
19
20#define __raw_readl __raw_readl
21static inline u32 __raw_readl(const volatile void __iomem *addr)
22{
23 return *(volatile u32 *)addr;
24}
25
26#define __raw_writeb __raw_writeb
27static inline void __raw_writeb(u8 b, const volatile void __iomem *addr)
28{
29 *(volatile u8 *)addr = b;
30}
31
32#define __raw_writew __raw_writew
33static inline void __raw_writew(u16 b, const volatile void __iomem *addr)
34{
35 *(volatile u16 *)addr = b;
36}
37
38#define __raw_writel __raw_writel
39static inline void __raw_writel(u32 b, const volatile void __iomem *addr)
40{
41 *(volatile u32 *)addr = b;
42}
43
44static inline void ctrl_bclr(int b, void __iomem *addr)
45{
46 if (__builtin_constant_p(b))
47 __asm__("bclr %1,%0" : "+WU"(*(u8 *)addr): "i"(b));
48 else
49 __asm__("bclr %w1,%0" : "+WU"(*(u8 *)addr): "r"(b));
50}
51
52static inline void ctrl_bset(int b, void __iomem *addr)
53{
54 if (__builtin_constant_p(b))
55 __asm__("bset %1,%0" : "+WU"(*(u8 *)addr): "i"(b));
56 else
57 __asm__("bset %w1,%0" : "+WU"(*(u8 *)addr): "r"(b));
58}
59
60#include <asm-generic/io.h>
61
62#endif /* __KERNEL__ */
63
64#endif /* _H8300_IO_H */