fsl_qspi.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. /*
  2. * Copyright 2013-2014 Freescale Semiconductor, Inc.
  3. *
  4. * Register definitions for Freescale QSPI
  5. *
  6. * SPDX-License-Identifier: GPL-2.0+
  7. */
  8. #ifndef _FSL_QSPI_H_
  9. #define _FSL_QSPI_H_
  10. struct fsl_qspi_regs {
  11. u32 mcr;
  12. u32 rsvd0[1];
  13. u32 ipcr;
  14. u32 flshcr;
  15. u32 buf0cr;
  16. u32 buf1cr;
  17. u32 buf2cr;
  18. u32 buf3cr;
  19. u32 bfgencr;
  20. u32 soccr;
  21. u32 rsvd1[2];
  22. u32 buf0ind;
  23. u32 buf1ind;
  24. u32 buf2ind;
  25. u32 rsvd2[49];
  26. u32 sfar;
  27. u32 rsvd3[1];
  28. u32 smpr;
  29. u32 rbsr;
  30. u32 rbct;
  31. u32 rsvd4[15];
  32. u32 tbsr;
  33. u32 tbdr;
  34. u32 rsvd5[1];
  35. u32 sr;
  36. u32 fr;
  37. u32 rser;
  38. u32 spndst;
  39. u32 sptrclr;
  40. u32 rsvd6[4];
  41. u32 sfa1ad;
  42. u32 sfa2ad;
  43. u32 sfb1ad;
  44. u32 sfb2ad;
  45. u32 rsvd7[28];
  46. u32 rbdr[32];
  47. u32 rsvd8[32];
  48. u32 lutkey;
  49. u32 lckcr;
  50. u32 rsvd9[2];
  51. u32 lut[64];
  52. };
  53. #define QSPI_IPCR_SEQID_SHIFT 24
  54. #define QSPI_IPCR_SEQID_MASK (0xf << QSPI_IPCR_SEQID_SHIFT)
  55. #define QSPI_MCR_END_CFD_SHIFT 2
  56. #define QSPI_MCR_END_CFD_MASK (3 << QSPI_MCR_END_CFD_SHIFT)
  57. #define QSPI_MCR_END_CFD_LE (1 << QSPI_MCR_END_CFD_SHIFT)
  58. #define QSPI_MCR_DDR_EN_SHIFT 7
  59. #define QSPI_MCR_DDR_EN_MASK (1 << QSPI_MCR_DDR_EN_SHIFT)
  60. #define QSPI_MCR_CLR_RXF_SHIFT 10
  61. #define QSPI_MCR_CLR_RXF_MASK (1 << QSPI_MCR_CLR_RXF_SHIFT)
  62. #define QSPI_MCR_CLR_TXF_SHIFT 11
  63. #define QSPI_MCR_CLR_TXF_MASK (1 << QSPI_MCR_CLR_TXF_SHIFT)
  64. #define QSPI_MCR_MDIS_SHIFT 14
  65. #define QSPI_MCR_MDIS_MASK (1 << QSPI_MCR_MDIS_SHIFT)
  66. #define QSPI_MCR_RESERVED_SHIFT 16
  67. #define QSPI_MCR_RESERVED_MASK (0xf << QSPI_MCR_RESERVED_SHIFT)
  68. #define QSPI_SMPR_HSENA_SHIFT 0
  69. #define QSPI_SMPR_HSENA_MASK (1 << QSPI_SMPR_HSENA_SHIFT)
  70. #define QSPI_SMPR_FSPHS_SHIFT 5
  71. #define QSPI_SMPR_FSPHS_MASK (1 << QSPI_SMPR_FSPHS_SHIFT)
  72. #define QSPI_SMPR_FSDLY_SHIFT 6
  73. #define QSPI_SMPR_FSDLY_MASK (1 << QSPI_SMPR_FSDLY_SHIFT)
  74. #define QSPI_SMPR_DDRSMP_SHIFT 16
  75. #define QSPI_SMPR_DDRSMP_MASK (7 << QSPI_SMPR_DDRSMP_SHIFT)
  76. #define QSPI_BFGENCR_SEQID_SHIFT 12
  77. #define QSPI_BFGENCR_SEQID_MASK (0xf << QSPI_BFGENCR_SEQID_SHIFT)
  78. #define QSPI_BFGENCR_PAR_EN_SHIFT 16
  79. #define QSPI_BFGENCR_PAR_EN_MASK (1 << QSPI_BFGENCR_PAR_EN_SHIFT)
  80. #define QSPI_RBSR_RDBFL_SHIFT 8
  81. #define QSPI_RBSR_RDBFL_MASK (0x3f << QSPI_RBSR_RDBFL_SHIFT)
  82. #define QSPI_RBCT_RXBRD_SHIFT 8
  83. #define QSPI_RBCT_RXBRD_USEIPS (1 << QSPI_RBCT_RXBRD_SHIFT)
  84. #define QSPI_SR_BUSY_SHIFT 0
  85. #define QSPI_SR_BUSY_MASK (1 << QSPI_SR_BUSY_SHIFT)
  86. #define QSPI_LCKCR_LOCK 0x1
  87. #define QSPI_LCKCR_UNLOCK 0x2
  88. #define LUT_KEY_VALUE 0x5af05af0
  89. #define OPRND0_SHIFT 0
  90. #define OPRND0(x) ((x) << OPRND0_SHIFT)
  91. #define PAD0_SHIFT 8
  92. #define PAD0(x) ((x) << PAD0_SHIFT)
  93. #define INSTR0_SHIFT 10
  94. #define INSTR0(x) ((x) << INSTR0_SHIFT)
  95. #define OPRND1_SHIFT 16
  96. #define OPRND1(x) ((x) << OPRND1_SHIFT)
  97. #define PAD1_SHIFT 24
  98. #define PAD1(x) ((x) << PAD1_SHIFT)
  99. #define INSTR1_SHIFT 26
  100. #define INSTR1(x) ((x) << INSTR1_SHIFT)
  101. #define LUT_CMD 1
  102. #define LUT_ADDR 2
  103. #define LUT_DUMMY 3
  104. #define LUT_READ 7
  105. #define LUT_WRITE 8
  106. #define LUT_PAD1 0
  107. #define LUT_PAD2 1
  108. #define LUT_PAD4 2
  109. #define ADDR24BIT 0x18
  110. #define ADDR32BIT 0x20
  111. #endif /* _FSL_QSPI_H_ */