fsp_features.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  1. /*
  2. * Copyright (c) 2020 - 2025 Renesas Electronics Corporation and/or its affiliates
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. */
  6. #ifndef FSP_FEATURES_H
  7. #define FSP_FEATURES_H
  8. /***********************************************************************************************************************
  9. * Includes <System Includes> , "Project Includes"
  10. **********************************************************************************************************************/
  11. /* C99 includes. */
  12. #include <stdint.h>
  13. #include <stddef.h>
  14. #include <stdbool.h>
  15. #include <assert.h>
  16. /* Different compiler support. */
  17. #include "fsp_common_api.h"
  18. #include "../../fsp/src/bsp/mcu/all/bsp_compiler_support.h"
  19. /***********************************************************************************************************************
  20. * Macro definitions
  21. **********************************************************************************************************************/
  22. /*******************************************************************************************************************//**
  23. * @addtogroup BSP_MCU
  24. * @{
  25. **********************************************************************************************************************/
  26. /* Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */
  27. FSP_HEADER
  28. /***********************************************************************************************************************
  29. * Typedef definitions
  30. **********************************************************************************************************************/
  31. /** Available modules. */
  32. typedef enum e_fsp_ip
  33. {
  34. FSP_IP_CFLASH = 0, ///< Code Flash
  35. FSP_IP_DFLASH = 1, ///< Data Flash
  36. FSP_IP_RAM = 2, ///< RAM
  37. FSP_IP_LVD = 3, ///< Low Voltage Detection
  38. FSP_IP_CGC = 3, ///< Clock Generation Circuit
  39. FSP_IP_LPM = 3, ///< Low Power Modes
  40. FSP_IP_FCU = 4, ///< Flash Control Unit
  41. FSP_IP_ICU = 6, ///< Interrupt Control Unit
  42. FSP_IP_DMAC = 7, ///< DMA Controller
  43. FSP_IP_DTC = 8, ///< Data Transfer Controller
  44. FSP_IP_IOPORT = 9, ///< I/O Ports
  45. FSP_IP_PFS = 10, ///< Pin Function Select
  46. FSP_IP_ELC = 11, ///< Event Link Controller
  47. FSP_IP_MPU = 13, ///< Memory Protection Unit
  48. FSP_IP_MSTP = 14, ///< Module Stop
  49. FSP_IP_MMF = 15, ///< Memory Mirror Function
  50. FSP_IP_KEY = 16, ///< Key Interrupt Function
  51. FSP_IP_CAC = 17, ///< Clock Frequency Accuracy Measurement Circuit
  52. FSP_IP_DOC = 18, ///< Data Operation Circuit
  53. FSP_IP_CRC = 19, ///< Cyclic Redundancy Check Calculator
  54. FSP_IP_SCI = 20, ///< Serial Communications Interface
  55. FSP_IP_IIC = 21, ///< I2C Bus Interface
  56. FSP_IP_SPI = 22, ///< Serial Peripheral Interface
  57. FSP_IP_CTSU = 23, ///< Capacitive Touch Sensing Unit
  58. FSP_IP_SCE = 24, ///< Secure Cryptographic Engine
  59. FSP_IP_SLCDC = 25, ///< Segment LCD Controller
  60. FSP_IP_AES = 26, ///< Advanced Encryption Standard
  61. FSP_IP_TRNG = 27, ///< True Random Number Generator
  62. FSP_IP_FCACHE = 30, ///< Flash Cache
  63. FSP_IP_SRAM = 31, ///< SRAM
  64. FSP_IP_ADC = 32, ///< A/D Converter
  65. FSP_IP_DAC = 33, ///< 12-Bit D/A Converter
  66. FSP_IP_TSN = 34, ///< Temperature Sensor
  67. FSP_IP_DAAD = 35, ///< D/A A/D Synchronous Unit
  68. FSP_IP_ACMPHS = 36, ///< High Speed Analog Comparator
  69. FSP_IP_ACMPLP = 37, ///< Low Power Analog Comparator
  70. FSP_IP_OPAMP = 38, ///< Operational Amplifier
  71. FSP_IP_SDADC = 39, ///< Sigma Delta A/D Converter
  72. FSP_IP_RTC = 40, ///< Real Time Clock
  73. FSP_IP_WDT = 41, ///< Watch Dog Timer
  74. FSP_IP_IWDT = 42, ///< Independent Watch Dog Timer
  75. FSP_IP_GPT = 43, ///< General PWM Timer
  76. FSP_IP_POEG = 44, ///< Port Output Enable for GPT
  77. FSP_IP_OPS = 45, ///< Output Phase Switch
  78. FSP_IP_AGT = 47, ///< Asynchronous General-Purpose Timer
  79. FSP_IP_CAN = 48, ///< Controller Area Network
  80. FSP_IP_IRDA = 49, ///< Infrared Data Association
  81. FSP_IP_QSPI = 50, ///< Quad Serial Peripheral Interface
  82. FSP_IP_USBFS = 51, ///< USB Full Speed
  83. FSP_IP_SDHI = 52, ///< SD/MMC Host Interface
  84. FSP_IP_SRC = 53, ///< Sampling Rate Converter
  85. FSP_IP_SSI = 54, ///< Serial Sound Interface
  86. FSP_IP_DALI = 55, ///< Digital Addressable Lighting Interface
  87. FSP_IP_ETHER = 64, ///< Ethernet MAC Controller
  88. FSP_IP_EDMAC = 64, ///< Ethernet DMA Controller
  89. FSP_IP_EPTPC = 65, ///< Ethernet PTP Controller
  90. FSP_IP_PDC = 66, ///< Parallel Data Capture Unit
  91. FSP_IP_GLCDC = 67, ///< Graphics LCD Controller
  92. FSP_IP_DRW = 68, ///< 2D Drawing Engine
  93. FSP_IP_JPEG = 69, ///< JPEG
  94. FSP_IP_DAC8 = 70, ///< 8-Bit D/A Converter
  95. FSP_IP_USBHS = 71, ///< USB High Speed
  96. FSP_IP_OSPI = 72, ///< Octa Serial Peripheral Interface
  97. FSP_IP_CEC = 73, ///< HDMI CEC
  98. FSP_IP_TFU = 74, ///< Trigonometric Function Unit
  99. FSP_IP_IIRFA = 75, ///< IIR Filter Accelerator
  100. FSP_IP_CANFD = 76, ///< CAN-FD
  101. FSP_IP_ULPT = 77, ///< Ultra Low Power Timer ULPT
  102. FSP_IP_SAU = 78, ///< Serial Array Unit
  103. FSP_IP_IICA = 79, ///< Serial Interface IICA
  104. FSP_IP_UARTA = 80, ///< Serial Interface UARTA
  105. FSP_IP_TAU = 81, ///< Timer Array Unit
  106. FSP_IP_TML = 82, ///< 32-bit Interval Timer
  107. FSP_IP_MACL = 83, ///< 32-bit Multiply-Accumulator
  108. FSP_IP_USBCC = 84, ///< USB Type-C Controller
  109. } fsp_ip_t;
  110. /** Signals that can be mapped to an interrupt. */
  111. typedef enum e_fsp_signal
  112. {
  113. FSP_SIGNAL_ADC_COMPARE_MATCH = 0, ///< ADC COMPARE MATCH
  114. FSP_SIGNAL_ADC_COMPARE_MISMATCH, ///< ADC COMPARE MISMATCH
  115. FSP_SIGNAL_ADC_SCAN_END, ///< ADC SCAN END
  116. FSP_SIGNAL_ADC_SCAN_END_B, ///< ADC SCAN END B
  117. FSP_SIGNAL_ADC_WINDOW_A, ///< ADC WINDOW A
  118. FSP_SIGNAL_ADC_WINDOW_B, ///< ADC WINDOW B
  119. FSP_SIGNAL_AES_RDREQ = 0, ///< AES RDREQ
  120. FSP_SIGNAL_AES_WRREQ, ///< AES WRREQ
  121. FSP_SIGNAL_AGT_COMPARE_A = 0, ///< AGT COMPARE A
  122. FSP_SIGNAL_AGT_COMPARE_B, ///< AGT COMPARE B
  123. FSP_SIGNAL_AGT_INT, ///< AGT INT
  124. FSP_SIGNAL_CAC_FREQUENCY_ERROR = 0, ///< CAC FREQUENCY ERROR
  125. FSP_SIGNAL_CAC_MEASUREMENT_END, ///< CAC MEASUREMENT END
  126. FSP_SIGNAL_CAC_OVERFLOW, ///< CAC OVERFLOW
  127. FSP_SIGNAL_CAN_ERROR = 0, ///< CAN ERROR
  128. FSP_SIGNAL_CAN_FIFO_RX, ///< CAN FIFO RX
  129. FSP_SIGNAL_CAN_FIFO_TX, ///< CAN FIFO TX
  130. FSP_SIGNAL_CAN_MAILBOX_RX, ///< CAN MAILBOX RX
  131. FSP_SIGNAL_CAN_MAILBOX_TX, ///< CAN MAILBOX TX
  132. FSP_SIGNAL_CGC_MOSC_STOP = 0, ///< CGC MOSC STOP
  133. FSP_SIGNAL_LPM_SNOOZE_REQUEST, ///< LPM SNOOZE REQUEST
  134. FSP_SIGNAL_LVD_LVD1, ///< LVD LVD1
  135. FSP_SIGNAL_LVD_LVD2, ///< LVD LVD2
  136. FSP_SIGNAL_VBATT_LVD, ///< VBATT LVD
  137. FSP_SIGNAL_LVD_VBATT = FSP_SIGNAL_VBATT_LVD, ///< LVD VBATT
  138. FSP_SIGNAL_ACMPHS_INT = 0, ///< ACMPHS INT
  139. FSP_SIGNAL_ACMPLP_INT = 0, ///< ACMPLP INT
  140. FSP_SIGNAL_CTSU_END = 0, ///< CTSU END
  141. FSP_SIGNAL_CTSU_READ, ///< CTSU READ
  142. FSP_SIGNAL_CTSU_WRITE, ///< CTSU WRITE
  143. FSP_SIGNAL_DALI_DEI = 0, ///< DALI DEI
  144. FSP_SIGNAL_DALI_CLI, ///< DALI CLI
  145. FSP_SIGNAL_DALI_SDI, ///< DALI SDI
  146. FSP_SIGNAL_DALI_BPI, ///< DALI BPI
  147. FSP_SIGNAL_DALI_FEI, ///< DALI FEI
  148. FSP_SIGNAL_DALI_SDI_OR_BPI, ///< DALI SDI OR BPI
  149. FSP_SIGNAL_DMAC_INT = 0, ///< DMAC INT
  150. FSP_SIGNAL_DOC_INT = 0, ///< DOC INT
  151. FSP_SIGNAL_DRW_INT = 0, ///< DRW INT
  152. FSP_SIGNAL_DTC_COMPLETE = 0, ///< DTC COMPLETE
  153. FSP_SIGNAL_DTC_END, ///< DTC END
  154. FSP_SIGNAL_EDMAC_EINT = 0, ///< EDMAC EINT
  155. FSP_SIGNAL_ELC_SOFTWARE_EVENT_0 = 0, ///< ELC SOFTWARE EVENT 0
  156. FSP_SIGNAL_ELC_SOFTWARE_EVENT_1, ///< ELC SOFTWARE EVENT 1
  157. FSP_SIGNAL_EPTPC_IPLS = 0, ///< EPTPC IPLS
  158. FSP_SIGNAL_EPTPC_MINT, ///< EPTPC MINT
  159. FSP_SIGNAL_EPTPC_PINT, ///< EPTPC PINT
  160. FSP_SIGNAL_EPTPC_TIMER0_FALL, ///< EPTPC TIMER0 FALL
  161. FSP_SIGNAL_EPTPC_TIMER0_RISE, ///< EPTPC TIMER0 RISE
  162. FSP_SIGNAL_EPTPC_TIMER1_FALL, ///< EPTPC TIMER1 FALL
  163. FSP_SIGNAL_EPTPC_TIMER1_RISE, ///< EPTPC TIMER1 RISE
  164. FSP_SIGNAL_EPTPC_TIMER2_FALL, ///< EPTPC TIMER2 FALL
  165. FSP_SIGNAL_EPTPC_TIMER2_RISE, ///< EPTPC TIMER2 RISE
  166. FSP_SIGNAL_EPTPC_TIMER3_FALL, ///< EPTPC TIMER3 FALL
  167. FSP_SIGNAL_EPTPC_TIMER3_RISE, ///< EPTPC TIMER3 RISE
  168. FSP_SIGNAL_EPTPC_TIMER4_FALL, ///< EPTPC TIMER4 FALL
  169. FSP_SIGNAL_EPTPC_TIMER4_RISE, ///< EPTPC TIMER4 RISE
  170. FSP_SIGNAL_EPTPC_TIMER5_FALL, ///< EPTPC TIMER5 FALL
  171. FSP_SIGNAL_EPTPC_TIMER5_RISE, ///< EPTPC TIMER5 RISE
  172. FSP_SIGNAL_FCU_FIFERR = 0, ///< FCU FIFERR
  173. FSP_SIGNAL_FCU_FRDYI, ///< FCU FRDYI
  174. FSP_SIGNAL_GLCDC_LINE_DETECT = 0, ///< GLCDC LINE DETECT
  175. FSP_SIGNAL_GLCDC_UNDERFLOW_1, ///< GLCDC UNDERFLOW 1
  176. FSP_SIGNAL_GLCDC_UNDERFLOW_2, ///< GLCDC UNDERFLOW 2
  177. FSP_SIGNAL_GPT_CAPTURE_COMPARE_A = 0, ///< GPT CAPTURE COMPARE A
  178. FSP_SIGNAL_GPT_CAPTURE_COMPARE_B, ///< GPT CAPTURE COMPARE B
  179. FSP_SIGNAL_GPT_COMPARE_C, ///< GPT COMPARE C
  180. FSP_SIGNAL_GPT_COMPARE_D, ///< GPT COMPARE D
  181. FSP_SIGNAL_GPT_COMPARE_E, ///< GPT COMPARE E
  182. FSP_SIGNAL_GPT_COMPARE_F, ///< GPT COMPARE F
  183. FSP_SIGNAL_GPT_COUNTER_OVERFLOW, ///< GPT COUNTER OVERFLOW
  184. FSP_SIGNAL_GPT_COUNTER_UNDERFLOW, ///< GPT COUNTER UNDERFLOW
  185. FSP_SIGNAL_GPT_AD_TRIG_A, ///< GPT AD TRIG A
  186. FSP_SIGNAL_GPT_AD_TRIG_B, ///< GPT AD TRIG B
  187. FSP_SIGNAL_OPS_UVW_EDGE, ///< OPS UVW EDGE
  188. FSP_SIGNAL_ICU_IRQ0 = 0, ///< ICU IRQ0
  189. FSP_SIGNAL_ICU_IRQ1, ///< ICU IRQ1
  190. FSP_SIGNAL_ICU_IRQ2, ///< ICU IRQ2
  191. FSP_SIGNAL_ICU_IRQ3, ///< ICU IRQ3
  192. FSP_SIGNAL_ICU_IRQ4, ///< ICU IRQ4
  193. FSP_SIGNAL_ICU_IRQ5, ///< ICU IRQ5
  194. FSP_SIGNAL_ICU_IRQ6, ///< ICU IRQ6
  195. FSP_SIGNAL_ICU_IRQ7, ///< ICU IRQ7
  196. FSP_SIGNAL_ICU_IRQ8, ///< ICU IRQ8
  197. FSP_SIGNAL_ICU_IRQ9, ///< ICU IRQ9
  198. FSP_SIGNAL_ICU_IRQ10, ///< ICU IRQ10
  199. FSP_SIGNAL_ICU_IRQ11, ///< ICU IRQ11
  200. FSP_SIGNAL_ICU_IRQ12, ///< ICU IRQ12
  201. FSP_SIGNAL_ICU_IRQ13, ///< ICU IRQ13
  202. FSP_SIGNAL_ICU_IRQ14, ///< ICU IRQ14
  203. FSP_SIGNAL_ICU_IRQ15, ///< ICU IRQ15
  204. FSP_SIGNAL_ICU_SNOOZE_CANCEL, ///< ICU SNOOZE CANCEL
  205. FSP_SIGNAL_IIC_ERI = 0, ///< IIC ERI
  206. FSP_SIGNAL_IIC_RXI, ///< IIC RXI
  207. FSP_SIGNAL_IIC_TEI, ///< IIC TEI
  208. FSP_SIGNAL_IIC_TXI, ///< IIC TXI
  209. FSP_SIGNAL_IIC_WUI, ///< IIC WUI
  210. FSP_SIGNAL_IOPORT_EVENT_1 = 0, ///< IOPORT EVENT 1
  211. FSP_SIGNAL_IOPORT_EVENT_2, ///< IOPORT EVENT 2
  212. FSP_SIGNAL_IOPORT_EVENT_3, ///< IOPORT EVENT 3
  213. FSP_SIGNAL_IOPORT_EVENT_4, ///< IOPORT EVENT 4
  214. FSP_SIGNAL_IOPORT_EVENT_B = 0, ///< IOPORT EVENT B
  215. FSP_SIGNAL_IOPORT_EVENT_C, ///< IOPORT EVENT C
  216. FSP_SIGNAL_IOPORT_EVENT_D, ///< IOPORT EVENT D
  217. FSP_SIGNAL_IOPORT_EVENT_E, ///< IOPORT EVENT E
  218. FSP_SIGNAL_IWDT_UNDERFLOW = 0, ///< IWDT UNDERFLOW
  219. FSP_SIGNAL_JPEG_JDTI = 0, ///< JPEG JDTI
  220. FSP_SIGNAL_JPEG_JEDI, ///< JPEG JEDI
  221. FSP_SIGNAL_KEY_INT = 0, ///< KEY INT
  222. FSP_SIGNAL_PDC_FRAME_END = 0, ///< PDC FRAME END
  223. FSP_SIGNAL_PDC_INT, ///< PDC INT
  224. FSP_SIGNAL_PDC_RECEIVE_DATA_READY, ///< PDC RECEIVE DATA READY
  225. FSP_SIGNAL_POEG_EVENT = 0, ///< POEG EVENT
  226. FSP_SIGNAL_QSPI_INT = 0, ///< QSPI INT
  227. FSP_SIGNAL_RTC_ALARM = 0, ///< RTC ALARM
  228. FSP_SIGNAL_RTC_PERIOD, ///< RTC PERIOD
  229. FSP_SIGNAL_RTC_CARRY, ///< RTC CARRY
  230. FSP_SIGNAL_SCE_INTEGRATE_RDRDY = 0, ///< SCE INTEGRATE RDRDY
  231. FSP_SIGNAL_SCE_INTEGRATE_WRRDY, ///< SCE INTEGRATE WRRDY
  232. FSP_SIGNAL_SCE_LONG_PLG, ///< SCE LONG PLG
  233. FSP_SIGNAL_SCE_PROC_BUSY, ///< SCE PROC BUSY
  234. FSP_SIGNAL_SCE_RDRDY_0, ///< SCE RDRDY 0
  235. FSP_SIGNAL_SCE_RDRDY_1, ///< SCE RDRDY 1
  236. FSP_SIGNAL_SCE_ROMOK, ///< SCE ROMOK
  237. FSP_SIGNAL_SCE_TEST_BUSY, ///< SCE TEST BUSY
  238. FSP_SIGNAL_SCE_WRRDY_0, ///< SCE WRRDY 0
  239. FSP_SIGNAL_SCE_WRRDY_1, ///< SCE WRRDY 1
  240. FSP_SIGNAL_SCE_WRRDY_4, ///< SCE WRRDY 4
  241. FSP_SIGNAL_SCI_AM = 0, ///< SCI AM
  242. FSP_SIGNAL_SCI_ERI, ///< SCI ERI
  243. FSP_SIGNAL_SCI_RXI, ///< SCI RXI
  244. FSP_SIGNAL_SCI_RXI_OR_ERI, ///< SCI RXI OR ERI
  245. FSP_SIGNAL_SCI_TEI, ///< SCI TEI
  246. FSP_SIGNAL_SCI_TXI, ///< SCI TXI
  247. FSP_SIGNAL_SDADC_ADI = 0, ///< SDADC ADI
  248. FSP_SIGNAL_SDADC_SCANEND, ///< SDADC SCANEND
  249. FSP_SIGNAL_SDADC_CALIEND, ///< SDADC CALIEND
  250. FSP_SIGNAL_SDHIMMC_ACCS = 0, ///< SDHIMMC ACCS
  251. FSP_SIGNAL_SDHIMMC_CARD, ///< SDHIMMC CARD
  252. FSP_SIGNAL_SDHIMMC_DMA_REQ, ///< SDHIMMC DMA REQ
  253. FSP_SIGNAL_SDHIMMC_SDIO, ///< SDHIMMC SDIO
  254. FSP_SIGNAL_SPI_ERI = 0, ///< SPI ERI
  255. FSP_SIGNAL_SPI_IDLE, ///< SPI IDLE
  256. FSP_SIGNAL_SPI_RXI, ///< SPI RXI
  257. FSP_SIGNAL_SPI_TEI, ///< SPI TEI
  258. FSP_SIGNAL_SPI_TXI, ///< SPI TXI
  259. FSP_SIGNAL_SRC_CONVERSION_END = 0, ///< SRC CONVERSION END
  260. FSP_SIGNAL_SRC_INPUT_FIFO_EMPTY, ///< SRC INPUT FIFO EMPTY
  261. FSP_SIGNAL_SRC_OUTPUT_FIFO_FULL, ///< SRC OUTPUT FIFO FULL
  262. FSP_SIGNAL_SRC_OUTPUT_FIFO_OVERFLOW, ///< SRC OUTPUT FIFO OVERFLOW
  263. FSP_SIGNAL_SRC_OUTPUT_FIFO_UNDERFLOW, ///< SRC OUTPUT FIFO UNDERFLOW
  264. FSP_SIGNAL_SSI_INT = 0, ///< SSI INT
  265. FSP_SIGNAL_SSI_RXI, ///< SSI RXI
  266. FSP_SIGNAL_SSI_TXI, ///< SSI TXI
  267. FSP_SIGNAL_SSI_TXI_RXI, ///< SSI TXI RXI
  268. FSP_SIGNAL_TRNG_RDREQ = 0, ///< TRNG RDREQ
  269. FSP_SIGNAL_USB_FIFO_0 = 0, ///< USB FIFO 0
  270. FSP_SIGNAL_USB_FIFO_1, ///< USB FIFO 1
  271. FSP_SIGNAL_USB_INT, ///< USB INT
  272. FSP_SIGNAL_USB_RESUME, ///< USB RESUME
  273. FSP_SIGNAL_USB_USB_INT_RESUME, ///< USB USB INT RESUME
  274. FSP_SIGNAL_WDT_UNDERFLOW = 0, ///< WDT UNDERFLOW
  275. FSP_SIGNAL_ULPT_COMPARE_A = 0, ///< ULPT COMPARE A
  276. FSP_SIGNAL_ULPT_COMPARE_B, ///< ULPT COMPARE B
  277. FSP_SIGNAL_ULPT_INT, ///< ULPT INT
  278. } fsp_signal_t;
  279. typedef void (* fsp_vector_t)(void);
  280. /** @} (end addtogroup BSP_MCU) */
  281. /** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */
  282. FSP_FOOTER
  283. #endif