at91_eefc.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. * Copyright (C) 2010
  3. * Reinhard Meyer, reinhard.meyer@emk-elektronik.de
  4. *
  5. * Enhanced Embedded Flash Controller
  6. * Based on AT91SAM9XE datasheet
  7. *
  8. * This program is free software; you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License as published by
  10. * the Free Software Foundation; either version 2 of the License, or
  11. * (at your option) any later version.
  12. */
  13. #ifndef AT91_EEFC_H
  14. #define AT91_EEFC_H
  15. #ifndef __ASSEMBLY__
  16. typedef struct at91_eefc {
  17. u32 fmr; /* Flash Mode Register RW */
  18. u32 fcr; /* Flash Command Register WO */
  19. u32 fsr; /* Flash Status Register RO */
  20. u32 frr; /* Flash Result Register RO */
  21. } at91_eefc_t;
  22. #endif /* __ASSEMBLY__ */
  23. #define AT91_EEFC_FMR_FWS_MASK 0x00000f00
  24. #define AT91_EEFC_FMR_FRDY_BIT 0x00000001
  25. #define AT91_EEFC_FCR_KEY 0x5a000000
  26. #define AT91_EEFC_FCR_FARG_MASK 0x00ffff00
  27. #define AT91_EEFC_FCR_FARG_SHIFT 8
  28. #define AT91_EEFC_FCR_FCMD_GETD 0x0
  29. #define AT91_EEFC_FCR_FCMD_WP 0x1
  30. #define AT91_EEFC_FCR_FCMD_WPL 0x2
  31. #define AT91_EEFC_FCR_FCMD_EWP 0x3
  32. #define AT91_EEFC_FCR_FCMD_EWPL 0x4
  33. #define AT91_EEFC_FCR_FCMD_EA 0x5
  34. #define AT91_EEFC_FCR_FCMD_SLB 0x8
  35. #define AT91_EEFC_FCR_FCMD_CLB 0x9
  36. #define AT91_EEFC_FCR_FCMD_GLB 0xA
  37. #define AT91_EEFC_FCR_FCMD_SGPB 0xB
  38. #define AT91_EEFC_FCR_FCMD_CGPB 0xC
  39. #define AT91_EEFC_FCR_FCMD_GGPB 0xD
  40. #define AT91_EEFC_FSR_FRDY 1
  41. #define AT91_EEFC_FSR_FCMDE 2
  42. #define AT91_EEFC_FSR_FLOCKE 4
  43. #endif