at91_eefc.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. * SPDX-License-Identifier: GPL-2.0+
  9. */
  10. #ifndef AT91_EEFC_H
  11. #define AT91_EEFC_H
  12. #ifndef __ASSEMBLY__
  13. typedef struct at91_eefc {
  14. u32 fmr; /* Flash Mode Register RW */
  15. u32 fcr; /* Flash Command Register WO */
  16. u32 fsr; /* Flash Status Register RO */
  17. u32 frr; /* Flash Result Register RO */
  18. } at91_eefc_t;
  19. #endif /* __ASSEMBLY__ */
  20. #define AT91_EEFC_FMR_FWS_MASK 0x00000f00
  21. #define AT91_EEFC_FMR_FRDY_BIT 0x00000001
  22. #define AT91_EEFC_FCR_KEY 0x5a000000
  23. #define AT91_EEFC_FCR_FARG_MASK 0x00ffff00
  24. #define AT91_EEFC_FCR_FARG_SHIFT 8
  25. #define AT91_EEFC_FCR_FCMD_GETD 0x0
  26. #define AT91_EEFC_FCR_FCMD_WP 0x1
  27. #define AT91_EEFC_FCR_FCMD_WPL 0x2
  28. #define AT91_EEFC_FCR_FCMD_EWP 0x3
  29. #define AT91_EEFC_FCR_FCMD_EWPL 0x4
  30. #define AT91_EEFC_FCR_FCMD_EA 0x5
  31. #define AT91_EEFC_FCR_FCMD_SLB 0x8
  32. #define AT91_EEFC_FCR_FCMD_CLB 0x9
  33. #define AT91_EEFC_FCR_FCMD_GLB 0xA
  34. #define AT91_EEFC_FCR_FCMD_SGPB 0xB
  35. #define AT91_EEFC_FCR_FCMD_CGPB 0xC
  36. #define AT91_EEFC_FCR_FCMD_GGPB 0xD
  37. #define AT91_EEFC_FSR_FRDY 1
  38. #define AT91_EEFC_FSR_FCMDE 2
  39. #define AT91_EEFC_FSR_FLOCKE 4
  40. #endif