1 #ifndef _MT_SYNC_WRITE_H
2 #define _MT_SYNC_WRITE_H
4 #if defined(__KERNEL__)
7 #include <asm/cacheflush.h>
8 #include <asm/system.h>
14 #define mt65xx_reg_sync_writel(v, a) \
16 __raw_writel((v), IOMEM((a))); \
20 #define mt65xx_reg_sync_writew(v, a) \
22 __raw_writew((v), IOMEM((a))); \
26 #define mt65xx_reg_sync_writeb(v, a) \
28 __raw_writeb((v), IOMEM((a))); \
32 #define mt_reg_sync_writel(v, a) \
34 __raw_writel((v), IOMEM((a))); \
38 #define mt_reg_sync_writew(v, a) \
40 __raw_writew((v), IOMEM((a))); \
44 #define mt_reg_sync_writeb(v, a) \
46 __raw_writeb((v), IOMEM((a))); \
51 #else /* __KERNEL__ */
53 #include <sys/types.h>
61 __asm__ __volatile__ ("dsb" : : : "memory"); \
64 #define mt65xx_reg_sync_writel(v, a) \
66 *(volatile unsigned int *)(a) = (v); \
70 #define mt65xx_reg_sync_writew(v, a) \
72 *(volatile unsigned short *)(a) = (v); \
76 #define mt65xx_reg_sync_writeb(v, a) \
78 *(volatile unsigned char *)(a) = (v); \
82 #define mt_reg_sync_writel(v, a) \
84 *(volatile unsigned int *)(a) = (v); \
88 #define mt_reg_sync_writew(v, a) \
90 *(volatile unsigned short *)(a) = (v); \
94 #define mt_reg_sync_writeb(v, a) \
96 *(volatile unsigned char *)(a) = (v); \
101 #endif /* __KERNEL__ */
103 #endif /* !_MT_SYNC_WRITE_H */