drivers: power: report battery voltage in AOSP compatible format
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / arm / mach-mt8127 / include / mach / sync_write.h
1 #ifndef _MT_SYNC_WRITE_H
2 #define _MT_SYNC_WRITE_H
3
4 #if defined(__KERNEL__)
5
6 #include <linux/io.h>
7 #include <asm/cacheflush.h>
8 #include <asm/system.h>
9
10 /*
11 * Define macros.
12 */
13
14 #define mt65xx_reg_sync_writel(v, a) \
15 do { \
16 __raw_writel((v), IOMEM((a))); \
17 dsb(); \
18 } while (0)
19
20 #define mt65xx_reg_sync_writew(v, a) \
21 do { \
22 __raw_writew((v), IOMEM((a))); \
23 dsb(); \
24 } while (0)
25
26 #define mt65xx_reg_sync_writeb(v, a) \
27 do { \
28 __raw_writeb((v), IOMEM((a))); \
29 dsb(); \
30 } while (0)
31
32 #define mt_reg_sync_writel(v, a) \
33 do { \
34 __raw_writel((v), IOMEM((a))); \
35 dsb(); \
36 } while (0)
37
38 #define mt_reg_sync_writew(v, a) \
39 do { \
40 __raw_writew((v), IOMEM((a))); \
41 dsb(); \
42 } while (0)
43
44 #define mt_reg_sync_writeb(v, a) \
45 do { \
46 __raw_writeb((v), IOMEM((a))); \
47 dsb(); \
48 } while (0)
49
50
51 #else /* __KERNEL__ */
52
53 #include <sys/types.h>
54 #include <sys/stat.h>
55 #include <fcntl.h>
56 #include <unistd.h>
57 #include <string.h>
58
59 #define dsb() \
60 do { \
61 __asm__ __volatile__ ("dsb" : : : "memory"); \
62 } while (0)
63
64 #define mt65xx_reg_sync_writel(v, a) \
65 do { \
66 *(volatile unsigned int *)(a) = (v); \
67 dsb(); \
68 } while (0)
69
70 #define mt65xx_reg_sync_writew(v, a) \
71 do { \
72 *(volatile unsigned short *)(a) = (v); \
73 dsb(); \
74 } while (0)
75
76 #define mt65xx_reg_sync_writeb(v, a) \
77 do { \
78 *(volatile unsigned char *)(a) = (v); \
79 dsb(); \
80 } while (0)
81
82 #define mt_reg_sync_writel(v, a) \
83 do { \
84 *(volatile unsigned int *)(a) = (v); \
85 dsb(); \
86 } while (0)
87
88 #define mt_reg_sync_writew(v, a) \
89 do { \
90 *(volatile unsigned short *)(a) = (v); \
91 dsb(); \
92 } while (0)
93
94 #define mt_reg_sync_writeb(v, a) \
95 do { \
96 *(volatile unsigned char *)(a) = (v); \
97 dsb(); \
98 } while (0)
99
100
101 #endif /* __KERNEL__ */
102
103 #endif /* !_MT_SYNC_WRITE_H */