import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / arm / mach-mt8127 / include / mach / sync_write.h
CommitLineData
6fa3eb70
S
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 */