drv_sdram.h 4.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /*
  2. * File : drv_sdram.h
  3. * This file is part of RT-Thread RTOS
  4. * COPYRIGHT (C) 2009-2013 RT-Thread Develop Team
  5. *
  6. * The license and distribution terms for this file may be
  7. * found in the file LICENSE in this distribution or at
  8. * http://www.rt-thread.org/license/LICENSE
  9. *
  10. * Change Logs:
  11. * Date Author Notes
  12. * 2013-05-19 Bernard The first version for LPC40xx
  13. * 2017-08-02 XiaoYang porting to LPC54608 bsp
  14. */
  15. #ifndef __DRV_SDRAM_H__
  16. #define __DRV_SDRAM_H__
  17. #include <board.h>
  18. #define IOCON_PIO_DIGITAL_EN 0x0100u /*!< Enables digital function */
  19. #define IOCON_PIO_FUNC1 0x01u /*!< Selects pin function 1 */
  20. #define IOCON_PIO_FUNC6 0x06u /*!< Selects pin function 6 */
  21. #define IOCON_PIO_INPFILT_OFF 0x0200u /*!< Input filter disabled */
  22. #define IOCON_PIO_INV_DI 0x00u /*!< Input function is not inverted */
  23. #define IOCON_PIO_MODE_INACT 0x00u /*!< No addition pin function */
  24. #define IOCON_PIO_OPENDRAIN_DI 0x00u /*!< Open drain is disabled */
  25. #define IOCON_PIO_SLEW_FAST 0x0400u /*!< Fast mode, slew rate control is disabled */
  26. #define PIN2_IDX 2u /*!< Pin number for pin 2 in a port 0 */
  27. #define PIN3_IDX 3u /*!< Pin number for pin 3 in a port 0 */
  28. #define PIN4_IDX 4u /*!< Pin number for pin 4 in a port 0 */
  29. #define PIN5_IDX 5u /*!< Pin number for pin 5 in a port 0 */
  30. #define PIN6_IDX 6u /*!< Pin number for pin 6 in a port 0 */
  31. #define PIN7_IDX 7u /*!< Pin number for pin 7 in a port 0 */
  32. #define PIN8_IDX 8u /*!< Pin number for pin 8 in a port 0 */
  33. #define PIN9_IDX 9u /*!< Pin number for pin 9 in a port 0 */
  34. #define PIN10_IDX 10u /*!< Pin number for pin 10 in a port 1 */
  35. #define PIN11_IDX 11u /*!< Pin number for pin 11 in a port 1 */
  36. #define PIN12_IDX 12u /*!< Pin number for pin 12 in a port 1 */
  37. #define PIN13_IDX 13u /*!< Pin number for pin 13 in a port 1 */
  38. #define PIN14_IDX 14u /*!< Pin number for pin 14 in a port 1 */
  39. #define PIN15_IDX 15u /*!< Pin number for pin 15 in a port 0 */
  40. #define PIN16_IDX 16u /*!< Pin number for pin 16 in a port 1 */
  41. #define PIN18_IDX 18u /*!< Pin number for pin 18 in a port 0 */
  42. #define PIN19_IDX 19u /*!< Pin number for pin 19 in a port 0 */
  43. #define PIN20_IDX 20u /*!< Pin number for pin 20 in a port 0 */
  44. #define PIN21_IDX 21u /*!< Pin number for pin 21 in a port 0 */
  45. #define PIN23_IDX 23u /*!< Pin number for pin 23 in a port 1 */
  46. #define PIN24_IDX 24u /*!< Pin number for pin 24 in a port 1 */
  47. #define PIN25_IDX 25u /*!< Pin number for pin 25 in a port 1 */
  48. #define PIN26_IDX 26u /*!< Pin number for pin 26 in a port 1 */
  49. #define PIN27_IDX 27u /*!< Pin number for pin 27 in a port 1 */
  50. #define PIN28_IDX 28u /*!< Pin number for pin 28 in a port 1 */
  51. #define PIN29_IDX 29u /*!< Pin number for pin 29 in a port 0 */
  52. #define PIN30_IDX 30u /*!< Pin number for pin 30 in a port 0 */
  53. #define PIN31_IDX 31u /*!< Pin number for pin 31 in a port 1 */
  54. #define PORT0_IDX 0u /*!< Port index */
  55. #define PORT1_IDX 1u /*!< Port index */
  56. #define PORT3_IDX 3u /*!< Port index */
  57. /* The SDRAM timing. */
  58. #define SDRAM_REFRESHPERIOD_NS (64 * 1000000 / 4096) /* 4096 rows/ 64ms */
  59. #define SDRAM_TRP_NS (18u)
  60. #define SDRAM_TRAS_NS (42u)
  61. #define SDRAM_TSREX_NS (67u)
  62. #define SDRAM_TAPR_NS (18u)
  63. #define SDRAM_TWRDELT_NS (6u)
  64. #define SDRAM_TRC_NS (60u)
  65. #define SDRAM_RFC_NS (60u)
  66. #define SDRAM_XSR_NS (67u)
  67. #define SDRAM_RRD_NS (12u)
  68. #define SDRAM_MRD_NCLK (2u)
  69. #define SDRAM_RAS_NCLK (2u)
  70. #define SDRAM_MODEREG_VALUE (0x23u)
  71. #define SDRAM_DEV_MEMORYMAP (0x09u) /* 128Mbits (8M*16, 4banks, 12 rows, 9 columns)*/
  72. void lpc_sdram_hw_init(void);
  73. #endif