hal_data.c 75 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959
  1. /* generated HAL source file - do not edit */
  2. #include "hal_data.h"
  3. /* Macros to tie dynamic ELC links to ADC_TRIGGER_SYNC_ELC option in adc_trigger_t. */
  4. #define ADC_TRIGGER_ADC0_A ADC_TRIGGER_SYNC_ELC
  5. #define ADC_TRIGGER_ADC0_B ADC_TRIGGER_SYNC_ELC
  6. #define ADC_TRIGGER_ADC1_A ADC_TRIGGER_SYNC_ELC
  7. #define ADC_TRIGGER_ADC1_B ADC_TRIGGER_SYNC_ELC
  8. #define ADC_TRIGGER_ADC2_A ADC_TRIGGER_SYNC_ELC
  9. #define ADC_TRIGGER_ADC2_B ADC_TRIGGER_SYNC_ELC
  10. #if defined(BSP_MCU_GROUP_RZT2M) || defined(BSP_MCU_GROUP_RZN2L)
  11. #define ETHER_BUFFER_PLACE_IN_SECTION BSP_PLACE_IN_SECTION(".noncache_buffer.eth")
  12. #else
  13. #define ETHER_BUFFER_PLACE_IN_SECTION
  14. #endif
  15. gpt_instance_ctrl_t g_timer17_ctrl;
  16. #if 0
  17. const gpt_extended_pwm_cfg_t g_timer17_pwm_extend =
  18. {
  19. #if defined(VECTOR_NUMBER_GPT10_UDF)
  20. .trough_ipl = (BSP_IRQ_DISABLED),
  21. .trough_irq = VECTOR_NUMBER_GPT10_UDF,
  22. #elif defined(VECTOR_NUMBER_GPT01_3_INT)
  23. .trough_ipl = FSP_NOT_DEFINED,
  24. .trough_irq = VECTOR_NUMBER_GPT01_3_INT,
  25. #else
  26. .trough_ipl = (BSP_IRQ_DISABLED),
  27. .trough_irq = FSP_INVALID_VECTOR,
  28. #endif
  29. .poeg_link = GPT_POEG_LINK_POEG0,
  30. .output_disable = GPT_OUTPUT_DISABLE_NONE,
  31. .adc_trigger = GPT_ADC_TRIGGER_NONE,
  32. .dead_time_count_up = 0,
  33. .dead_time_count_down = 0,
  34. .adc_a_compare_match = 0,
  35. .adc_b_compare_match = 0,
  36. .interrupt_skip_source = GPT_INTERRUPT_SKIP_SOURCE_NONE,
  37. .interrupt_skip_count = GPT_INTERRUPT_SKIP_COUNT_0,
  38. .interrupt_skip_adc = GPT_INTERRUPT_SKIP_ADC_NONE,
  39. .gtioca_disable_setting = GPT_GTIOC_DISABLE_PROHIBITED,
  40. .gtiocb_disable_setting = GPT_GTIOC_DISABLE_PROHIBITED,
  41. .interrupt_skip_source_ext1 = GPT_INTERRUPT_SKIP_SOURCE_NONE,
  42. .interrupt_skip_count_ext1 = GPT_INTERRUPT_SKIP_COUNT_0,
  43. .interrupt_skip_source_ext2 = GPT_INTERRUPT_SKIP_SOURCE_NONE,
  44. .interrupt_skip_count_ext2 = GPT_INTERRUPT_SKIP_COUNT_0,
  45. .interrupt_skip_func_ovf = GPT_INTERRUPT_SKIP_SELECT_NONE,
  46. .interrupt_skip_func_unf = GPT_INTERRUPT_SKIP_SELECT_NONE,
  47. .interrupt_skip_func_adc_a = GPT_INTERRUPT_SKIP_SELECT_NONE,
  48. .interrupt_skip_func_adc_b = GPT_INTERRUPT_SKIP_SELECT_NONE,
  49. };
  50. #endif
  51. const gpt_extended_cfg_t g_timer17_extend =
  52. {
  53. .gtioca = { .output_enabled = true,
  54. .stop_level = GPT_PIN_LEVEL_LOW
  55. },
  56. .gtiocb = { .output_enabled = false,
  57. .stop_level = GPT_PIN_LEVEL_LOW
  58. },
  59. .start_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  60. .stop_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  61. .clear_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  62. #if (0 == (0))
  63. .count_up_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  64. .count_down_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  65. #else
  66. .count_up_source = (gpt_source_t) ((GPT_PHASE_COUNTING_MODE_1_UP | (GPT_PHASE_COUNTING_MODE_1_DN << 16)) & 0x000FFFFU),
  67. .count_down_source = (gpt_source_t) (((GPT_PHASE_COUNTING_MODE_1_UP | (GPT_PHASE_COUNTING_MODE_1_DN << 16)) & 0xFFFF0000U) >> 16),
  68. #endif
  69. .capture_a_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  70. .capture_b_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  71. #if defined(VECTOR_NUMBER_GPT10_CCMPA)
  72. .capture_a_ipl = (12),
  73. .capture_a_irq = VECTOR_NUMBER_GPT10_CCMPA,
  74. .capture_a_source_select = BSP_IRQ_DISABLED,
  75. #elif defined(VECTOR_NUMBER_GPT01_3_INT)
  76. .capture_a_ipl = FSP_NOT_DEFINED,
  77. .capture_a_irq = VECTOR_NUMBER_GPT01_3_INT,
  78. .capture_a_source_select = ,
  79. #else
  80. .capture_a_ipl = (12),
  81. .capture_a_irq = FSP_INVALID_VECTOR,
  82. .capture_a_source_select = BSP_IRQ_DISABLED,
  83. #endif
  84. #if defined(VECTOR_NUMBER_GPT10_CCMPB)
  85. .capture_b_irq = VECTOR_NUMBER_GPT10_CCMPB,
  86. .capture_b_ipl = (BSP_IRQ_DISABLED),
  87. .capture_b_source_select = BSP_IRQ_DISABLED,
  88. #elif defined(VECTOR_NUMBER_GPT01_3_INT)
  89. .capture_b_irq = VECTOR_NUMBER_GPT01_3_INT,
  90. .capture_b_ipl = FSP_NOT_DEFINED,
  91. .capture_b_source_select = ,
  92. #else
  93. .capture_b_ipl = (BSP_IRQ_DISABLED),
  94. .capture_b_irq = FSP_INVALID_VECTOR,
  95. .capture_b_source_select = BSP_IRQ_DISABLED,
  96. #endif
  97. .capture_filter_gtioca = GPT_CAPTURE_FILTER_NONE,
  98. .capture_filter_gtiocb = GPT_CAPTURE_FILTER_NONE,
  99. #if 0
  100. .p_pwm_cfg = &g_timer17_pwm_extend,
  101. #else
  102. .p_pwm_cfg = NULL,
  103. #endif
  104. #if defined(VECTOR_NUMBER_GPT10_DTE)
  105. .dead_time_ipl = (BSP_IRQ_DISABLED),
  106. .dead_time_irq = VECTOR_NUMBER_GPT10_DTE,
  107. .dead_time_error_source_select = BSP_IRQ_DISABLED,
  108. #elif defined(VECTOR_NUMBER_GPT01_3_INT)
  109. .dead_time_ipl = FSP_NOT_DEFINED,
  110. .dead_time_irq = VECTOR_NUMBER_GPT01_3_INT,
  111. .dead_time_error_source_select = ,
  112. #else
  113. .dead_time_ipl = (BSP_IRQ_DISABLED),
  114. .dead_time_irq = FSP_INVALID_VECTOR,
  115. .dead_time_error_source_select = BSP_IRQ_DISABLED,
  116. #endif
  117. .icds = 0,
  118. #if (2U == BSP_FEATURE_GPT_REGISTER_MASK_TYPE)
  119. #if (1U == BSP_FEATURE_GPT_INPUT_CAPTURE_SIGNAL_SELECTABLE)
  120. .gtioc_isel = 0,
  121. #endif
  122. #endif
  123. #if defined(VECTOR_NUMBER_GPT10_OVF)
  124. .cycle_end_source_select = BSP_IRQ_DISABLED,
  125. #elif defined(VECTOR_NUMBER_GPT01_3_INT)
  126. .cycle_end_source_select = ,
  127. #else
  128. .cycle_end_source_select = BSP_IRQ_DISABLED,
  129. #endif
  130. #if defined(VECTOR_NUMBER_GPT10_UDF)
  131. .trough_source_select = BSP_IRQ_DISABLED,
  132. #elif defined(VECTOR_NUMBER_GPT01_3_INT)
  133. .trough_source_select = ,
  134. #else
  135. .trough_source_select = BSP_IRQ_DISABLED,
  136. #endif
  137. };
  138. const timer_cfg_t g_timer17_cfg =
  139. {
  140. .mode = TIMER_MODE_PWM,
  141. /* Actual period: 1 seconds. Actual duty: 0%. */ .period_counts = (uint32_t) 0x5f5e100, .duty_cycle_counts = 0x0, .source_div = (timer_source_div_t)0,
  142. .channel = GPT_CHANNEL_UNIT1_3,
  143. #if (1 == BSP_FEATURE_BSP_IRQ_GPT_SEL_SUPPORTED)
  144. .p_callback = NULL,
  145. #else
  146. .p_callback = gpt17_timing_callback,
  147. #endif
  148. .p_context = NULL,
  149. .p_extend = &g_timer17_extend,
  150. #if defined(VECTOR_NUMBER_GPT10_OVF)
  151. .cycle_end_ipl = (12),
  152. .cycle_end_irq = VECTOR_NUMBER_GPT10_OVF,
  153. #elif defined(VECTOR_NUMBER_GPT01_3_INT)
  154. .cycle_end_ipl = FSP_NOT_DEFINED,
  155. .cycle_end_irq = VECTOR_NUMBER_GPT01_3_INT,
  156. #else
  157. .cycle_end_ipl = (12),
  158. .cycle_end_irq = FSP_INVALID_VECTOR,
  159. #endif
  160. };
  161. /* Instance structure to use this module. */
  162. const timer_instance_t g_timer17 =
  163. {
  164. .p_ctrl = &g_timer17_ctrl,
  165. .p_cfg = &g_timer17_cfg,
  166. .p_api = &g_timer_on_gpt
  167. };
  168. gpt_instance_ctrl_t g_timer14_ctrl;
  169. #if 0
  170. const gpt_extended_pwm_cfg_t g_timer14_pwm_extend =
  171. {
  172. #if defined(VECTOR_NUMBER_GPT8_UDF)
  173. .trough_ipl = (BSP_IRQ_DISABLED),
  174. .trough_irq = VECTOR_NUMBER_GPT8_UDF,
  175. #elif defined(VECTOR_NUMBER_GPT01_1_INT)
  176. .trough_ipl = FSP_NOT_DEFINED,
  177. .trough_irq = VECTOR_NUMBER_GPT01_1_INT,
  178. #else
  179. .trough_ipl = (BSP_IRQ_DISABLED),
  180. .trough_irq = FSP_INVALID_VECTOR,
  181. #endif
  182. .poeg_link = GPT_POEG_LINK_POEG0,
  183. .output_disable = GPT_OUTPUT_DISABLE_NONE,
  184. .adc_trigger = GPT_ADC_TRIGGER_NONE,
  185. .dead_time_count_up = 0,
  186. .dead_time_count_down = 0,
  187. .adc_a_compare_match = 0,
  188. .adc_b_compare_match = 0,
  189. .interrupt_skip_source = GPT_INTERRUPT_SKIP_SOURCE_NONE,
  190. .interrupt_skip_count = GPT_INTERRUPT_SKIP_COUNT_0,
  191. .interrupt_skip_adc = GPT_INTERRUPT_SKIP_ADC_NONE,
  192. .gtioca_disable_setting = GPT_GTIOC_DISABLE_PROHIBITED,
  193. .gtiocb_disable_setting = GPT_GTIOC_DISABLE_PROHIBITED,
  194. .interrupt_skip_source_ext1 = GPT_INTERRUPT_SKIP_SOURCE_NONE,
  195. .interrupt_skip_count_ext1 = GPT_INTERRUPT_SKIP_COUNT_0,
  196. .interrupt_skip_source_ext2 = GPT_INTERRUPT_SKIP_SOURCE_NONE,
  197. .interrupt_skip_count_ext2 = GPT_INTERRUPT_SKIP_COUNT_0,
  198. .interrupt_skip_func_ovf = GPT_INTERRUPT_SKIP_SELECT_NONE,
  199. .interrupt_skip_func_unf = GPT_INTERRUPT_SKIP_SELECT_NONE,
  200. .interrupt_skip_func_adc_a = GPT_INTERRUPT_SKIP_SELECT_NONE,
  201. .interrupt_skip_func_adc_b = GPT_INTERRUPT_SKIP_SELECT_NONE,
  202. };
  203. #endif
  204. const gpt_extended_cfg_t g_timer14_extend =
  205. {
  206. .gtioca = { .output_enabled = true,
  207. .stop_level = GPT_PIN_LEVEL_LOW
  208. },
  209. .gtiocb = { .output_enabled = false,
  210. .stop_level = GPT_PIN_LEVEL_LOW
  211. },
  212. .start_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  213. .stop_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  214. .clear_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  215. #if (0 == (0))
  216. .count_up_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  217. .count_down_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  218. #else
  219. .count_up_source = (gpt_source_t) ((GPT_PHASE_COUNTING_MODE_1_UP | (GPT_PHASE_COUNTING_MODE_1_DN << 16)) & 0x000FFFFU),
  220. .count_down_source = (gpt_source_t) (((GPT_PHASE_COUNTING_MODE_1_UP | (GPT_PHASE_COUNTING_MODE_1_DN << 16)) & 0xFFFF0000U) >> 16),
  221. #endif
  222. .capture_a_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  223. .capture_b_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  224. #if defined(VECTOR_NUMBER_GPT8_CCMPA)
  225. .capture_a_ipl = (12),
  226. .capture_a_irq = VECTOR_NUMBER_GPT8_CCMPA,
  227. .capture_a_source_select = BSP_IRQ_DISABLED,
  228. #elif defined(VECTOR_NUMBER_GPT01_1_INT)
  229. .capture_a_ipl = FSP_NOT_DEFINED,
  230. .capture_a_irq = VECTOR_NUMBER_GPT01_1_INT,
  231. .capture_a_source_select = ,
  232. #else
  233. .capture_a_ipl = (12),
  234. .capture_a_irq = FSP_INVALID_VECTOR,
  235. .capture_a_source_select = BSP_IRQ_DISABLED,
  236. #endif
  237. #if defined(VECTOR_NUMBER_GPT8_CCMPB)
  238. .capture_b_irq = VECTOR_NUMBER_GPT8_CCMPB,
  239. .capture_b_ipl = (BSP_IRQ_DISABLED),
  240. .capture_b_source_select = BSP_IRQ_DISABLED,
  241. #elif defined(VECTOR_NUMBER_GPT01_1_INT)
  242. .capture_b_irq = VECTOR_NUMBER_GPT01_1_INT,
  243. .capture_b_ipl = FSP_NOT_DEFINED,
  244. .capture_b_source_select = ,
  245. #else
  246. .capture_b_ipl = (BSP_IRQ_DISABLED),
  247. .capture_b_irq = FSP_INVALID_VECTOR,
  248. .capture_b_source_select = BSP_IRQ_DISABLED,
  249. #endif
  250. .capture_filter_gtioca = GPT_CAPTURE_FILTER_NONE,
  251. .capture_filter_gtiocb = GPT_CAPTURE_FILTER_NONE,
  252. #if 0
  253. .p_pwm_cfg = &g_timer14_pwm_extend,
  254. #else
  255. .p_pwm_cfg = NULL,
  256. #endif
  257. #if defined(VECTOR_NUMBER_GPT8_DTE)
  258. .dead_time_ipl = (BSP_IRQ_DISABLED),
  259. .dead_time_irq = VECTOR_NUMBER_GPT8_DTE,
  260. .dead_time_error_source_select = BSP_IRQ_DISABLED,
  261. #elif defined(VECTOR_NUMBER_GPT01_1_INT)
  262. .dead_time_ipl = FSP_NOT_DEFINED,
  263. .dead_time_irq = VECTOR_NUMBER_GPT01_1_INT,
  264. .dead_time_error_source_select = ,
  265. #else
  266. .dead_time_ipl = (BSP_IRQ_DISABLED),
  267. .dead_time_irq = FSP_INVALID_VECTOR,
  268. .dead_time_error_source_select = BSP_IRQ_DISABLED,
  269. #endif
  270. .icds = 0,
  271. #if (2U == BSP_FEATURE_GPT_REGISTER_MASK_TYPE)
  272. #if (1U == BSP_FEATURE_GPT_INPUT_CAPTURE_SIGNAL_SELECTABLE)
  273. .gtioc_isel = 0,
  274. #endif
  275. #endif
  276. #if defined(VECTOR_NUMBER_GPT8_OVF)
  277. .cycle_end_source_select = BSP_IRQ_DISABLED,
  278. #elif defined(VECTOR_NUMBER_GPT01_1_INT)
  279. .cycle_end_source_select = ,
  280. #else
  281. .cycle_end_source_select = BSP_IRQ_DISABLED,
  282. #endif
  283. #if defined(VECTOR_NUMBER_GPT8_UDF)
  284. .trough_source_select = BSP_IRQ_DISABLED,
  285. #elif defined(VECTOR_NUMBER_GPT01_1_INT)
  286. .trough_source_select = ,
  287. #else
  288. .trough_source_select = BSP_IRQ_DISABLED,
  289. #endif
  290. };
  291. const timer_cfg_t g_timer14_cfg =
  292. {
  293. .mode = TIMER_MODE_PWM,
  294. /* Actual period: 1 seconds. Actual duty: 0%. */ .period_counts = (uint32_t) 0x5f5e100, .duty_cycle_counts = 0x0, .source_div = (timer_source_div_t)0,
  295. .channel = GPT_CHANNEL_UNIT1_1,
  296. #if (1 == BSP_FEATURE_BSP_IRQ_GPT_SEL_SUPPORTED)
  297. .p_callback = NULL,
  298. #else
  299. .p_callback = gpt14_timing_callback,
  300. #endif
  301. .p_context = NULL,
  302. .p_extend = &g_timer14_extend,
  303. #if defined(VECTOR_NUMBER_GPT8_OVF)
  304. .cycle_end_ipl = (12),
  305. .cycle_end_irq = VECTOR_NUMBER_GPT8_OVF,
  306. #elif defined(VECTOR_NUMBER_GPT01_1_INT)
  307. .cycle_end_ipl = FSP_NOT_DEFINED,
  308. .cycle_end_irq = VECTOR_NUMBER_GPT01_1_INT,
  309. #else
  310. .cycle_end_ipl = (12),
  311. .cycle_end_irq = FSP_INVALID_VECTOR,
  312. #endif
  313. };
  314. /* Instance structure to use this module. */
  315. const timer_instance_t g_timer14 =
  316. {
  317. .p_ctrl = &g_timer14_ctrl,
  318. .p_cfg = &g_timer14_cfg,
  319. .p_api = &g_timer_on_gpt
  320. };
  321. gpt_instance_ctrl_t g_timer15_ctrl;
  322. #if 0
  323. const gpt_extended_pwm_cfg_t g_timer15_pwm_extend =
  324. {
  325. #if defined(VECTOR_NUMBER_GPT2_UDF)
  326. .trough_ipl = (BSP_IRQ_DISABLED),
  327. .trough_irq = VECTOR_NUMBER_GPT2_UDF,
  328. #elif defined(VECTOR_NUMBER_GPT00_2_INT)
  329. .trough_ipl = FSP_NOT_DEFINED,
  330. .trough_irq = VECTOR_NUMBER_GPT00_2_INT,
  331. #else
  332. .trough_ipl = (BSP_IRQ_DISABLED),
  333. .trough_irq = FSP_INVALID_VECTOR,
  334. #endif
  335. .poeg_link = GPT_POEG_LINK_POEG0,
  336. .output_disable = GPT_OUTPUT_DISABLE_NONE,
  337. .adc_trigger = GPT_ADC_TRIGGER_NONE,
  338. .dead_time_count_up = 0,
  339. .dead_time_count_down = 0,
  340. .adc_a_compare_match = 0,
  341. .adc_b_compare_match = 0,
  342. .interrupt_skip_source = GPT_INTERRUPT_SKIP_SOURCE_NONE,
  343. .interrupt_skip_count = GPT_INTERRUPT_SKIP_COUNT_0,
  344. .interrupt_skip_adc = GPT_INTERRUPT_SKIP_ADC_NONE,
  345. .gtioca_disable_setting = GPT_GTIOC_DISABLE_PROHIBITED,
  346. .gtiocb_disable_setting = GPT_GTIOC_DISABLE_PROHIBITED,
  347. .interrupt_skip_source_ext1 = GPT_INTERRUPT_SKIP_SOURCE_NONE,
  348. .interrupt_skip_count_ext1 = GPT_INTERRUPT_SKIP_COUNT_0,
  349. .interrupt_skip_source_ext2 = GPT_INTERRUPT_SKIP_SOURCE_NONE,
  350. .interrupt_skip_count_ext2 = GPT_INTERRUPT_SKIP_COUNT_0,
  351. .interrupt_skip_func_ovf = GPT_INTERRUPT_SKIP_SELECT_NONE,
  352. .interrupt_skip_func_unf = GPT_INTERRUPT_SKIP_SELECT_NONE,
  353. .interrupt_skip_func_adc_a = GPT_INTERRUPT_SKIP_SELECT_NONE,
  354. .interrupt_skip_func_adc_b = GPT_INTERRUPT_SKIP_SELECT_NONE,
  355. };
  356. #endif
  357. const gpt_extended_cfg_t g_timer15_extend =
  358. {
  359. .gtioca = { .output_enabled = true,
  360. .stop_level = GPT_PIN_LEVEL_LOW
  361. },
  362. .gtiocb = { .output_enabled = true,
  363. .stop_level = GPT_PIN_LEVEL_LOW
  364. },
  365. .start_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  366. .stop_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  367. .clear_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  368. #if (0 == (0))
  369. .count_up_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  370. .count_down_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  371. #else
  372. .count_up_source = (gpt_source_t) ((GPT_PHASE_COUNTING_MODE_1_UP | (GPT_PHASE_COUNTING_MODE_1_DN << 16)) & 0x000FFFFU),
  373. .count_down_source = (gpt_source_t) (((GPT_PHASE_COUNTING_MODE_1_UP | (GPT_PHASE_COUNTING_MODE_1_DN << 16)) & 0xFFFF0000U) >> 16),
  374. #endif
  375. .capture_a_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  376. .capture_b_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  377. #if defined(VECTOR_NUMBER_GPT2_CCMPA)
  378. .capture_a_ipl = (12),
  379. .capture_a_irq = VECTOR_NUMBER_GPT2_CCMPA,
  380. .capture_a_source_select = BSP_IRQ_DISABLED,
  381. #elif defined(VECTOR_NUMBER_GPT00_2_INT)
  382. .capture_a_ipl = FSP_NOT_DEFINED,
  383. .capture_a_irq = VECTOR_NUMBER_GPT00_2_INT,
  384. .capture_a_source_select = ,
  385. #else
  386. .capture_a_ipl = (12),
  387. .capture_a_irq = FSP_INVALID_VECTOR,
  388. .capture_a_source_select = BSP_IRQ_DISABLED,
  389. #endif
  390. #if defined(VECTOR_NUMBER_GPT2_CCMPB)
  391. .capture_b_irq = VECTOR_NUMBER_GPT2_CCMPB,
  392. .capture_b_ipl = (12),
  393. .capture_b_source_select = BSP_IRQ_DISABLED,
  394. #elif defined(VECTOR_NUMBER_GPT00_2_INT)
  395. .capture_b_irq = VECTOR_NUMBER_GPT00_2_INT,
  396. .capture_b_ipl = FSP_NOT_DEFINED,
  397. .capture_b_source_select = ,
  398. #else
  399. .capture_b_ipl = (12),
  400. .capture_b_irq = FSP_INVALID_VECTOR,
  401. .capture_b_source_select = BSP_IRQ_DISABLED,
  402. #endif
  403. .capture_filter_gtioca = GPT_CAPTURE_FILTER_NONE,
  404. .capture_filter_gtiocb = GPT_CAPTURE_FILTER_NONE,
  405. #if 0
  406. .p_pwm_cfg = &g_timer15_pwm_extend,
  407. #else
  408. .p_pwm_cfg = NULL,
  409. #endif
  410. #if defined(VECTOR_NUMBER_GPT2_DTE)
  411. .dead_time_ipl = (BSP_IRQ_DISABLED),
  412. .dead_time_irq = VECTOR_NUMBER_GPT2_DTE,
  413. .dead_time_error_source_select = BSP_IRQ_DISABLED,
  414. #elif defined(VECTOR_NUMBER_GPT00_2_INT)
  415. .dead_time_ipl = FSP_NOT_DEFINED,
  416. .dead_time_irq = VECTOR_NUMBER_GPT00_2_INT,
  417. .dead_time_error_source_select = ,
  418. #else
  419. .dead_time_ipl = (BSP_IRQ_DISABLED),
  420. .dead_time_irq = FSP_INVALID_VECTOR,
  421. .dead_time_error_source_select = BSP_IRQ_DISABLED,
  422. #endif
  423. .icds = 0,
  424. #if (2U == BSP_FEATURE_GPT_REGISTER_MASK_TYPE)
  425. #if (1U == BSP_FEATURE_GPT_INPUT_CAPTURE_SIGNAL_SELECTABLE)
  426. .gtioc_isel = 0,
  427. #endif
  428. #endif
  429. #if defined(VECTOR_NUMBER_GPT2_OVF)
  430. .cycle_end_source_select = BSP_IRQ_DISABLED,
  431. #elif defined(VECTOR_NUMBER_GPT00_2_INT)
  432. .cycle_end_source_select = ,
  433. #else
  434. .cycle_end_source_select = BSP_IRQ_DISABLED,
  435. #endif
  436. #if defined(VECTOR_NUMBER_GPT2_UDF)
  437. .trough_source_select = BSP_IRQ_DISABLED,
  438. #elif defined(VECTOR_NUMBER_GPT00_2_INT)
  439. .trough_source_select = ,
  440. #else
  441. .trough_source_select = BSP_IRQ_DISABLED,
  442. #endif
  443. };
  444. const timer_cfg_t g_timer15_cfg =
  445. {
  446. .mode = TIMER_MODE_PWM,
  447. /* Actual period: 1 seconds. Actual duty: 0%. */ .period_counts = (uint32_t) 0x17d78400, .duty_cycle_counts = 0x0, .source_div = (timer_source_div_t)0,
  448. .channel = GPT_CHANNEL_UNIT0_2,
  449. #if (1 == BSP_FEATURE_BSP_IRQ_GPT_SEL_SUPPORTED)
  450. .p_callback = NULL,
  451. #else
  452. .p_callback = gpt15_timing_callback,
  453. #endif
  454. .p_context = NULL,
  455. .p_extend = &g_timer15_extend,
  456. #if defined(VECTOR_NUMBER_GPT2_OVF)
  457. .cycle_end_ipl = (12),
  458. .cycle_end_irq = VECTOR_NUMBER_GPT2_OVF,
  459. #elif defined(VECTOR_NUMBER_GPT00_2_INT)
  460. .cycle_end_ipl = FSP_NOT_DEFINED,
  461. .cycle_end_irq = VECTOR_NUMBER_GPT00_2_INT,
  462. #else
  463. .cycle_end_ipl = (12),
  464. .cycle_end_irq = FSP_INVALID_VECTOR,
  465. #endif
  466. };
  467. /* Instance structure to use this module. */
  468. const timer_instance_t g_timer15 =
  469. {
  470. .p_ctrl = &g_timer15_ctrl,
  471. .p_cfg = &g_timer15_cfg,
  472. .p_api = &g_timer_on_gpt
  473. };
  474. gpt_instance_ctrl_t g_timer6_ctrl;
  475. #if 0
  476. const gpt_extended_pwm_cfg_t g_timer6_pwm_extend =
  477. {
  478. #if defined(VECTOR_NUMBER_GPT1_UDF)
  479. .trough_ipl = (BSP_IRQ_DISABLED),
  480. .trough_irq = VECTOR_NUMBER_GPT1_UDF,
  481. #elif defined(VECTOR_NUMBER_GPT00_1_INT)
  482. .trough_ipl = FSP_NOT_DEFINED,
  483. .trough_irq = VECTOR_NUMBER_GPT00_1_INT,
  484. #else
  485. .trough_ipl = (BSP_IRQ_DISABLED),
  486. .trough_irq = FSP_INVALID_VECTOR,
  487. #endif
  488. .poeg_link = GPT_POEG_LINK_POEG0,
  489. .output_disable = GPT_OUTPUT_DISABLE_NONE,
  490. .adc_trigger = GPT_ADC_TRIGGER_NONE,
  491. .dead_time_count_up = 0,
  492. .dead_time_count_down = 0,
  493. .adc_a_compare_match = 0,
  494. .adc_b_compare_match = 0,
  495. .interrupt_skip_source = GPT_INTERRUPT_SKIP_SOURCE_NONE,
  496. .interrupt_skip_count = GPT_INTERRUPT_SKIP_COUNT_0,
  497. .interrupt_skip_adc = GPT_INTERRUPT_SKIP_ADC_NONE,
  498. .gtioca_disable_setting = GPT_GTIOC_DISABLE_PROHIBITED,
  499. .gtiocb_disable_setting = GPT_GTIOC_DISABLE_PROHIBITED,
  500. .interrupt_skip_source_ext1 = GPT_INTERRUPT_SKIP_SOURCE_NONE,
  501. .interrupt_skip_count_ext1 = GPT_INTERRUPT_SKIP_COUNT_0,
  502. .interrupt_skip_source_ext2 = GPT_INTERRUPT_SKIP_SOURCE_NONE,
  503. .interrupt_skip_count_ext2 = GPT_INTERRUPT_SKIP_COUNT_0,
  504. .interrupt_skip_func_ovf = GPT_INTERRUPT_SKIP_SELECT_NONE,
  505. .interrupt_skip_func_unf = GPT_INTERRUPT_SKIP_SELECT_NONE,
  506. .interrupt_skip_func_adc_a = GPT_INTERRUPT_SKIP_SELECT_NONE,
  507. .interrupt_skip_func_adc_b = GPT_INTERRUPT_SKIP_SELECT_NONE,
  508. };
  509. #endif
  510. const gpt_extended_cfg_t g_timer6_extend =
  511. {
  512. .gtioca = { .output_enabled = false,
  513. .stop_level = GPT_PIN_LEVEL_LOW
  514. },
  515. .gtiocb = { .output_enabled = true,
  516. .stop_level = GPT_PIN_LEVEL_LOW
  517. },
  518. .start_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  519. .stop_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  520. .clear_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  521. #if (0 == (0))
  522. .count_up_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  523. .count_down_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  524. #else
  525. .count_up_source = (gpt_source_t) ((GPT_PHASE_COUNTING_MODE_1_UP | (GPT_PHASE_COUNTING_MODE_1_DN << 16)) & 0x000FFFFU),
  526. .count_down_source = (gpt_source_t) (((GPT_PHASE_COUNTING_MODE_1_UP | (GPT_PHASE_COUNTING_MODE_1_DN << 16)) & 0xFFFF0000U) >> 16),
  527. #endif
  528. .capture_a_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  529. .capture_b_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  530. #if defined(VECTOR_NUMBER_GPT1_CCMPA)
  531. .capture_a_ipl = (12),
  532. .capture_a_irq = VECTOR_NUMBER_GPT1_CCMPA,
  533. .capture_a_source_select = BSP_IRQ_DISABLED,
  534. #elif defined(VECTOR_NUMBER_GPT00_1_INT)
  535. .capture_a_ipl = FSP_NOT_DEFINED,
  536. .capture_a_irq = VECTOR_NUMBER_GPT00_1_INT,
  537. .capture_a_source_select = ,
  538. #else
  539. .capture_a_ipl = (12),
  540. .capture_a_irq = FSP_INVALID_VECTOR,
  541. .capture_a_source_select = BSP_IRQ_DISABLED,
  542. #endif
  543. #if defined(VECTOR_NUMBER_GPT1_CCMPB)
  544. .capture_b_irq = VECTOR_NUMBER_GPT1_CCMPB,
  545. .capture_b_ipl = (12),
  546. .capture_b_source_select = BSP_IRQ_DISABLED,
  547. #elif defined(VECTOR_NUMBER_GPT00_1_INT)
  548. .capture_b_irq = VECTOR_NUMBER_GPT00_1_INT,
  549. .capture_b_ipl = FSP_NOT_DEFINED,
  550. .capture_b_source_select = ,
  551. #else
  552. .capture_b_ipl = (12),
  553. .capture_b_irq = FSP_INVALID_VECTOR,
  554. .capture_b_source_select = BSP_IRQ_DISABLED,
  555. #endif
  556. .capture_filter_gtioca = GPT_CAPTURE_FILTER_NONE,
  557. .capture_filter_gtiocb = GPT_CAPTURE_FILTER_NONE,
  558. #if 0
  559. .p_pwm_cfg = &g_timer6_pwm_extend,
  560. #else
  561. .p_pwm_cfg = NULL,
  562. #endif
  563. #if defined(VECTOR_NUMBER_GPT1_DTE)
  564. .dead_time_ipl = (BSP_IRQ_DISABLED),
  565. .dead_time_irq = VECTOR_NUMBER_GPT1_DTE,
  566. .dead_time_error_source_select = BSP_IRQ_DISABLED,
  567. #elif defined(VECTOR_NUMBER_GPT00_1_INT)
  568. .dead_time_ipl = FSP_NOT_DEFINED,
  569. .dead_time_irq = VECTOR_NUMBER_GPT00_1_INT,
  570. .dead_time_error_source_select = ,
  571. #else
  572. .dead_time_ipl = (BSP_IRQ_DISABLED),
  573. .dead_time_irq = FSP_INVALID_VECTOR,
  574. .dead_time_error_source_select = BSP_IRQ_DISABLED,
  575. #endif
  576. .icds = 0,
  577. #if (2U == BSP_FEATURE_GPT_REGISTER_MASK_TYPE)
  578. #if (1U == BSP_FEATURE_GPT_INPUT_CAPTURE_SIGNAL_SELECTABLE)
  579. .gtioc_isel = 0,
  580. #endif
  581. #endif
  582. #if defined(VECTOR_NUMBER_GPT1_OVF)
  583. .cycle_end_source_select = BSP_IRQ_DISABLED,
  584. #elif defined(VECTOR_NUMBER_GPT00_1_INT)
  585. .cycle_end_source_select = ,
  586. #else
  587. .cycle_end_source_select = BSP_IRQ_DISABLED,
  588. #endif
  589. #if defined(VECTOR_NUMBER_GPT1_UDF)
  590. .trough_source_select = BSP_IRQ_DISABLED,
  591. #elif defined(VECTOR_NUMBER_GPT00_1_INT)
  592. .trough_source_select = ,
  593. #else
  594. .trough_source_select = BSP_IRQ_DISABLED,
  595. #endif
  596. };
  597. const timer_cfg_t g_timer6_cfg =
  598. {
  599. .mode = TIMER_MODE_ONE_SHOT,
  600. /* Actual period: 1 seconds. Actual duty: 0%. */ .period_counts = (uint32_t) 0x17d78400, .duty_cycle_counts = 0x0, .source_div = (timer_source_div_t)0,
  601. .channel = GPT_CHANNEL_UNIT0_1,
  602. #if (1 == BSP_FEATURE_BSP_IRQ_GPT_SEL_SUPPORTED)
  603. .p_callback = NULL,
  604. #else
  605. .p_callback = gpt6_timing_callback,
  606. #endif
  607. .p_context = NULL,
  608. .p_extend = &g_timer6_extend,
  609. #if defined(VECTOR_NUMBER_GPT1_OVF)
  610. .cycle_end_ipl = (12),
  611. .cycle_end_irq = VECTOR_NUMBER_GPT1_OVF,
  612. #elif defined(VECTOR_NUMBER_GPT00_1_INT)
  613. .cycle_end_ipl = FSP_NOT_DEFINED,
  614. .cycle_end_irq = VECTOR_NUMBER_GPT00_1_INT,
  615. #else
  616. .cycle_end_ipl = (12),
  617. .cycle_end_irq = FSP_INVALID_VECTOR,
  618. #endif
  619. };
  620. /* Instance structure to use this module. */
  621. const timer_instance_t g_timer6 =
  622. {
  623. .p_ctrl = &g_timer6_ctrl,
  624. .p_cfg = &g_timer6_cfg,
  625. .p_api = &g_timer_on_gpt
  626. };
  627. gpt_instance_ctrl_t g_timer5_ctrl;
  628. #if 0
  629. const gpt_extended_pwm_cfg_t g_timer5_pwm_extend =
  630. {
  631. #if defined(VECTOR_NUMBER_GPT3_UDF)
  632. .trough_ipl = (BSP_IRQ_DISABLED),
  633. .trough_irq = VECTOR_NUMBER_GPT3_UDF,
  634. #elif defined(VECTOR_NUMBER_GPT00_3_INT)
  635. .trough_ipl = FSP_NOT_DEFINED,
  636. .trough_irq = VECTOR_NUMBER_GPT00_3_INT,
  637. #else
  638. .trough_ipl = (BSP_IRQ_DISABLED),
  639. .trough_irq = FSP_INVALID_VECTOR,
  640. #endif
  641. .poeg_link = GPT_POEG_LINK_POEG0,
  642. .output_disable = GPT_OUTPUT_DISABLE_NONE,
  643. .adc_trigger = GPT_ADC_TRIGGER_NONE,
  644. .dead_time_count_up = 0,
  645. .dead_time_count_down = 0,
  646. .adc_a_compare_match = 0,
  647. .adc_b_compare_match = 0,
  648. .interrupt_skip_source = GPT_INTERRUPT_SKIP_SOURCE_NONE,
  649. .interrupt_skip_count = GPT_INTERRUPT_SKIP_COUNT_0,
  650. .interrupt_skip_adc = GPT_INTERRUPT_SKIP_ADC_NONE,
  651. .gtioca_disable_setting = GPT_GTIOC_DISABLE_PROHIBITED,
  652. .gtiocb_disable_setting = GPT_GTIOC_DISABLE_PROHIBITED,
  653. .interrupt_skip_source_ext1 = GPT_INTERRUPT_SKIP_SOURCE_NONE,
  654. .interrupt_skip_count_ext1 = GPT_INTERRUPT_SKIP_COUNT_0,
  655. .interrupt_skip_source_ext2 = GPT_INTERRUPT_SKIP_SOURCE_NONE,
  656. .interrupt_skip_count_ext2 = GPT_INTERRUPT_SKIP_COUNT_0,
  657. .interrupt_skip_func_ovf = GPT_INTERRUPT_SKIP_SELECT_NONE,
  658. .interrupt_skip_func_unf = GPT_INTERRUPT_SKIP_SELECT_NONE,
  659. .interrupt_skip_func_adc_a = GPT_INTERRUPT_SKIP_SELECT_NONE,
  660. .interrupt_skip_func_adc_b = GPT_INTERRUPT_SKIP_SELECT_NONE,
  661. };
  662. #endif
  663. const gpt_extended_cfg_t g_timer5_extend =
  664. {
  665. .gtioca = { .output_enabled = true,
  666. .stop_level = GPT_PIN_LEVEL_LOW
  667. },
  668. .gtiocb = { .output_enabled = true,
  669. .stop_level = GPT_PIN_LEVEL_LOW
  670. },
  671. .start_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  672. .stop_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  673. .clear_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  674. #if (0 == (0))
  675. .count_up_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  676. .count_down_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  677. #else
  678. .count_up_source = (gpt_source_t) ((GPT_PHASE_COUNTING_MODE_1_UP | (GPT_PHASE_COUNTING_MODE_1_DN << 16)) & 0x000FFFFU),
  679. .count_down_source = (gpt_source_t) (((GPT_PHASE_COUNTING_MODE_1_UP | (GPT_PHASE_COUNTING_MODE_1_DN << 16)) & 0xFFFF0000U) >> 16),
  680. #endif
  681. .capture_a_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  682. .capture_b_source = (gpt_source_t) ( GPT_SOURCE_NONE),
  683. #if defined(VECTOR_NUMBER_GPT3_CCMPA)
  684. .capture_a_ipl = (12),
  685. .capture_a_irq = VECTOR_NUMBER_GPT3_CCMPA,
  686. .capture_a_source_select = BSP_IRQ_DISABLED,
  687. #elif defined(VECTOR_NUMBER_GPT00_3_INT)
  688. .capture_a_ipl = FSP_NOT_DEFINED,
  689. .capture_a_irq = VECTOR_NUMBER_GPT00_3_INT,
  690. .capture_a_source_select = ,
  691. #else
  692. .capture_a_ipl = (12),
  693. .capture_a_irq = FSP_INVALID_VECTOR,
  694. .capture_a_source_select = BSP_IRQ_DISABLED,
  695. #endif
  696. #if defined(VECTOR_NUMBER_GPT3_CCMPB)
  697. .capture_b_irq = VECTOR_NUMBER_GPT3_CCMPB,
  698. .capture_b_ipl = (12),
  699. .capture_b_source_select = BSP_IRQ_DISABLED,
  700. #elif defined(VECTOR_NUMBER_GPT00_3_INT)
  701. .capture_b_irq = VECTOR_NUMBER_GPT00_3_INT,
  702. .capture_b_ipl = FSP_NOT_DEFINED,
  703. .capture_b_source_select = ,
  704. #else
  705. .capture_b_ipl = (12),
  706. .capture_b_irq = FSP_INVALID_VECTOR,
  707. .capture_b_source_select = BSP_IRQ_DISABLED,
  708. #endif
  709. .capture_filter_gtioca = GPT_CAPTURE_FILTER_NONE,
  710. .capture_filter_gtiocb = GPT_CAPTURE_FILTER_NONE,
  711. #if 0
  712. .p_pwm_cfg = &g_timer5_pwm_extend,
  713. #else
  714. .p_pwm_cfg = NULL,
  715. #endif
  716. #if defined(VECTOR_NUMBER_GPT3_DTE)
  717. .dead_time_ipl = (BSP_IRQ_DISABLED),
  718. .dead_time_irq = VECTOR_NUMBER_GPT3_DTE,
  719. .dead_time_error_source_select = BSP_IRQ_DISABLED,
  720. #elif defined(VECTOR_NUMBER_GPT00_3_INT)
  721. .dead_time_ipl = FSP_NOT_DEFINED,
  722. .dead_time_irq = VECTOR_NUMBER_GPT00_3_INT,
  723. .dead_time_error_source_select = ,
  724. #else
  725. .dead_time_ipl = (BSP_IRQ_DISABLED),
  726. .dead_time_irq = FSP_INVALID_VECTOR,
  727. .dead_time_error_source_select = BSP_IRQ_DISABLED,
  728. #endif
  729. .icds = 0,
  730. #if (2U == BSP_FEATURE_GPT_REGISTER_MASK_TYPE)
  731. #if (1U == BSP_FEATURE_GPT_INPUT_CAPTURE_SIGNAL_SELECTABLE)
  732. .gtioc_isel = 0,
  733. #endif
  734. #endif
  735. #if defined(VECTOR_NUMBER_GPT3_OVF)
  736. .cycle_end_source_select = BSP_IRQ_DISABLED,
  737. #elif defined(VECTOR_NUMBER_GPT00_3_INT)
  738. .cycle_end_source_select = ,
  739. #else
  740. .cycle_end_source_select = BSP_IRQ_DISABLED,
  741. #endif
  742. #if defined(VECTOR_NUMBER_GPT3_UDF)
  743. .trough_source_select = BSP_IRQ_DISABLED,
  744. #elif defined(VECTOR_NUMBER_GPT00_3_INT)
  745. .trough_source_select = ,
  746. #else
  747. .trough_source_select = BSP_IRQ_DISABLED,
  748. #endif
  749. };
  750. const timer_cfg_t g_timer5_cfg =
  751. {
  752. .mode = TIMER_MODE_PWM,
  753. /* Actual period: 1 seconds. Actual duty: 0%. */ .period_counts = (uint32_t) 0x17d78400, .duty_cycle_counts = 0x0, .source_div = (timer_source_div_t)0,
  754. .channel = GPT_CHANNEL_UNIT0_3,
  755. #if (1 == BSP_FEATURE_BSP_IRQ_GPT_SEL_SUPPORTED)
  756. .p_callback = NULL,
  757. #else
  758. .p_callback = gpt5_timing_callback,
  759. #endif
  760. .p_context = NULL,
  761. .p_extend = &g_timer5_extend,
  762. #if defined(VECTOR_NUMBER_GPT3_OVF)
  763. .cycle_end_ipl = (12),
  764. .cycle_end_irq = VECTOR_NUMBER_GPT3_OVF,
  765. #elif defined(VECTOR_NUMBER_GPT00_3_INT)
  766. .cycle_end_ipl = FSP_NOT_DEFINED,
  767. .cycle_end_irq = VECTOR_NUMBER_GPT00_3_INT,
  768. #else
  769. .cycle_end_ipl = (12),
  770. .cycle_end_irq = FSP_INVALID_VECTOR,
  771. #endif
  772. };
  773. /* Instance structure to use this module. */
  774. const timer_instance_t g_timer5 =
  775. {
  776. .p_ctrl = &g_timer5_ctrl,
  777. .p_cfg = &g_timer5_cfg,
  778. .p_api = &g_timer_on_gpt
  779. };
  780. /* Nominal and Data bit timing configuration */
  781. can_bit_timing_cfg_t g_canfd1_bit_timing_cfg =
  782. {
  783. /* Actual bitrate: 500000 Hz. Actual sample point: 75 %. */
  784. .baud_rate_prescaler = 1,
  785. .time_segment_1 = 59,
  786. .time_segment_2 = 20,
  787. .synchronization_jump_width = 4
  788. };
  789. can_bit_timing_cfg_t g_canfd1_data_timing_cfg =
  790. {
  791. /* Actual bitrate: 2000000 Hz. Actual sample point: 75 %. */
  792. .baud_rate_prescaler = 1,
  793. .time_segment_1 = 14,
  794. .time_segment_2 = 5,
  795. .synchronization_jump_width = 1
  796. };
  797. extern const canfd_afl_entry_t p_canfd1_afl[CANFD_CFG_AFL_CH1_RULE_NUM];
  798. #ifndef CANFD_PRV_GLOBAL_CFG
  799. #define CANFD_PRV_GLOBAL_CFG
  800. canfd_global_cfg_t g_canfd_global_cfg =
  801. {
  802. .global_interrupts = CANFD_CFG_GLOBAL_ERR_SOURCES,
  803. .global_config = (CANFD_CFG_TX_PRIORITY | CANFD_CFG_DLC_CHECK | CANFD_CFD_CLOCK_SOURCE | CANFD_CFG_FD_OVERFLOW | (uint32_t) (CANFD_CFG_TIMER_PRESCALER << R_CANFD_CFDGCFG_ITRCP_Pos)),
  804. .rx_mb_config = (CANFD_CFG_RXMB_NUMBER | (CANFD_CFG_RXMB_SIZE << R_CANFD_CFDRMNB_RMPLS_Pos)),
  805. .global_err_ipl = CANFD_CFG_GLOBAL_ERR_IPL,
  806. .rx_fifo_ipl = CANFD_CFG_RX_FIFO_IPL,
  807. .rx_fifo_config =
  808. {
  809. ((CANFD_CFG_RXFIFO0_INT_THRESHOLD << R_CANFD_CFDRFCC_RFIGCV_Pos) | (CANFD_CFG_RXFIFO0_DEPTH << R_CANFD_CFDRFCC_RFDC_Pos) | (CANFD_CFG_RXFIFO0_PAYLOAD << R_CANFD_CFDRFCC_RFPLS_Pos) | (CANFD_CFG_RXFIFO0_INT_MODE) | (CANFD_CFG_RXFIFO0_ENABLE)),
  810. ((CANFD_CFG_RXFIFO1_INT_THRESHOLD << R_CANFD_CFDRFCC_RFIGCV_Pos) | (CANFD_CFG_RXFIFO1_DEPTH << R_CANFD_CFDRFCC_RFDC_Pos) | (CANFD_CFG_RXFIFO1_PAYLOAD << R_CANFD_CFDRFCC_RFPLS_Pos) | (CANFD_CFG_RXFIFO1_INT_MODE) | (CANFD_CFG_RXFIFO1_ENABLE)),
  811. ((CANFD_CFG_RXFIFO2_INT_THRESHOLD << R_CANFD_CFDRFCC_RFIGCV_Pos) | (CANFD_CFG_RXFIFO2_DEPTH << R_CANFD_CFDRFCC_RFDC_Pos) | (CANFD_CFG_RXFIFO2_PAYLOAD << R_CANFD_CFDRFCC_RFPLS_Pos) | (CANFD_CFG_RXFIFO2_INT_MODE) | (CANFD_CFG_RXFIFO2_ENABLE)),
  812. ((CANFD_CFG_RXFIFO3_INT_THRESHOLD << R_CANFD_CFDRFCC_RFIGCV_Pos) | (CANFD_CFG_RXFIFO3_DEPTH << R_CANFD_CFDRFCC_RFDC_Pos) | (CANFD_CFG_RXFIFO3_PAYLOAD << R_CANFD_CFDRFCC_RFPLS_Pos) | (CANFD_CFG_RXFIFO3_INT_MODE) | (CANFD_CFG_RXFIFO3_ENABLE)),
  813. ((CANFD_CFG_RXFIFO4_INT_THRESHOLD << R_CANFD_CFDRFCC_RFIGCV_Pos) | (CANFD_CFG_RXFIFO4_DEPTH << R_CANFD_CFDRFCC_RFDC_Pos) | (CANFD_CFG_RXFIFO4_PAYLOAD << R_CANFD_CFDRFCC_RFPLS_Pos) | (CANFD_CFG_RXFIFO4_INT_MODE) | (CANFD_CFG_RXFIFO4_ENABLE)),
  814. ((CANFD_CFG_RXFIFO5_INT_THRESHOLD << R_CANFD_CFDRFCC_RFIGCV_Pos) | (CANFD_CFG_RXFIFO5_DEPTH << R_CANFD_CFDRFCC_RFDC_Pos) | (CANFD_CFG_RXFIFO5_PAYLOAD << R_CANFD_CFDRFCC_RFPLS_Pos) | (CANFD_CFG_RXFIFO5_INT_MODE) | (CANFD_CFG_RXFIFO5_ENABLE)),
  815. ((CANFD_CFG_RXFIFO6_INT_THRESHOLD << R_CANFD_CFDRFCC_RFIGCV_Pos) | (CANFD_CFG_RXFIFO6_DEPTH << R_CANFD_CFDRFCC_RFDC_Pos) | (CANFD_CFG_RXFIFO6_PAYLOAD << R_CANFD_CFDRFCC_RFPLS_Pos) | (CANFD_CFG_RXFIFO6_INT_MODE) | (CANFD_CFG_RXFIFO6_ENABLE)),
  816. ((CANFD_CFG_RXFIFO7_INT_THRESHOLD << R_CANFD_CFDRFCC_RFIGCV_Pos) | (CANFD_CFG_RXFIFO7_DEPTH << R_CANFD_CFDRFCC_RFDC_Pos) | (CANFD_CFG_RXFIFO7_PAYLOAD << R_CANFD_CFDRFCC_RFPLS_Pos) | (CANFD_CFG_RXFIFO7_INT_MODE) | (CANFD_CFG_RXFIFO7_ENABLE)),
  817. },
  818. .common_fifo_config =
  819. {
  820. CANFD_CFG_COMMONFIFO0,
  821. CANFD_CFG_COMMONFIFO1,
  822. CANFD_CFG_COMMONFIFO2,
  823. CANFD_CFG_COMMONFIFO3,
  824. CANFD_CFG_COMMONFIFO4,
  825. CANFD_CFG_COMMONFIFO5,
  826. }
  827. };
  828. #endif
  829. canfd_extended_cfg_t g_canfd1_extended_cfg =
  830. {
  831. .p_afl = p_canfd1_afl,
  832. .txmb_txi_enable = ((1ULL << 0) | (1ULL << 1) | 0ULL),
  833. .error_interrupts = ( 0U),
  834. .p_data_timing = &g_canfd1_data_timing_cfg,
  835. .delay_compensation = (1),
  836. .p_global_cfg = &g_canfd_global_cfg,
  837. };
  838. canfd_instance_ctrl_t g_canfd1_ctrl;
  839. const can_cfg_t g_canfd1_cfg =
  840. {
  841. .channel = 1,
  842. .p_bit_timing = &g_canfd1_bit_timing_cfg,
  843. .p_callback = canfd1_callback,
  844. .p_extend = &g_canfd1_extended_cfg,
  845. .p_context = NULL,
  846. .ipl = (12),
  847. #if defined(VECTOR_NUMBER_CAN1_COMFRX)
  848. .rx_irq = VECTOR_NUMBER_CAN1_COMFRX,
  849. #else
  850. .rx_irq = FSP_INVALID_VECTOR,
  851. #endif
  852. #if defined(VECTOR_NUMBER_CAN1_TX)
  853. .tx_irq = VECTOR_NUMBER_CAN1_TX,
  854. #else
  855. .tx_irq = FSP_INVALID_VECTOR,
  856. #endif
  857. #if defined(VECTOR_NUMBER_CAN1_CHERR)
  858. .error_irq = VECTOR_NUMBER_CAN1_CHERR,
  859. #else
  860. .error_irq = FSP_INVALID_VECTOR,
  861. #endif
  862. };
  863. /* Instance structure to use this module. */
  864. const can_instance_t g_canfd1 =
  865. {
  866. .p_ctrl = &g_canfd1_ctrl,
  867. .p_cfg = &g_canfd1_cfg,
  868. .p_api = &g_canfd_on_canfd
  869. };
  870. rtc_instance_ctrl_t g_rtc_ctrl;
  871. const rtc_cfg_t g_rtc_cfg =
  872. {
  873. .clock_source = RTC_CLOCK_SOURCE_MAINCLK,
  874. .freq_compare_value = 195311,
  875. .p_err_cfg = NULL,
  876. .p_callback = rtc_callback,
  877. .p_context = NULL,
  878. .p_extend = NULL,
  879. .alarm_ipl = (12),
  880. .periodic_ipl = (12),
  881. .carry_ipl = (BSP_IRQ_DISABLED),
  882. #if defined(VECTOR_NUMBER_RTC_ALM)
  883. .alarm_irq = VECTOR_NUMBER_RTC_ALM,
  884. #else
  885. .alarm_irq = FSP_INVALID_VECTOR,
  886. #endif
  887. #if defined(VECTOR_NUMBER_RTC_PRD)
  888. .periodic_irq = VECTOR_NUMBER_RTC_PRD,
  889. #else
  890. .periodic_irq = FSP_INVALID_VECTOR,
  891. #endif
  892. .carry_irq = FSP_INVALID_VECTOR,
  893. };
  894. /* Instance structure to use this module. */
  895. const rtc_instance_t g_rtc =
  896. {
  897. .p_ctrl = &g_rtc_ctrl,
  898. .p_cfg = &g_rtc_cfg,
  899. .p_api = &g_rtc_on_rtc
  900. };
  901. sci_uart_instance_ctrl_t g_uart5_ctrl;
  902. #define FSP_NOT_DEFINED (1)
  903. #if (FSP_NOT_DEFINED) != (FSP_NOT_DEFINED)
  904. /* If the transfer module is DMAC, define a DMAC transfer callback. */
  905. extern void sci_uart_tx_dmac_callback(sci_uart_instance_ctrl_t * p_instance_ctrl);
  906. void g_uart5_tx_transfer_callback (transfer_callback_args_t * p_args)
  907. {
  908. FSP_PARAMETER_NOT_USED(p_args);
  909. sci_uart_tx_dmac_callback(&g_uart5_ctrl);
  910. }
  911. #endif
  912. #if (FSP_NOT_DEFINED) != (FSP_NOT_DEFINED)
  913. /* If the transfer module is DMAC, define a DMAC transfer callback. */
  914. extern void sci_uart_rx_dmac_callback(sci_uart_instance_ctrl_t * p_instance_ctrl);
  915. void g_uart5_rx_transfer_callback (transfer_callback_args_t * p_args)
  916. {
  917. FSP_PARAMETER_NOT_USED(p_args);
  918. sci_uart_rx_dmac_callback(&g_uart5_ctrl);
  919. }
  920. #endif
  921. #undef FSP_NOT_DEFINED
  922. sci_baud_setting_t g_uart5_baud_setting =
  923. {
  924. /* Baud rate calculated with 0.160% error. */ .baudrate_bits_b.abcse = 0, .baudrate_bits_b.abcs = 0, .baudrate_bits_b.bgdm = 1, .baudrate_bits_b.cks = 1, .baudrate_bits_b.brr = 155, .baudrate_bits_b.mddr = (uint8_t) 256, .baudrate_bits_b.brme = false
  925. };
  926. /** UART extended configuration for UARTonSCI HAL driver */
  927. const sci_uart_extended_cfg_t g_uart5_cfg_extend =
  928. {
  929. .clock = SCI_UART_CLOCK_INT,
  930. .rx_edge_start = SCI_UART_START_BIT_FALLING_EDGE,
  931. .noise_cancel = SCI_UART_NOISE_CANCELLATION_DISABLE,
  932. .rx_fifo_trigger = SCI_UART_RX_FIFO_TRIGGER_MAX,
  933. .p_baud_setting = &g_uart5_baud_setting,
  934. #if 1
  935. .clock_source = SCI_UART_CLOCK_SOURCE_SCI5ASYNCCLK,
  936. #else
  937. .clock_source = SCI_UART_CLOCK_SOURCE_PCLKM,
  938. #endif
  939. .flow_control = SCI_UART_FLOW_CONTROL_RTS,
  940. #if 0xFF != 0xFF
  941. .flow_control_pin = BSP_IO_PORT_FF_PIN_0xFF,
  942. #else
  943. .flow_control_pin = (bsp_io_port_pin_t) UINT16_MAX,
  944. #endif
  945. .rs485_setting = {
  946. .enable = SCI_UART_RS485_ENABLE,
  947. .polarity = SCI_UART_RS485_DE_POLARITY_HIGH,
  948. .assertion_time = 1,
  949. .negation_time = 1,
  950. },
  951. };
  952. /** UART interface configuration */
  953. const uart_cfg_t g_uart5_cfg =
  954. {
  955. .channel = 5,
  956. .data_bits = UART_DATA_BITS_8,
  957. .parity = UART_PARITY_OFF,
  958. .stop_bits = UART_STOP_BITS_1,
  959. .p_callback = rs485_callback,
  960. .p_context = NULL,
  961. .p_extend = &g_uart5_cfg_extend,
  962. .p_transfer_tx = g_uart5_P_TRANSFER_TX,
  963. .p_transfer_rx = g_uart5_P_TRANSFER_RX,
  964. .rxi_ipl = (12),
  965. .txi_ipl = (12),
  966. .tei_ipl = (12),
  967. .eri_ipl = (12),
  968. #if defined(VECTOR_NUMBER_SCI5_RXI)
  969. .rxi_irq = VECTOR_NUMBER_SCI5_RXI,
  970. #else
  971. .rxi_irq = FSP_INVALID_VECTOR,
  972. #endif
  973. #if defined(VECTOR_NUMBER_SCI5_TXI)
  974. .txi_irq = VECTOR_NUMBER_SCI5_TXI,
  975. #else
  976. .txi_irq = FSP_INVALID_VECTOR,
  977. #endif
  978. #if defined(VECTOR_NUMBER_SCI5_TEI)
  979. .tei_irq = VECTOR_NUMBER_SCI5_TEI,
  980. #else
  981. .tei_irq = FSP_INVALID_VECTOR,
  982. #endif
  983. #if defined(VECTOR_NUMBER_SCI5_ERI)
  984. .eri_irq = VECTOR_NUMBER_SCI5_ERI,
  985. #else
  986. .eri_irq = FSP_INVALID_VECTOR,
  987. #endif
  988. };
  989. /* Instance structure to use this module. */
  990. const uart_instance_t g_uart5 =
  991. {
  992. .p_ctrl = &g_uart5_ctrl,
  993. .p_cfg = &g_uart5_cfg,
  994. .p_api = &g_uart_on_sci
  995. };
  996. /* Nominal and Data bit timing configuration */
  997. can_bit_timing_cfg_t g_canfd0_bit_timing_cfg =
  998. {
  999. /* Actual bitrate: 500000 Hz. Actual sample point: 75 %. */
  1000. .baud_rate_prescaler = 1,
  1001. .time_segment_1 = 59,
  1002. .time_segment_2 = 20,
  1003. .synchronization_jump_width = 4
  1004. };
  1005. can_bit_timing_cfg_t g_canfd0_data_timing_cfg =
  1006. {
  1007. /* Actual bitrate: 2000000 Hz. Actual sample point: 75 %. */
  1008. .baud_rate_prescaler = 1,
  1009. .time_segment_1 = 14,
  1010. .time_segment_2 = 5,
  1011. .synchronization_jump_width = 1
  1012. };
  1013. extern const canfd_afl_entry_t p_canfd0_afl[CANFD_CFG_AFL_CH0_RULE_NUM];
  1014. #ifndef CANFD_PRV_GLOBAL_CFG
  1015. #define CANFD_PRV_GLOBAL_CFG
  1016. canfd_global_cfg_t g_canfd_global_cfg =
  1017. {
  1018. .global_interrupts = CANFD_CFG_GLOBAL_ERR_SOURCES,
  1019. .global_config = (CANFD_CFG_TX_PRIORITY | CANFD_CFG_DLC_CHECK | CANFD_CFD_CLOCK_SOURCE | CANFD_CFG_FD_OVERFLOW | (uint32_t) (CANFD_CFG_TIMER_PRESCALER << R_CANFD_CFDGCFG_ITRCP_Pos)),
  1020. .rx_mb_config = (CANFD_CFG_RXMB_NUMBER | (CANFD_CFG_RXMB_SIZE << R_CANFD_CFDRMNB_RMPLS_Pos)),
  1021. .global_err_ipl = CANFD_CFG_GLOBAL_ERR_IPL,
  1022. .rx_fifo_ipl = CANFD_CFG_RX_FIFO_IPL,
  1023. .rx_fifo_config =
  1024. {
  1025. ((CANFD_CFG_RXFIFO0_INT_THRESHOLD << R_CANFD_CFDRFCC_RFIGCV_Pos) | (CANFD_CFG_RXFIFO0_DEPTH << R_CANFD_CFDRFCC_RFDC_Pos) | (CANFD_CFG_RXFIFO0_PAYLOAD << R_CANFD_CFDRFCC_RFPLS_Pos) | (CANFD_CFG_RXFIFO0_INT_MODE) | (CANFD_CFG_RXFIFO0_ENABLE)),
  1026. ((CANFD_CFG_RXFIFO1_INT_THRESHOLD << R_CANFD_CFDRFCC_RFIGCV_Pos) | (CANFD_CFG_RXFIFO1_DEPTH << R_CANFD_CFDRFCC_RFDC_Pos) | (CANFD_CFG_RXFIFO1_PAYLOAD << R_CANFD_CFDRFCC_RFPLS_Pos) | (CANFD_CFG_RXFIFO1_INT_MODE) | (CANFD_CFG_RXFIFO1_ENABLE)),
  1027. ((CANFD_CFG_RXFIFO2_INT_THRESHOLD << R_CANFD_CFDRFCC_RFIGCV_Pos) | (CANFD_CFG_RXFIFO2_DEPTH << R_CANFD_CFDRFCC_RFDC_Pos) | (CANFD_CFG_RXFIFO2_PAYLOAD << R_CANFD_CFDRFCC_RFPLS_Pos) | (CANFD_CFG_RXFIFO2_INT_MODE) | (CANFD_CFG_RXFIFO2_ENABLE)),
  1028. ((CANFD_CFG_RXFIFO3_INT_THRESHOLD << R_CANFD_CFDRFCC_RFIGCV_Pos) | (CANFD_CFG_RXFIFO3_DEPTH << R_CANFD_CFDRFCC_RFDC_Pos) | (CANFD_CFG_RXFIFO3_PAYLOAD << R_CANFD_CFDRFCC_RFPLS_Pos) | (CANFD_CFG_RXFIFO3_INT_MODE) | (CANFD_CFG_RXFIFO3_ENABLE)),
  1029. ((CANFD_CFG_RXFIFO4_INT_THRESHOLD << R_CANFD_CFDRFCC_RFIGCV_Pos) | (CANFD_CFG_RXFIFO4_DEPTH << R_CANFD_CFDRFCC_RFDC_Pos) | (CANFD_CFG_RXFIFO4_PAYLOAD << R_CANFD_CFDRFCC_RFPLS_Pos) | (CANFD_CFG_RXFIFO4_INT_MODE) | (CANFD_CFG_RXFIFO4_ENABLE)),
  1030. ((CANFD_CFG_RXFIFO5_INT_THRESHOLD << R_CANFD_CFDRFCC_RFIGCV_Pos) | (CANFD_CFG_RXFIFO5_DEPTH << R_CANFD_CFDRFCC_RFDC_Pos) | (CANFD_CFG_RXFIFO5_PAYLOAD << R_CANFD_CFDRFCC_RFPLS_Pos) | (CANFD_CFG_RXFIFO5_INT_MODE) | (CANFD_CFG_RXFIFO5_ENABLE)),
  1031. ((CANFD_CFG_RXFIFO6_INT_THRESHOLD << R_CANFD_CFDRFCC_RFIGCV_Pos) | (CANFD_CFG_RXFIFO6_DEPTH << R_CANFD_CFDRFCC_RFDC_Pos) | (CANFD_CFG_RXFIFO6_PAYLOAD << R_CANFD_CFDRFCC_RFPLS_Pos) | (CANFD_CFG_RXFIFO6_INT_MODE) | (CANFD_CFG_RXFIFO6_ENABLE)),
  1032. ((CANFD_CFG_RXFIFO7_INT_THRESHOLD << R_CANFD_CFDRFCC_RFIGCV_Pos) | (CANFD_CFG_RXFIFO7_DEPTH << R_CANFD_CFDRFCC_RFDC_Pos) | (CANFD_CFG_RXFIFO7_PAYLOAD << R_CANFD_CFDRFCC_RFPLS_Pos) | (CANFD_CFG_RXFIFO7_INT_MODE) | (CANFD_CFG_RXFIFO7_ENABLE)),
  1033. },
  1034. .common_fifo_config =
  1035. {
  1036. CANFD_CFG_COMMONFIFO0,
  1037. CANFD_CFG_COMMONFIFO1,
  1038. CANFD_CFG_COMMONFIFO2,
  1039. CANFD_CFG_COMMONFIFO3,
  1040. CANFD_CFG_COMMONFIFO4,
  1041. CANFD_CFG_COMMONFIFO5,
  1042. }
  1043. };
  1044. #endif
  1045. canfd_extended_cfg_t g_canfd0_extended_cfg =
  1046. {
  1047. .p_afl = p_canfd0_afl,
  1048. .txmb_txi_enable = ((1ULL << 0) | 0ULL),
  1049. .error_interrupts = ( 0U),
  1050. .p_data_timing = &g_canfd0_data_timing_cfg,
  1051. .delay_compensation = (1),
  1052. .p_global_cfg = &g_canfd_global_cfg,
  1053. };
  1054. canfd_instance_ctrl_t g_canfd0_ctrl;
  1055. const can_cfg_t g_canfd0_cfg =
  1056. {
  1057. .channel = 0,
  1058. .p_bit_timing = &g_canfd0_bit_timing_cfg,
  1059. .p_callback = canfd0_callback,
  1060. .p_extend = &g_canfd0_extended_cfg,
  1061. .p_context = NULL,
  1062. .ipl = (12),
  1063. #if defined(VECTOR_NUMBER_CAN0_COMFRX)
  1064. .rx_irq = VECTOR_NUMBER_CAN0_COMFRX,
  1065. #else
  1066. .rx_irq = FSP_INVALID_VECTOR,
  1067. #endif
  1068. #if defined(VECTOR_NUMBER_CAN0_TX)
  1069. .tx_irq = VECTOR_NUMBER_CAN0_TX,
  1070. #else
  1071. .tx_irq = FSP_INVALID_VECTOR,
  1072. #endif
  1073. #if defined(VECTOR_NUMBER_CAN0_CHERR)
  1074. .error_irq = VECTOR_NUMBER_CAN0_CHERR,
  1075. #else
  1076. .error_irq = FSP_INVALID_VECTOR,
  1077. #endif
  1078. };
  1079. /* Instance structure to use this module. */
  1080. const can_instance_t g_canfd0 =
  1081. {
  1082. .p_ctrl = &g_canfd0_ctrl,
  1083. .p_cfg = &g_canfd0_cfg,
  1084. .p_api = &g_canfd_on_canfd
  1085. };
  1086. iic_master_instance_ctrl_t g_i2c_master0_ctrl;
  1087. #define FSP_NOT_DEFINED (1)
  1088. #if (FSP_NOT_DEFINED) != (FSP_NOT_DEFINED)
  1089. /* If the transfer module is DMAC, define a DMAC transfer callback. */
  1090. extern void iic_master_tx_dmac_callback(iic_master_instance_ctrl_t * p_instance_ctrl);
  1091. void g_i2c_master0_tx_transfer_callback (transfer_callback_args_t * p_args)
  1092. {
  1093. FSP_PARAMETER_NOT_USED(p_args);
  1094. iic_master_tx_dmac_callback(&g_i2c_master0_ctrl);
  1095. }
  1096. #endif
  1097. #if (FSP_NOT_DEFINED) != (FSP_NOT_DEFINED)
  1098. /* If the transfer module is DMAC, define a DMAC transfer callback. */
  1099. extern void iic_master_rx_dmac_callback(iic_master_instance_ctrl_t * p_instance_ctrl);
  1100. void g_i2c_master0_rx_transfer_callback (transfer_callback_args_t * p_args)
  1101. {
  1102. FSP_PARAMETER_NOT_USED(p_args);
  1103. iic_master_rx_dmac_callback(&g_i2c_master0_ctrl);
  1104. }
  1105. #endif
  1106. #undef FSP_NOT_DEFINED
  1107. const iic_master_extended_cfg_t g_i2c_master0_extend =
  1108. {
  1109. .timeout_mode = IIC_MASTER_TIMEOUT_MODE_SHORT,
  1110. .timeout_scl_low = IIC_MASTER_TIMEOUT_SCL_LOW_ENABLED,
  1111. /* Actual calculated bitrate: 98425. Actual calculated duty cycle: 50%. */ .clock_settings.brl_value = 28, .clock_settings.brh_value = 28, .clock_settings.cks_value = 3
  1112. };
  1113. const i2c_master_cfg_t g_i2c_master0_cfg =
  1114. {
  1115. .channel = 0,
  1116. .rate = I2C_MASTER_RATE_STANDARD,
  1117. .slave = 0x00,
  1118. .addr_mode = I2C_MASTER_ADDR_MODE_7BIT,
  1119. .p_transfer_tx = g_i2c_master0_P_TRANSFER_TX,
  1120. .p_transfer_rx = g_i2c_master0_P_TRANSFER_RX,
  1121. .p_callback = NULL,
  1122. .p_context = NULL,
  1123. #if defined(VECTOR_NUMBER_IIC0_RXI)
  1124. .rxi_irq = VECTOR_NUMBER_IIC0_RXI,
  1125. #else
  1126. .rxi_irq = FSP_INVALID_VECTOR,
  1127. #endif
  1128. #if defined(VECTOR_NUMBER_IIC0_TXI)
  1129. .txi_irq = VECTOR_NUMBER_IIC0_TXI,
  1130. #else
  1131. .txi_irq = FSP_INVALID_VECTOR,
  1132. #endif
  1133. #if defined(VECTOR_NUMBER_IIC0_TEI)
  1134. .tei_irq = VECTOR_NUMBER_IIC0_TEI,
  1135. #else
  1136. .tei_irq = FSP_INVALID_VECTOR,
  1137. #endif
  1138. #if defined(VECTOR_NUMBER_IIC0_EEI)
  1139. .eri_irq = VECTOR_NUMBER_IIC0_EEI,
  1140. #else
  1141. .eri_irq = FSP_INVALID_VECTOR,
  1142. #endif
  1143. .ipl = (12),
  1144. .p_extend = &g_i2c_master0_extend,
  1145. };
  1146. /* Instance structure to use this module. */
  1147. const i2c_master_instance_t g_i2c_master0 =
  1148. {
  1149. .p_ctrl = &g_i2c_master0_ctrl,
  1150. .p_cfg = &g_i2c_master0_cfg,
  1151. .p_api = &g_i2c_master_on_iic
  1152. };
  1153. adc_instance_ctrl_t g_adc1_ctrl;
  1154. const adc_extended_cfg_t g_adc1_cfg_extend =
  1155. {
  1156. .add_average_count = ADC_ADD_OFF,
  1157. .clearing = ADC_CLEAR_AFTER_READ_ON,
  1158. .trigger_group_b = ADC_TRIGGER_SYNC_ELC,
  1159. .double_trigger_mode = ADC_DOUBLE_TRIGGER_DISABLED,
  1160. .adc_start_trigger_a = ADC_ACTIVE_TRIGGER_DISABLED,
  1161. .adc_start_trigger_b = ADC_ACTIVE_TRIGGER_DISABLED,
  1162. .adc_start_trigger_c_enabled = 0,
  1163. .adc_start_trigger_c = ADC_ACTIVE_TRIGGER_DISABLED,
  1164. .adc_elc_ctrl = ADC_ELC_SINGLE_SCAN,
  1165. #if (1U == BSP_FEATURE_ADC_REGISTER_MASK_TYPE)
  1166. #if defined(VECTOR_NUMBER_ADC1_CMPAI)
  1167. .window_a_irq = VECTOR_NUMBER_ADC1_CMPAI,
  1168. #else
  1169. .window_a_irq = FSP_INVALID_VECTOR,
  1170. #endif
  1171. .window_a_ipl = (BSP_IRQ_DISABLED),
  1172. #if defined(VECTOR_NUMBER_ADC1_CMPBI)
  1173. .window_b_irq = VECTOR_NUMBER_ADC1_CMPBI,
  1174. #else
  1175. .window_b_irq = FSP_INVALID_VECTOR,
  1176. #endif
  1177. .window_b_ipl = (BSP_IRQ_DISABLED),
  1178. #endif
  1179. #if (3U == BSP_FEATURE_ADC_REGISTER_MASK_TYPE)
  1180. #if defined(VECTOR_NUMBER_ADC121_CMPAI)
  1181. .window_a_irq = VECTOR_NUMBER_ADC121_CMPAI,
  1182. #else
  1183. .window_a_irq = FSP_INVALID_VECTOR,
  1184. #endif
  1185. .window_a_ipl = (BSP_IRQ_DISABLED),
  1186. #if defined(VECTOR_NUMBER_ADC121_CMPBI)
  1187. .window_b_irq = VECTOR_NUMBER_ADC121_CMPBI,
  1188. #else
  1189. .window_b_irq = FSP_INVALID_VECTOR,
  1190. #endif
  1191. .window_b_ipl = (BSP_IRQ_DISABLED),
  1192. #endif
  1193. };
  1194. const adc_cfg_t g_adc1_cfg =
  1195. {
  1196. .unit = 1,
  1197. .mode = ADC_MODE_SINGLE_SCAN,
  1198. .resolution = ADC_RESOLUTION_12_BIT,
  1199. .alignment = (adc_alignment_t)ADC_ALIGNMENT_RIGHT,
  1200. .trigger = ADC_TRIGGER_SOFTWARE,
  1201. .p_callback = NULL,
  1202. .p_context = NULL,
  1203. .p_extend = &g_adc1_cfg_extend,
  1204. #if (1U == BSP_FEATURE_ADC_REGISTER_MASK_TYPE)
  1205. #if defined(VECTOR_NUMBER_ADC1_ADI)
  1206. .scan_end_irq = VECTOR_NUMBER_ADC1_ADI,
  1207. #else
  1208. .scan_end_irq = FSP_INVALID_VECTOR,
  1209. #endif
  1210. .scan_end_ipl = (BSP_IRQ_DISABLED),
  1211. #if defined(VECTOR_NUMBER_ADC1_GBADI)
  1212. .scan_end_b_irq = VECTOR_NUMBER_ADC1_GBADI,
  1213. #else
  1214. .scan_end_b_irq = FSP_INVALID_VECTOR,
  1215. #endif
  1216. .scan_end_b_ipl = (BSP_IRQ_DISABLED),
  1217. #if defined(VECTOR_NUMBER_ADC1_GCADI)
  1218. .scan_end_c_irq = VECTOR_NUMBER_ADC1_GCADI,
  1219. #else
  1220. .scan_end_c_irq = FSP_INVALID_VECTOR,
  1221. #endif
  1222. .scan_end_c_ipl = (BSP_IRQ_DISABLED),
  1223. #endif
  1224. #if (3U == BSP_FEATURE_ADC_REGISTER_MASK_TYPE)
  1225. #if defined(VECTOR_NUMBER_ADC121_ADI)
  1226. .scan_end_irq = VECTOR_NUMBER_ADC121_ADI,
  1227. #else
  1228. .scan_end_irq = FSP_INVALID_VECTOR,
  1229. #endif
  1230. .scan_end_ipl = (BSP_IRQ_DISABLED),
  1231. #if defined(VECTOR_NUMBER_ADC121_GBADI)
  1232. .scan_end_b_irq = VECTOR_NUMBER_ADC121_GBADI,
  1233. #else
  1234. .scan_end_b_irq = FSP_INVALID_VECTOR,
  1235. #endif
  1236. .scan_end_b_ipl = (BSP_IRQ_DISABLED),
  1237. #if defined(VECTOR_NUMBER_ADC121_GCADI)
  1238. .scan_end_c_irq = VECTOR_NUMBER_ADC121_GCADI,
  1239. #else
  1240. .scan_end_c_irq = FSP_INVALID_VECTOR,
  1241. #endif
  1242. .scan_end_c_ipl = (BSP_IRQ_DISABLED),
  1243. #endif
  1244. };
  1245. #if ((0) | (0))
  1246. const adc_window_cfg_t g_adc1_window_cfg =
  1247. {
  1248. .compare_mask = 0,
  1249. .compare_mode_mask = 0,
  1250. .compare_cfg = (0) | (0) | (0),
  1251. .compare_ref_low = 0,
  1252. .compare_ref_high = 0,
  1253. .compare_b_channel = (ADC_WINDOW_B_CHANNEL_0),
  1254. .compare_b_mode = (ADC_WINDOW_B_MODE_LESS_THAN_OR_OUTSIDE),
  1255. .compare_b_ref_low = 0,
  1256. .compare_b_ref_high = 0,
  1257. };
  1258. #endif
  1259. const adc_channel_cfg_t g_adc1_channel_cfg =
  1260. {
  1261. .scan_mask = ADC_MASK_CHANNEL_0 | ADC_MASK_CHANNEL_1 | ADC_MASK_CHANNEL_2 | ADC_MASK_CHANNEL_3 | 0,
  1262. .scan_mask_group_b = 0,
  1263. .priority_group_a = ADC_GROUP_A_PRIORITY_OFF,
  1264. .add_mask = 0,
  1265. .sample_hold_mask = 0,
  1266. .sample_hold_states = 24,
  1267. .scan_mask_group_c = 0,
  1268. #if ((0) | (0))
  1269. .p_window_cfg = (adc_window_cfg_t *) &g_adc1_window_cfg,
  1270. #else
  1271. .p_window_cfg = NULL,
  1272. #endif
  1273. };
  1274. /* Instance structure to use this module. */
  1275. const adc_instance_t g_adc1 =
  1276. {
  1277. .p_ctrl = &g_adc1_ctrl,
  1278. .p_cfg = &g_adc1_cfg,
  1279. .p_channel_cfg = &g_adc1_channel_cfg,
  1280. .p_api = &g_adc_on_adc
  1281. };
  1282. adc_instance_ctrl_t g_adc0_ctrl;
  1283. const adc_extended_cfg_t g_adc0_cfg_extend =
  1284. {
  1285. .add_average_count = ADC_ADD_OFF,
  1286. .clearing = ADC_CLEAR_AFTER_READ_ON,
  1287. .trigger_group_b = ADC_TRIGGER_SYNC_ELC,
  1288. .double_trigger_mode = ADC_DOUBLE_TRIGGER_DISABLED,
  1289. .adc_start_trigger_a = ADC_ACTIVE_TRIGGER_DISABLED,
  1290. .adc_start_trigger_b = ADC_ACTIVE_TRIGGER_DISABLED,
  1291. .adc_start_trigger_c_enabled = 0,
  1292. .adc_start_trigger_c = ADC_ACTIVE_TRIGGER_DISABLED,
  1293. .adc_elc_ctrl = ADC_ELC_SINGLE_SCAN,
  1294. #if (1U == BSP_FEATURE_ADC_REGISTER_MASK_TYPE)
  1295. #if defined(VECTOR_NUMBER_ADC0_CMPAI)
  1296. .window_a_irq = VECTOR_NUMBER_ADC0_CMPAI,
  1297. #else
  1298. .window_a_irq = FSP_INVALID_VECTOR,
  1299. #endif
  1300. .window_a_ipl = (BSP_IRQ_DISABLED),
  1301. #if defined(VECTOR_NUMBER_ADC0_CMPBI)
  1302. .window_b_irq = VECTOR_NUMBER_ADC0_CMPBI,
  1303. #else
  1304. .window_b_irq = FSP_INVALID_VECTOR,
  1305. #endif
  1306. .window_b_ipl = (BSP_IRQ_DISABLED),
  1307. #endif
  1308. #if (3U == BSP_FEATURE_ADC_REGISTER_MASK_TYPE)
  1309. #if defined(VECTOR_NUMBER_ADC120_CMPAI)
  1310. .window_a_irq = VECTOR_NUMBER_ADC120_CMPAI,
  1311. #else
  1312. .window_a_irq = FSP_INVALID_VECTOR,
  1313. #endif
  1314. .window_a_ipl = (BSP_IRQ_DISABLED),
  1315. #if defined(VECTOR_NUMBER_ADC120_CMPBI)
  1316. .window_b_irq = VECTOR_NUMBER_ADC120_CMPBI,
  1317. #else
  1318. .window_b_irq = FSP_INVALID_VECTOR,
  1319. #endif
  1320. .window_b_ipl = (BSP_IRQ_DISABLED),
  1321. #endif
  1322. };
  1323. const adc_cfg_t g_adc0_cfg =
  1324. {
  1325. .unit = 0,
  1326. .mode = ADC_MODE_CONTINUOUS_SCAN,
  1327. .resolution = ADC_RESOLUTION_12_BIT,
  1328. .alignment = (adc_alignment_t)ADC_ALIGNMENT_RIGHT,
  1329. .trigger = ADC_TRIGGER_SOFTWARE,
  1330. .p_callback = NULL,
  1331. .p_context = NULL,
  1332. .p_extend = &g_adc0_cfg_extend,
  1333. #if (1U == BSP_FEATURE_ADC_REGISTER_MASK_TYPE)
  1334. #if defined(VECTOR_NUMBER_ADC0_ADI)
  1335. .scan_end_irq = VECTOR_NUMBER_ADC0_ADI,
  1336. #else
  1337. .scan_end_irq = FSP_INVALID_VECTOR,
  1338. #endif
  1339. .scan_end_ipl = (BSP_IRQ_DISABLED),
  1340. #if defined(VECTOR_NUMBER_ADC0_GBADI)
  1341. .scan_end_b_irq = VECTOR_NUMBER_ADC0_GBADI,
  1342. #else
  1343. .scan_end_b_irq = FSP_INVALID_VECTOR,
  1344. #endif
  1345. .scan_end_b_ipl = (BSP_IRQ_DISABLED),
  1346. #if defined(VECTOR_NUMBER_ADC0_GCADI)
  1347. .scan_end_c_irq = VECTOR_NUMBER_ADC0_GCADI,
  1348. #else
  1349. .scan_end_c_irq = FSP_INVALID_VECTOR,
  1350. #endif
  1351. .scan_end_c_ipl = (BSP_IRQ_DISABLED),
  1352. #endif
  1353. #if (3U == BSP_FEATURE_ADC_REGISTER_MASK_TYPE)
  1354. #if defined(VECTOR_NUMBER_ADC120_ADI)
  1355. .scan_end_irq = VECTOR_NUMBER_ADC120_ADI,
  1356. #else
  1357. .scan_end_irq = FSP_INVALID_VECTOR,
  1358. #endif
  1359. .scan_end_ipl = (BSP_IRQ_DISABLED),
  1360. #if defined(VECTOR_NUMBER_ADC120_GBADI)
  1361. .scan_end_b_irq = VECTOR_NUMBER_ADC120_GBADI,
  1362. #else
  1363. .scan_end_b_irq = FSP_INVALID_VECTOR,
  1364. #endif
  1365. .scan_end_b_ipl = (BSP_IRQ_DISABLED),
  1366. #if defined(VECTOR_NUMBER_ADC120_GCADI)
  1367. .scan_end_c_irq = VECTOR_NUMBER_ADC120_GCADI,
  1368. #else
  1369. .scan_end_c_irq = FSP_INVALID_VECTOR,
  1370. #endif
  1371. .scan_end_c_ipl = (BSP_IRQ_DISABLED),
  1372. #endif
  1373. };
  1374. #if ((0) | (0))
  1375. const adc_window_cfg_t g_adc0_window_cfg =
  1376. {
  1377. .compare_mask = 0,
  1378. .compare_mode_mask = 0,
  1379. .compare_cfg = (0) | (0) | (0),
  1380. .compare_ref_low = 0,
  1381. .compare_ref_high = 0,
  1382. .compare_b_channel = (ADC_WINDOW_B_CHANNEL_0),
  1383. .compare_b_mode = (ADC_WINDOW_B_MODE_LESS_THAN_OR_OUTSIDE),
  1384. .compare_b_ref_low = 0,
  1385. .compare_b_ref_high = 0,
  1386. };
  1387. #endif
  1388. const adc_channel_cfg_t g_adc0_channel_cfg =
  1389. {
  1390. .scan_mask = ADC_MASK_CHANNEL_0 | ADC_MASK_CHANNEL_1 | ADC_MASK_CHANNEL_2 | ADC_MASK_CHANNEL_3 | 0,
  1391. .scan_mask_group_b = 0,
  1392. .priority_group_a = ADC_GROUP_A_PRIORITY_OFF,
  1393. .add_mask = 0,
  1394. .sample_hold_mask = 0,
  1395. .sample_hold_states = 24,
  1396. .scan_mask_group_c = 0,
  1397. #if ((0) | (0))
  1398. .p_window_cfg = (adc_window_cfg_t *) &g_adc0_window_cfg,
  1399. #else
  1400. .p_window_cfg = NULL,
  1401. #endif
  1402. };
  1403. /* Instance structure to use this module. */
  1404. const adc_instance_t g_adc0 =
  1405. {
  1406. .p_ctrl = &g_adc0_ctrl,
  1407. .p_cfg = &g_adc0_cfg,
  1408. .p_channel_cfg = &g_adc0_channel_cfg,
  1409. .p_api = &g_adc_on_adc
  1410. };
  1411. xspi_hyper_instance_ctrl_t g_hyperbus0_ctrl;
  1412. static xspi_hyper_cs_timing_setting_t g_hyperbus0_cs_timing_settings =
  1413. {
  1414. .transaction_interval = XSPI_HYPER_TRANSACTION_INTERVAL_CLOCKS_8,
  1415. .cs_pullup_lag = XSPI_HYPER_CS_PULLUP_CLOCKS_NO_EXTENSION,
  1416. .cs_pulldown_lead = XSPI_HYPER_CS_PULLDOWN_CLOCKS_NO_EXTENSION,
  1417. };
  1418. static xspi_hyper_address_space_t g_hyperbus0_address_space_settings =
  1419. {
  1420. .unit0_cs0_end_address = XSPI_HYPER_CFG_UNIT_0_CS_0_END_ADDRESS,
  1421. .unit0_cs1_start_address = XSPI_HYPER_CFG_UNIT_0_CS_1_START_ADDRESS,
  1422. .unit0_cs1_end_address = XSPI_HYPER_CFG_UNIT_0_CS_1_END_ADDRESS,
  1423. .unit1_cs0_end_address = XSPI_HYPER_CFG_UNIT_1_CS_0_END_ADDRESS,
  1424. .unit1_cs1_start_address = XSPI_HYPER_CFG_UNIT_1_CS_1_START_ADDRESS,
  1425. .unit1_cs1_end_address = XSPI_HYPER_CFG_UNIT_1_CS_1_END_ADDRESS,
  1426. };
  1427. static xspi_hyper_extended_cfg_t g_hyperbus0_extended_cfg =
  1428. {
  1429. .unit = 0,
  1430. .chip_select = XSPI_HYPER_CHIP_SELECT_1,
  1431. .memory_size = XSPI_HYPER_MEMORY_SIZE_32MB,
  1432. .data_latching_delay_clock = 0x08,
  1433. .p_cs_timing_settings = &g_hyperbus0_cs_timing_settings,
  1434. .p_autocalibration_preamble_pattern_addr = (uint8_t *) 0x00,
  1435. #if 0 == 0
  1436. .prefetch_en = (xspi_hyper_prefetch_function_t) XSPI_HYPER_CFG_UNIT_0_PREFETCH_FUNCTION,
  1437. #else
  1438. .prefetch_en = (xspi_hyper_prefetch_function_t) XSPI_HYPER_CFG_UNIT_1_PREFETCH_FUNCTION,
  1439. #endif
  1440. #if BSP_FEATURE_XSPI_VOLTAGE_SETTING_SUPPORTED
  1441. #if 0 == 0
  1442. .io_voltage = (xspi_hyper_io_voltage_t) XSPI_HYPER_CFG_UNIT_0_IOVOLTAGE,
  1443. #else
  1444. .io_voltage = (xspi_hyper_io_voltage_t) XSPI_HYPER_CFG_UNIT_1_IOVOLTAGE,
  1445. #endif
  1446. #endif
  1447. .p_address_space = &g_hyperbus0_address_space_settings,
  1448. };
  1449. const hyperbus_cfg_t g_hyperbus0_cfg =
  1450. {
  1451. .burst_type = HYPERBUS_BURST_TYPE_LINEAR,
  1452. .access_space = HYPERBUS_SPACE_SELECT_MEMORY_SPACE,
  1453. .read_latency_count = HYPERBUS_LATENCY_COUNT_7,
  1454. .memory_write_latency_count = HYPERBUS_LATENCY_COUNT_7,
  1455. .register_write_latency_count = HYPERBUS_LATENCY_COUNT_0,
  1456. .p_extend = &g_hyperbus0_extended_cfg,
  1457. };
  1458. /** This structure encompasses everything that is needed to use an instance of this interface. */
  1459. const hyperbus_instance_t g_hyperbus0 =
  1460. {
  1461. .p_ctrl = &g_hyperbus0_ctrl,
  1462. .p_cfg = &g_hyperbus0_cfg,
  1463. .p_api = &g_hyperbus_on_xspi_hyper,
  1464. };
  1465. ethsw_instance_ctrl_t g_ethsw0_ctrl;
  1466. const ethsw_extend_cfg_t g_ethsw0_extend_cfg =
  1467. {
  1468. .specific_tag = ETHSW_SPECIFIC_TAG_DISABLE,
  1469. .specific_tag_id = 0xE001,
  1470. .phylink = ETHSW_PHYLINK_DISABLE,
  1471. };
  1472. const ether_switch_cfg_t g_ethsw0_cfg =
  1473. {
  1474. .channel = 0,
  1475. #if defined(VECTOR_NUMBER_ETHSW_INTR)
  1476. .irq = VECTOR_NUMBER_ETHSW_INTR,
  1477. #else
  1478. .irq = FSP_INVALID_VECTOR,
  1479. #endif
  1480. .ipl = (12),
  1481. .p_callback = gmac_callback_ethsw,
  1482. .p_context = &g_ether0_ctrl,
  1483. .p_extend = &g_ethsw0_extend_cfg
  1484. };
  1485. /* Instance structure to use this module. */
  1486. const ether_switch_instance_t g_ethsw0 =
  1487. {
  1488. .p_ctrl = &g_ethsw0_ctrl,
  1489. .p_cfg = &g_ethsw0_cfg,
  1490. .p_api = &g_ether_switch_on_ethsw
  1491. };
  1492. ether_selector_instance_ctrl_t g_ether_selector2_ctrl;
  1493. const ether_selector_cfg_t g_ether_selector2_cfg =
  1494. {
  1495. .channel = 2,
  1496. .phylink = ETHER_SELECTOR_PHYLINK_POLARITY_LOW,
  1497. .interface = ETHER_SELECTOR_INTERFACE_RGMII,
  1498. .speed = ETHER_SELECTOR_SPEED_100_MBPS,
  1499. .duplex = ETHER_SELECTOR_DUPLEX_FULL,
  1500. .ref_clock = ETHER_SELECTOR_REF_CLOCK_INPUT,
  1501. .p_extend = NULL,
  1502. };
  1503. /* Instance structure to use this module. */
  1504. const ether_selector_instance_t g_ether_selector2 =
  1505. {
  1506. .p_ctrl = &g_ether_selector2_ctrl,
  1507. .p_cfg = &g_ether_selector2_cfg,
  1508. .p_api = &g_ether_selector_on_ether_selector
  1509. };
  1510. ether_phy_instance_ctrl_t g_ether_phy2_ctrl;
  1511. const ether_phy_extend_cfg_t g_ether_phy2_extend =
  1512. {
  1513. .port_type = ETHER_PHY_PORT_TYPE_ETHERNET,
  1514. .mdio_type = ETHER_PHY_MDIO_GMAC,
  1515. .bps = ETHER_PHY_SPEED_100,
  1516. .duplex = ETHER_PHY_DUPLEX_FULL,
  1517. .auto_negotiation = ETHER_PHY_AUTO_NEGOTIATION_ON,
  1518. .phy_reset_pin = BSP_IO_PORT_13_PIN_4,
  1519. .phy_reset_time = 15000,
  1520. .p_selector_instance = (ether_selector_instance_t *)&g_ether_selector2,
  1521. .p_target_init = ether_phy_targets_initialize_rtl8211_rgmii,
  1522. };
  1523. const ether_phy_cfg_t g_ether_phy2_cfg =
  1524. {
  1525. .channel = 2,
  1526. .phy_lsi_address = 3,
  1527. .phy_reset_wait_time = 0x00020000,
  1528. .mii_bit_access_wait_time = 0, // Unused
  1529. .phy_lsi_type = ETHER_PHY_LSI_TYPE_CUSTOM,
  1530. .flow_control = ETHER_PHY_FLOW_CONTROL_DISABLE,
  1531. .mii_type = (ether_phy_mii_type_t) 0, // Unused
  1532. .p_context = NULL,
  1533. .p_extend = &g_ether_phy2_extend
  1534. };
  1535. /* Instance structure to use this module. */
  1536. const ether_phy_instance_t g_ether_phy2 =
  1537. {
  1538. .p_ctrl = &g_ether_phy2_ctrl,
  1539. .p_cfg = &g_ether_phy2_cfg,
  1540. .p_api = &g_ether_phy_on_ether_phy
  1541. };
  1542. ether_selector_instance_ctrl_t g_ether_selector1_ctrl;
  1543. const ether_selector_cfg_t g_ether_selector1_cfg =
  1544. {
  1545. .channel = 1,
  1546. .phylink = ETHER_SELECTOR_PHYLINK_POLARITY_LOW,
  1547. .interface = ETHER_SELECTOR_INTERFACE_RGMII,
  1548. .speed = ETHER_SELECTOR_SPEED_100_MBPS,
  1549. .duplex = ETHER_SELECTOR_DUPLEX_FULL,
  1550. .ref_clock = ETHER_SELECTOR_REF_CLOCK_INPUT,
  1551. .p_extend = NULL,
  1552. };
  1553. /* Instance structure to use this module. */
  1554. const ether_selector_instance_t g_ether_selector1 =
  1555. {
  1556. .p_ctrl = &g_ether_selector1_ctrl,
  1557. .p_cfg = &g_ether_selector1_cfg,
  1558. .p_api = &g_ether_selector_on_ether_selector
  1559. };
  1560. ether_phy_instance_ctrl_t g_ether_phy1_ctrl;
  1561. const ether_phy_extend_cfg_t g_ether_phy1_extend =
  1562. {
  1563. .port_type = ETHER_PHY_PORT_TYPE_ETHERNET,
  1564. .mdio_type = ETHER_PHY_MDIO_GMAC,
  1565. .bps = ETHER_PHY_SPEED_100,
  1566. .duplex = ETHER_PHY_DUPLEX_FULL,
  1567. .auto_negotiation = ETHER_PHY_AUTO_NEGOTIATION_ON,
  1568. .phy_reset_pin = BSP_IO_PORT_13_PIN_4,
  1569. .phy_reset_time = 15000,
  1570. .p_selector_instance = (ether_selector_instance_t *)&g_ether_selector1,
  1571. .p_target_init = ether_phy_targets_initialize_rtl8211_rgmii,
  1572. };
  1573. const ether_phy_cfg_t g_ether_phy1_cfg =
  1574. {
  1575. .channel = 1,
  1576. .phy_lsi_address = 2,
  1577. .phy_reset_wait_time = 0x00020000,
  1578. .mii_bit_access_wait_time = 0, // Unused
  1579. .phy_lsi_type = ETHER_PHY_LSI_TYPE_CUSTOM,
  1580. .flow_control = ETHER_PHY_FLOW_CONTROL_DISABLE,
  1581. .mii_type = (ether_phy_mii_type_t) 0, // Unused
  1582. .p_context = NULL,
  1583. .p_extend = &g_ether_phy1_extend
  1584. };
  1585. /* Instance structure to use this module. */
  1586. const ether_phy_instance_t g_ether_phy1 =
  1587. {
  1588. .p_ctrl = &g_ether_phy1_ctrl,
  1589. .p_cfg = &g_ether_phy1_cfg,
  1590. .p_api = &g_ether_phy_on_ether_phy
  1591. };
  1592. ether_selector_instance_ctrl_t g_ether_selector0_ctrl;
  1593. const ether_selector_cfg_t g_ether_selector0_cfg =
  1594. {
  1595. .channel = 0,
  1596. .phylink = ETHER_SELECTOR_PHYLINK_POLARITY_LOW,
  1597. .interface = ETHER_SELECTOR_INTERFACE_RGMII,
  1598. .speed = ETHER_SELECTOR_SPEED_100_MBPS,
  1599. .duplex = ETHER_SELECTOR_DUPLEX_FULL,
  1600. .ref_clock = ETHER_SELECTOR_REF_CLOCK_INPUT,
  1601. .p_extend = NULL,
  1602. };
  1603. /* Instance structure to use this module. */
  1604. const ether_selector_instance_t g_ether_selector0 =
  1605. {
  1606. .p_ctrl = &g_ether_selector0_ctrl,
  1607. .p_cfg = &g_ether_selector0_cfg,
  1608. .p_api = &g_ether_selector_on_ether_selector
  1609. };
  1610. ether_phy_instance_ctrl_t g_ether_phy0_ctrl;
  1611. const ether_phy_extend_cfg_t g_ether_phy0_extend =
  1612. {
  1613. .port_type = ETHER_PHY_PORT_TYPE_ETHERNET,
  1614. .mdio_type = ETHER_PHY_MDIO_GMAC,
  1615. .bps = ETHER_PHY_SPEED_100,
  1616. .duplex = ETHER_PHY_DUPLEX_FULL,
  1617. .auto_negotiation = ETHER_PHY_AUTO_NEGOTIATION_ON,
  1618. .phy_reset_pin = BSP_IO_PORT_13_PIN_4,
  1619. .phy_reset_time = 15000,
  1620. .p_selector_instance = (ether_selector_instance_t *)&g_ether_selector0,
  1621. .p_target_init = ether_phy_targets_initialize_rtl8211_rgmii,
  1622. };
  1623. const ether_phy_cfg_t g_ether_phy0_cfg =
  1624. {
  1625. .channel = 0,
  1626. .phy_lsi_address = 1,
  1627. .phy_reset_wait_time = 0x00020000,
  1628. .mii_bit_access_wait_time = 0, // Unused
  1629. .phy_lsi_type = ETHER_PHY_LSI_TYPE_CUSTOM,
  1630. .flow_control = ETHER_PHY_FLOW_CONTROL_DISABLE,
  1631. .mii_type = (ether_phy_mii_type_t) 0, // Unused
  1632. .p_context = NULL,
  1633. .p_extend = &g_ether_phy0_extend
  1634. };
  1635. /* Instance structure to use this module. */
  1636. const ether_phy_instance_t g_ether_phy0 =
  1637. {
  1638. .p_ctrl = &g_ether_phy0_ctrl,
  1639. .p_cfg = &g_ether_phy0_cfg,
  1640. .p_api = &g_ether_phy_on_ether_phy
  1641. };
  1642. const ether_phy_instance_t *g_ether0_phy_instance[BSP_FEATURE_GMAC_MAX_PORTS] =
  1643. {
  1644. #define FSP_NOT_DEFINED (1)
  1645. #if (FSP_NOT_DEFINED == g_ether_phy0)
  1646. NULL,
  1647. #else
  1648. &g_ether_phy0,
  1649. #endif
  1650. #if (FSP_NOT_DEFINED == g_ether_phy1)
  1651. NULL,
  1652. #else
  1653. &g_ether_phy1,
  1654. #endif
  1655. #if (FSP_NOT_DEFINED == g_ether_phy2)
  1656. NULL,
  1657. #else
  1658. &g_ether_phy2,
  1659. #endif
  1660. #undef FSP_NOT_DEFINED
  1661. };
  1662. gmac_instance_ctrl_t g_ether0_ctrl;
  1663. #define ETHER_MAC_ADDRESS_INVALID (0)
  1664. #define ETHER_MAC_ADDRESS_VALID (1)
  1665. uint8_t g_ether0_mac_address[6] = { 0x00,0x11,0x22,0x33,0x44,0x55 };
  1666. #if ETHER_MAC_ADDRESS_INVALID == ETHER_MAC_ADDRESS_VALID
  1667. uint8_t g_ether0_mac_address_1[6] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
  1668. #endif
  1669. #if ETHER_MAC_ADDRESS_INVALID == ETHER_MAC_ADDRESS_VALID
  1670. uint8_t g_ether0_mac_address_2[6] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
  1671. #endif
  1672. __attribute__((__aligned__(16))) gmac_instance_descriptor_t g_ether0_tx_descriptors[8] ETHER_BUFFER_PLACE_IN_SECTION;
  1673. __attribute__((__aligned__(16))) gmac_instance_descriptor_t g_ether0_rx_descriptors[8] ETHER_BUFFER_PLACE_IN_SECTION;
  1674. __attribute__((__aligned__(32)))uint8_t g_ether0_ether_buffer0[1524]ETHER_BUFFER_PLACE_IN_SECTION;
  1675. __attribute__((__aligned__(32)))uint8_t g_ether0_ether_buffer1[1524]ETHER_BUFFER_PLACE_IN_SECTION;
  1676. __attribute__((__aligned__(32)))uint8_t g_ether0_ether_buffer2[1524]ETHER_BUFFER_PLACE_IN_SECTION;
  1677. __attribute__((__aligned__(32)))uint8_t g_ether0_ether_buffer3[1524]ETHER_BUFFER_PLACE_IN_SECTION;
  1678. __attribute__((__aligned__(32)))uint8_t g_ether0_ether_buffer4[1524]ETHER_BUFFER_PLACE_IN_SECTION;
  1679. __attribute__((__aligned__(32)))uint8_t g_ether0_ether_buffer5[1524]ETHER_BUFFER_PLACE_IN_SECTION;
  1680. __attribute__((__aligned__(32)))uint8_t g_ether0_ether_buffer6[1524]ETHER_BUFFER_PLACE_IN_SECTION;
  1681. __attribute__((__aligned__(32)))uint8_t g_ether0_ether_buffer7[1524]ETHER_BUFFER_PLACE_IN_SECTION;
  1682. __attribute__((__aligned__(32)))uint8_t g_ether0_ether_buffer8[1524]ETHER_BUFFER_PLACE_IN_SECTION;
  1683. __attribute__((__aligned__(32)))uint8_t g_ether0_ether_buffer9[1524]ETHER_BUFFER_PLACE_IN_SECTION;
  1684. __attribute__((__aligned__(32)))uint8_t g_ether0_ether_buffer10[1524]ETHER_BUFFER_PLACE_IN_SECTION;
  1685. __attribute__((__aligned__(32)))uint8_t g_ether0_ether_buffer11[1524]ETHER_BUFFER_PLACE_IN_SECTION;
  1686. __attribute__((__aligned__(32)))uint8_t g_ether0_ether_buffer12[1524]ETHER_BUFFER_PLACE_IN_SECTION;
  1687. __attribute__((__aligned__(32)))uint8_t g_ether0_ether_buffer13[1524]ETHER_BUFFER_PLACE_IN_SECTION;
  1688. __attribute__((__aligned__(32)))uint8_t g_ether0_ether_buffer14[1524]ETHER_BUFFER_PLACE_IN_SECTION;
  1689. __attribute__((__aligned__(32)))uint8_t g_ether0_ether_buffer15[1524]ETHER_BUFFER_PLACE_IN_SECTION;
  1690. uint8_t *pp_g_ether0_ether_buffers[( 8 + 8 )] = {
  1691. (uint8_t *) &g_ether0_ether_buffer0[0],
  1692. (uint8_t *) &g_ether0_ether_buffer1[0],
  1693. (uint8_t *) &g_ether0_ether_buffer2[0],
  1694. (uint8_t *) &g_ether0_ether_buffer3[0],
  1695. (uint8_t *) &g_ether0_ether_buffer4[0],
  1696. (uint8_t *) &g_ether0_ether_buffer5[0],
  1697. (uint8_t *) &g_ether0_ether_buffer6[0],
  1698. (uint8_t *) &g_ether0_ether_buffer7[0],
  1699. (uint8_t *) &g_ether0_ether_buffer8[0],
  1700. (uint8_t *) &g_ether0_ether_buffer9[0],
  1701. (uint8_t *) &g_ether0_ether_buffer10[0],
  1702. (uint8_t *) &g_ether0_ether_buffer11[0],
  1703. (uint8_t *) &g_ether0_ether_buffer12[0],
  1704. (uint8_t *) &g_ether0_ether_buffer13[0],
  1705. (uint8_t *) &g_ether0_ether_buffer14[0],
  1706. (uint8_t *) &g_ether0_ether_buffer15[0],
  1707. };
  1708. const gmac_extend_cfg_t g_ether0_extend_cfg =
  1709. {
  1710. .p_rx_descriptors = g_ether0_rx_descriptors,
  1711. .p_tx_descriptors = g_ether0_tx_descriptors,
  1712. .phylink = GMAC_PHYLINK_DISABLE,
  1713. #if defined(VECTOR_NUMBER_GMAC_PMT)
  1714. .pmt_irq = VECTOR_NUMBER_GMAC_PMT,
  1715. #else
  1716. .pmt_irq = FSP_INVALID_VECTOR,
  1717. #endif
  1718. .pmt_interrupt_priority = (12),
  1719. .pp_phy_instance = (ether_phy_instance_t const *(*)[BSP_FEATURE_GMAC_MAX_PORTS]) g_ether0_phy_instance,
  1720. #if defined(GMAC_IMPLEMENT_ETHSW)
  1721. .p_ethsw_instance = &g_ethsw0,
  1722. #endif // GMAC_IMPLEMENT_ETHSW
  1723. #if ETHER_MAC_ADDRESS_INVALID == ETHER_MAC_ADDRESS_VALID
  1724. .p_mac_address1 = g_ether0_mac_address_1,
  1725. #else
  1726. .p_mac_address1 = NULL,
  1727. #endif
  1728. #if ETHER_MAC_ADDRESS_INVALID == ETHER_MAC_ADDRESS_VALID
  1729. .p_mac_address2 = g_ether0_mac_address_2
  1730. #else
  1731. .p_mac_address2 = NULL,
  1732. #endif
  1733. };
  1734. const ether_cfg_t g_ether0_cfg =
  1735. {
  1736. .channel = 0,
  1737. .zerocopy = ETHER_ZEROCOPY_DISABLE,
  1738. .multicast = (ether_multicast_t) 0, // Unused
  1739. .promiscuous = ETHER_PROMISCUOUS_DISABLE,
  1740. .flow_control = ETHER_FLOW_CONTROL_DISABLE,
  1741. .broadcast_filter = 0, // Unused
  1742. .p_mac_address = g_ether0_mac_address,
  1743. .num_tx_descriptors = 8,
  1744. .num_rx_descriptors = 8,
  1745. .pp_ether_buffers = pp_g_ether0_ether_buffers,
  1746. .ether_buffer_size = 1524,
  1747. #if defined(VECTOR_NUMBER_GMAC_SBD)
  1748. .irq = VECTOR_NUMBER_GMAC_SBD,
  1749. #else
  1750. .irq = FSP_INVALID_VECTOR,
  1751. #endif
  1752. .interrupt_priority = (12),
  1753. .p_callback = user_ether0_callback,
  1754. .p_ether_phy_instance = (ether_phy_instance_t *) 0, // Unused
  1755. .p_context = NULL,
  1756. .p_extend = &g_ether0_extend_cfg
  1757. };
  1758. /* Instance structure to use this module. */
  1759. const ether_instance_t g_ether0 =
  1760. {
  1761. .p_ctrl = &g_ether0_ctrl,
  1762. .p_cfg = &g_ether0_cfg,
  1763. .p_api = &g_ether_on_gmac
  1764. };
  1765. sci_uart_instance_ctrl_t g_uart0_ctrl;
  1766. #define FSP_NOT_DEFINED (1)
  1767. #if (FSP_NOT_DEFINED) != (FSP_NOT_DEFINED)
  1768. /* If the transfer module is DMAC, define a DMAC transfer callback. */
  1769. extern void sci_uart_tx_dmac_callback(sci_uart_instance_ctrl_t * p_instance_ctrl);
  1770. void g_uart0_tx_transfer_callback (transfer_callback_args_t * p_args)
  1771. {
  1772. FSP_PARAMETER_NOT_USED(p_args);
  1773. sci_uart_tx_dmac_callback(&g_uart0_ctrl);
  1774. }
  1775. #endif
  1776. #if (FSP_NOT_DEFINED) != (FSP_NOT_DEFINED)
  1777. /* If the transfer module is DMAC, define a DMAC transfer callback. */
  1778. extern void sci_uart_rx_dmac_callback(sci_uart_instance_ctrl_t * p_instance_ctrl);
  1779. void g_uart0_rx_transfer_callback (transfer_callback_args_t * p_args)
  1780. {
  1781. FSP_PARAMETER_NOT_USED(p_args);
  1782. sci_uart_rx_dmac_callback(&g_uart0_ctrl);
  1783. }
  1784. #endif
  1785. #undef FSP_NOT_DEFINED
  1786. sci_baud_setting_t g_uart0_baud_setting =
  1787. {
  1788. /* Baud rate calculated with 0.160% error. */ .baudrate_bits_b.abcse = 0, .baudrate_bits_b.abcs = 0, .baudrate_bits_b.bgdm = 1, .baudrate_bits_b.cks = 0, .baudrate_bits_b.brr = 51, .baudrate_bits_b.mddr = (uint8_t) 256, .baudrate_bits_b.brme = false
  1789. };
  1790. /** UART extended configuration for UARTonSCI HAL driver */
  1791. const sci_uart_extended_cfg_t g_uart0_cfg_extend =
  1792. {
  1793. .clock = SCI_UART_CLOCK_INT,
  1794. .rx_edge_start = SCI_UART_START_BIT_FALLING_EDGE,
  1795. .noise_cancel = SCI_UART_NOISE_CANCELLATION_DISABLE,
  1796. .rx_fifo_trigger = SCI_UART_RX_FIFO_TRIGGER_MAX,
  1797. .p_baud_setting = &g_uart0_baud_setting,
  1798. #if 1
  1799. .clock_source = SCI_UART_CLOCK_SOURCE_SCI0ASYNCCLK,
  1800. #else
  1801. .clock_source = SCI_UART_CLOCK_SOURCE_PCLKM,
  1802. #endif
  1803. .flow_control = SCI_UART_FLOW_CONTROL_RTS,
  1804. #if 0xFF != 0xFF
  1805. .flow_control_pin = BSP_IO_PORT_FF_PIN_0xFF,
  1806. #else
  1807. .flow_control_pin = (bsp_io_port_pin_t) UINT16_MAX,
  1808. #endif
  1809. .rs485_setting = {
  1810. .enable = SCI_UART_RS485_DISABLE,
  1811. .polarity = SCI_UART_RS485_DE_POLARITY_HIGH,
  1812. .assertion_time = 1,
  1813. .negation_time = 1,
  1814. },
  1815. };
  1816. /** UART interface configuration */
  1817. const uart_cfg_t g_uart0_cfg =
  1818. {
  1819. .channel = 0,
  1820. .data_bits = UART_DATA_BITS_8,
  1821. .parity = UART_PARITY_OFF,
  1822. .stop_bits = UART_STOP_BITS_1,
  1823. .p_callback = user_uart0_callback,
  1824. .p_context = NULL,
  1825. .p_extend = &g_uart0_cfg_extend,
  1826. .p_transfer_tx = g_uart0_P_TRANSFER_TX,
  1827. .p_transfer_rx = g_uart0_P_TRANSFER_RX,
  1828. .rxi_ipl = (12),
  1829. .txi_ipl = (12),
  1830. .tei_ipl = (12),
  1831. .eri_ipl = (12),
  1832. #if defined(VECTOR_NUMBER_SCI0_RXI)
  1833. .rxi_irq = VECTOR_NUMBER_SCI0_RXI,
  1834. #else
  1835. .rxi_irq = FSP_INVALID_VECTOR,
  1836. #endif
  1837. #if defined(VECTOR_NUMBER_SCI0_TXI)
  1838. .txi_irq = VECTOR_NUMBER_SCI0_TXI,
  1839. #else
  1840. .txi_irq = FSP_INVALID_VECTOR,
  1841. #endif
  1842. #if defined(VECTOR_NUMBER_SCI0_TEI)
  1843. .tei_irq = VECTOR_NUMBER_SCI0_TEI,
  1844. #else
  1845. .tei_irq = FSP_INVALID_VECTOR,
  1846. #endif
  1847. #if defined(VECTOR_NUMBER_SCI0_ERI)
  1848. .eri_irq = VECTOR_NUMBER_SCI0_ERI,
  1849. #else
  1850. .eri_irq = FSP_INVALID_VECTOR,
  1851. #endif
  1852. };
  1853. /* Instance structure to use this module. */
  1854. const uart_instance_t g_uart0 =
  1855. {
  1856. .p_ctrl = &g_uart0_ctrl,
  1857. .p_cfg = &g_uart0_cfg,
  1858. .p_api = &g_uart_on_sci
  1859. };
  1860. void g_hal_init(void) {
  1861. g_common_init();
  1862. }