io.h 995 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. * Copyright (c) 2006-2021, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2011-01-13 weety first version
  9. */
  10. #ifndef __ASM_ARCH_IO_H
  11. #define __ASM_ARCH_IO_H
  12. #define AT91_BASE_SYS 0xffffe800
  13. #define IO_SPACE_LIMIT 0xFFFFFFFF
  14. #define readb(a) (*(volatile unsigned char *)(a))
  15. #define readw(a) (*(volatile unsigned short *)(a))
  16. #define readl(a) (*(volatile unsigned int *)(a))
  17. #define writeb(v,a) (*(volatile unsigned char *)(a) = (v))
  18. #define writew(v,a) (*(volatile unsigned short *)(a) = (v))
  19. #define writel(v,a) (*(volatile unsigned int *)(a) = (v))
  20. rt_inline unsigned int at91_sys_read(unsigned int reg_offset)
  21. {
  22. unsigned int addr = AT91_BASE_SYS;
  23. return readl(addr + reg_offset);
  24. }
  25. rt_inline void at91_sys_write(unsigned int reg_offset, unsigned long value)
  26. {
  27. unsigned int addr = AT91_BASE_SYS;
  28. writel(value, addr + reg_offset);
  29. }
  30. #endif