es_conf_info_spi.h 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. /*
  2. * Change Logs:
  3. * Date Author Notes
  4. * 2021-04-20 liuhy the first version
  5. *
  6. * Copyright (C) 2021 Shanghai Eastsoft Microelectronics Co., Ltd. All rights reserved.
  7. *
  8. * SPDX-License-Identifier: Apache-2.0
  9. *
  10. * Licensed under the Apache License, Version 2.0 (the License); you may
  11. * not use this file except in compliance with the License.
  12. * You may obtain a copy of the License at
  13. *
  14. * www.apache.org/licenses/LICENSE-2.0
  15. *
  16. * Unless required by applicable law or agreed to in writing, software
  17. * distributed under the License is distributed on an AS IS BASIS, WITHOUT
  18. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  19. * See the License for the specific language governing permissions and
  20. * limitations under the License.
  21. *
  22. */
  23. #ifndef __ES_CONF_INFO_SPI_H__
  24. #define __ES_CONF_INFO_SPI_H__
  25. #include "es_conf_info_map.h"
  26. #include <ald_spi.h>
  27. #include <ald_gpio.h>
  28. #include <ald_cmu.h>
  29. /* SPI 配置 */
  30. #define SPI_BUS_CONFIG(_CONF_,_I_) do{_CONF_.mode = 0U; \
  31. _CONF_.mode |= ( ES_SPI##_I_##_MASTER_SLAVE | \
  32. ES_SPI##_I_##_WIRE_3_4 | \
  33. ES_SPI##_I_##_CPHA_1_2 | \
  34. ES_SPI##_I_##_CPOL_H_L | \
  35. ES_SPI##_I_##_CS | \
  36. ES_SPI##_I_##_M_L_SB ); \
  37. _CONF_.data_width = ES_SPI##_I_##_DATA_W; \
  38. _CONF_.max_hz = ES_SPI##_I_##_MAX_HZ; \
  39. }while(0)
  40. // spi_config.mode &= ~RT_SPI_SLAVE; /* 主机模式 */
  41. // spi_config.mode &= ~RT_SPI_3WIRE; /* 4线,双向传输 */
  42. // spi_config.mode |= RT_SPI_CPHA; /* 第二边沿采样 */
  43. // spi_config.mode |= RT_SPI_CPOL; /* 空闲高电平 */
  44. // spi_config.mode |= RT_SPI_NO_CS; /* 禁用软件从机选择管理 */
  45. // spi_config.mode |= RT_SPI_MSB; /* 高位在前 */
  46. // spi_config.data_width = 8; /* 数据长度:8 */
  47. // spi_config.max_hz = 2000000; /* 最快时钟频率 */
  48. #define ES_C_SPI_CLK_POL_HIGH RT_SPI_CPOL
  49. #define ES_C_SPI_CLK_POL_LOW !RT_SPI_CPOL
  50. #define ES_C_SPI_CLK_PHA_FIRST !RT_SPI_CPHA
  51. #define ES_C_SPI_CLK_PHA_SECOND RT_SPI_CPHA
  52. #define ES_C_SPI_MSB RT_SPI_MSB
  53. #define ES_C_SPI_LSB RT_SPI_LSB
  54. #define ES_C_SPI_CS_LOW_LEVEL 0
  55. #define ES_C_SPI_CS_HIGH_LEVEL 1
  56. /* codes_main */
  57. #ifndef ES_DEVICE_NAME_SPI0_BUS
  58. #define ES_DEVICE_NAME_SPI0_BUS "spi0"
  59. #endif
  60. #ifndef ES_DEVICE_NAME_SPI0_DEV0
  61. #define ES_DEVICE_NAME_SPI0_DEV0 "spi00"
  62. #endif
  63. #ifndef ES_DEVICE_NAME_SPI1_BUS
  64. #define ES_DEVICE_NAME_SPI1_BUS "spi1"
  65. #endif
  66. #ifndef ES_DEVICE_NAME_SPI1_DEV0
  67. #define ES_DEVICE_NAME_SPI1_DEV0 "spi10"
  68. #endif
  69. #ifndef ES_DEVICE_NAME_SPI2_BUS
  70. #define ES_DEVICE_NAME_SPI2_BUS "spi2"
  71. #endif
  72. #ifndef ES_DEVICE_NAME_SPI2_DEV0
  73. #define ES_DEVICE_NAME_SPI2_DEV0 "spi20"
  74. #endif
  75. #define ES_SPI_CS_LEVEL ES_C_SPI_CS_LOW_LEVEL
  76. #ifndef ES_SPI0_CPHA_1_2
  77. #define ES_SPI0_CPHA_1_2 ES_C_SPI_CLK_PHA_SECOND
  78. #endif
  79. #ifndef ES_SPI0_CPOL_H_L
  80. #define ES_SPI0_CPOL_H_L ES_C_SPI_CLK_POL_HIGH
  81. #endif
  82. #ifndef ES_SPI0_M_L_SB
  83. #define ES_SPI0_M_L_SB RT_SPI_MSB
  84. #endif
  85. #ifndef ES_SPI0_MAX_HZ
  86. #define ES_SPI0_MAX_HZ 2000000
  87. #endif
  88. #ifndef ES_SPI0_NSS_PIN
  89. #define ES_SPI0_NSS_PIN 0xFFFFFFFF
  90. #endif
  91. #ifndef ES_SPI1_CPHA_1_2
  92. #define ES_SPI1_CPHA_1_2 ES_C_SPI_CLK_PHA_SECOND
  93. #endif
  94. #ifndef ES_SPI1_CPOL_H_L
  95. #define ES_SPI1_CPOL_H_L ES_C_SPI_CLK_POL_HIGH
  96. #endif
  97. #ifndef ES_SPI1_M_L_SB
  98. #define ES_SPI1_M_L_SB RT_SPI_MSB
  99. #endif
  100. #ifndef ES_SPI1_MAX_HZ
  101. #define ES_SPI1_MAX_HZ 2000000
  102. #endif
  103. #ifndef ES_SPI1_NSS_PIN
  104. #define ES_SPI1_NSS_PIN 0xFFFFFFFF
  105. #endif
  106. #ifndef ES_SPI2_CPHA_1_2
  107. #define ES_SPI2_CPHA_1_2 ES_C_SPI_CLK_PHA_SECOND
  108. #endif
  109. #ifndef ES_SPI2_CPOL_H_L
  110. #define ES_SPI2_CPOL_H_L ES_C_SPI_CLK_POL_HIGH
  111. #endif
  112. #ifndef ES_SPI2_M_L_SB
  113. #define ES_SPI2_M_L_SB RT_SPI_MSB
  114. #endif
  115. #ifndef ES_SPI2_MAX_HZ
  116. #define ES_SPI2_MAX_HZ 2000000
  117. #endif
  118. #ifndef ES_SPI2_NSS_PIN
  119. #define ES_SPI2_NSS_PIN 0xFFFFFFFF
  120. #endif
  121. #define ES_SPI0_MASTER_SLAVE !RT_SPI_SLAVE
  122. #define ES_SPI0_WIRE_3_4 !RT_SPI_3WIRE
  123. #define ES_SPI0_CS RT_SPI_NO_CS
  124. #define ES_SPI0_DATA_W 8
  125. #define ES_SPI1_MASTER_SLAVE !RT_SPI_SLAVE
  126. #define ES_SPI1_WIRE_3_4 !RT_SPI_3WIRE
  127. #define ES_SPI1_CS RT_SPI_NO_CS
  128. #define ES_SPI1_DATA_W 8
  129. #define ES_SPI2_MASTER_SLAVE !RT_SPI_SLAVE
  130. #define ES_SPI2_WIRE_3_4 !RT_SPI_3WIRE
  131. #define ES_SPI2_CS RT_SPI_NO_CS
  132. #define ES_SPI2_DATA_W 8
  133. #endif