at91_eefc.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (C) 2010
  4. * Reinhard Meyer, reinhard.meyer@emk-elektronik.de
  5. *
  6. * Enhanced Embedded Flash Controller
  7. * Based on AT91SAM9XE datasheet
  8. */
  9. #ifndef AT91_EEFC_H
  10. #define AT91_EEFC_H
  11. #ifndef __ASSEMBLY__
  12. typedef struct at91_eefc {
  13. u32 fmr; /* Flash Mode Register RW */
  14. u32 fcr; /* Flash Command Register WO */
  15. u32 fsr; /* Flash Status Register RO */
  16. u32 frr; /* Flash Result Register RO */
  17. } at91_eefc_t;
  18. #endif /* __ASSEMBLY__ */
  19. #define AT91_EEFC_FMR_FWS_MASK 0x00000f00
  20. #define AT91_EEFC_FMR_FRDY_BIT 0x00000001
  21. #define AT91_EEFC_FCR_KEY 0x5a000000
  22. #define AT91_EEFC_FCR_FARG_MASK 0x00ffff00
  23. #define AT91_EEFC_FCR_FARG_SHIFT 8
  24. #define AT91_EEFC_FCR_FCMD_GETD 0x0
  25. #define AT91_EEFC_FCR_FCMD_WP 0x1
  26. #define AT91_EEFC_FCR_FCMD_WPL 0x2
  27. #define AT91_EEFC_FCR_FCMD_EWP 0x3
  28. #define AT91_EEFC_FCR_FCMD_EWPL 0x4
  29. #define AT91_EEFC_FCR_FCMD_EA 0x5
  30. #define AT91_EEFC_FCR_FCMD_SLB 0x8
  31. #define AT91_EEFC_FCR_FCMD_CLB 0x9
  32. #define AT91_EEFC_FCR_FCMD_GLB 0xA
  33. #define AT91_EEFC_FCR_FCMD_SGPB 0xB
  34. #define AT91_EEFC_FCR_FCMD_CGPB 0xC
  35. #define AT91_EEFC_FCR_FCMD_GGPB 0xD
  36. #define AT91_EEFC_FSR_FRDY 1
  37. #define AT91_EEFC_FSR_FCMDE 2
  38. #define AT91_EEFC_FSR_FLOCKE 4
  39. #endif