sync_write.h 825 B

123456789101112131415161718192021222324252627282930
  1. #ifndef _SYNC_WRITE_H
  2. #define _SYNC_WRITE_H
  3. #define dsb() \
  4. do { \
  5. __asm__ __volatile__ ("dsb" : : : "memory"); \
  6. } while (0)
  7. #define mt_reg_sync_writel(v, a) mt65xx_reg_sync_writel(v, a)
  8. #define mt_reg_sync_writew(v, a) mt65xx_reg_sync_writew(v, a)
  9. #define mt_reg_sync_writeb(v, a) mt65xx_reg_sync_writeb(v, a)
  10. #define mt65xx_reg_sync_writel(v, a) \
  11. do { \
  12. *(volatile unsigned int *)(a) = (v); \
  13. dsb(); \
  14. } while (0)
  15. #define mt65xx_reg_sync_writew(v, a) \
  16. do { \
  17. *(volatile unsigned short *)(a) = (v); \
  18. dsb(); \
  19. } while (0)
  20. #define mt65xx_reg_sync_writeb(v, a) \
  21. do { \
  22. *(volatile unsigned char *)(a) = (v); \
  23. dsb(); \
  24. } while (0)
  25. #endif