23 #ifndef LIBBSP_POWERPC_IRQ_H 24 #define LIBBSP_POWERPC_IRQ_H 39 #define MPC55XX_IRQ_INVALID 0x10000U 40 #define MPC55XX_IRQ_MIN 0U 43 #define MPC55XX_IRQ_SOFTWARE_MIN 0U 44 #define MPC55XX_IRQ_SOFTWARE_MAX 7U 45 #define MPC55XX_IRQ_SOFTWARE_GET_INDEX(v) (v) 46 #define MPC55XX_IRQ_SOFTWARE_GET_REQUEST(i) (i) 47 #define MPC55XX_IRQ_SOFTWARE_NUMBER (MPC55XX_IRQ_SOFTWARE_MAX + 1U) 49 #if MPC55XX_CHIP_FAMILY == 551 50 #define MPC55XX_IRQ_MAX 293U 53 #define MPC55XX_IRQ_EDMA_ERROR(group) \ 54 ((group) == 0 ? 10U : MPC55XX_IRQ_INVALID) 55 #define MPC55XX_IRQ_EDMA(ch) \ 56 ((unsigned) (ch) < 16U ? 11U + (ch) : MPC55XX_IRQ_INVALID) 59 #define MPC55XX_IRQ_I2C(mod) \ 60 ((mod) == 0 ? 48U : MPC55XX_IRQ_INVALID) 63 #define MPC55XX_IRQ_SIU_EXTERNAL_0 53U 64 #define MPC55XX_IRQ_SIU_EXTERNAL_1 54U 65 #define MPC55XX_IRQ_SIU_EXTERNAL_2 55U 66 #define MPC55XX_IRQ_SIU_EXTERNAL_3 56U 67 #define MPC55XX_IRQ_SIU_EXTERNAL_4_15 57U 70 #define MPC55XX_IRQ_RTI 148U 71 #define MPC55XX_IRQ_PIT(timer) (148U + (timer)) 74 #define MPC55XX_IRQ_ETPU_BASE(mod) MPC55XX_IRQ_INVALID 77 #define MPC55XX_IRQ_DSPI_BASE(mod) \ 78 ((mod) == 0 ? 117U : \ 79 ((mod) == 1 ? 122U : \ 80 ((mod) == 2 ? 274U : \ 81 ((mod) == 3 ? 279U : MPC55XX_IRQ_INVALID)))) 84 #define MPC55XX_IRQ_EMIOS(ch) \ 85 ((unsigned) (ch) < 24U ? 58U + (ch) : MPC55XX_IRQ_INVALID) 88 #define MPC55XX_IRQ_EQADC_BASE(mod) \ 89 ((mod) == 0 ? 82U : MPC55XX_IRQ_INVALID) 92 #define MPC55XX_IRQ_ESCI(mod) \ 93 ((mod) == 0 ? 113U : \ 94 ((mod) == 1 ? 114U : \ 95 ((mod) == 2 ? 115U : \ 96 ((mod) == 3 ? 116U : \ 97 ((mod) == 4 ? 270U : \ 98 ((mod) == 5 ? 271U : \ 99 ((mod) == 6 ? 272U : \ 100 ((mod) == 7 ? 273U : MPC55XX_IRQ_INVALID)))))))) 103 #define MPC55XX_IRQ_CAN_BASE(mod) \ 104 ((mod) == 0 ? 127U : \ 105 ((mod) == 1 ? 157U : \ 106 ((mod) == 2 ? 178U : \ 107 ((mod) == 3 ? 199U : \ 108 ((mod) == 4 ? 220U : \ 109 ((mod) == 5 ? 241U : MPC55XX_IRQ_INVALID)))))) 112 #define MPC55XX_IRQ_FLEXRAY_BASE(mod) \ 113 ((mod) == 0 ? 284U : MPC55XX_IRQ_INVALID) 114 #elif MPC55XX_CHIP_FAMILY == 564 115 #define MPC55XX_IRQ_MAX 255U 118 #define MPC55XX_IRQ_EDMA_ERROR(group) \ 119 ((group) == 0 ? 10U : MPC55XX_IRQ_INVALID) 120 #define MPC55XX_IRQ_EDMA(ch) \ 121 ((unsigned) (ch) < 16U ? 11U + (ch) : MPC55XX_IRQ_INVALID) 124 #define MPC55XX_IRQ_SWT_0 28U 125 #define MPC55XX_IRQ_SWT_1 29U 128 #define MPC55XX_IRQ_STM_CHANNEL(ch) ((ch) + 30U) 131 #define MPC55XX_IRQ_ECSM_FAS 9U 132 #define MPC55XX_IRQ_ECSM_NCE 35U 133 #define MPC55XX_IRQ_ECSM_COR 36U 136 #define MPC55XX_IRQ_MC_ME_SAFE_MODE 51U 137 #define MPC55XX_IRQ_MC_ME_MODE_TRANSITION 52U 138 #define MPC55XX_IRQ_MC_ME_INVALID_MODE 53U 139 #define MPC55XX_IRQ_MC_ME_INVALID_CONFIG 54U 140 #define MPC55XX_IRQ_MC_RGM_FRAE 56U 143 #define MPC55XX_IRQ_XOSC 57U 146 #define MPC55XX_IRQ_PIT_CHANNEL(ch) \ 147 ((ch) == 3 ? 127U : ((ch) + 59U)) 150 #define MPC55XX_IRQ_SIU_EXTERNAL_0 41U 151 #define MPC55XX_IRQ_SIU_EXTERNAL_1 42U 152 #define MPC55XX_IRQ_SIU_EXTERNAL_2 43U 153 #define MPC55XX_IRQ_SIU_EXTERNAL_3 44U 156 #define MPC55XX_IRQ_ADC_BASE(mod) \ 157 ((mod) == 0 ? 62U : \ 158 ((mod) == 1 ? 82U : MPC55XX_IRQ_INVALID)) 161 #define MPC55XX_IRQ_DSPI_BASE(mod) \ 162 ((mod) == 0 ? 74U : \ 163 ((mod) == 1 ? 94U : \ 164 ((mod) == 2 ? 114U : MPC55XX_IRQ_INVALID))) 167 #define MPC55XX_IRQ_CAN_BASE(mod) \ 168 ((mod) == 0 ? 65U : \ 169 ((mod) == 1 ? 85U : MPC55XX_IRQ_INVALID)) 172 #define MPC55XX_IRQ_FLEXPWM_BASE(mod) \ 173 ((mod) == 0 ? 179U : \ 174 ((mod) == 1 ? 233U : MPC55XX_IRQ_INVALID)) 177 #define MPC55XX_IRQ_FLEXRAY_BASE(mod) \ 178 ((mod) == 0 ? 131U : MPC55XX_IRQ_INVALID) 181 #define MPC55XX_IRQ_LINFLEX_BASE(mod) \ 182 ((mod) == 0 ? 79U : \ 183 ((mod) == 1 ? 99U : MPC55XX_IRQ_INVALID)) 186 #define MPC55XX_IRQ_ETIMER_BASE(mod) \ 187 ((mod) == 0 ? 157U : \ 188 ((mod) == 1 ? 168U : \ 189 ((mod) == 2 ? 222U : MPC55XX_IRQ_INVALID))) 192 #define MPC55XX_IRQ_CTU_MRS 193U 193 #define MPC55XX_IRQ_CTU_T(idx) ((idx) + 194U) 194 #define MPC55XX_IRQ_CTU_FIFO(idx) ((idx) + 202U) 195 #define MPC55XX_IRQ_CTU_ADC 206U 196 #define MPC55XX_IRQ_CTU_ERR 207U 199 #define MPC55XX_IRQ_SEMA_0 247U 200 #define MPC55XX_IRQ_SEMA_1 248U 203 #define MPC55XX_IRQ_FCCU_ALRM 250U 204 #define MPC55XX_IRQ_FCCU_CFG_TO 251U 205 #define MPC55XX_IRQ_FCCU_SC_RCC0_F 252U 206 #define MPC55XX_IRQ_FCCU_SC_RCC1_F 253U 209 #define MPC55XX_IRQ_PMU 254U 212 #define MPC55XX_IRQ_SWG 255U 213 #elif MPC55XX_CHIP_FAMILY == 566 214 #define MPC55XX_IRQ_MAX 315U 217 #define MPC55XX_IRQ_EDMA_ERROR(group) \ 218 ((group) == 0 ? 10U : MPC55XX_IRQ_INVALID) 219 #define MPC55XX_IRQ_EDMA(ch) \ 220 ((unsigned) (ch) < 32U ? 11U + (ch) : MPC55XX_IRQ_INVALID) 223 #define MPC55XX_IRQ_PIT_CHANNEL(ch) \ 224 ((unsigned) (ch) < 9U ? 148U + (ch) : MPC55XX_IRQ_INVALID) 227 #define MPC55XX_IRQ_SIU_EXTERNAL_0 53U 228 #define MPC55XX_IRQ_SIU_EXTERNAL_1 54U 229 #define MPC55XX_IRQ_SIU_EXTERNAL_2 55U 230 #define MPC55XX_IRQ_SIU_EXTERNAL_3 56U 233 #define MPC55XX_IRQ_EMIOS(ch) \ 234 ((unsigned) (ch) < 24U ? 58U + (ch) : \ 235 ((unsigned) (ch) < 32U ? 262U + (ch) : MPC55XX_IRQ_INVALID)) 238 #define MPC55XX_IRQ_ESCI(mod) \ 239 ((unsigned) (mod) < 4U ? 113U + (mod) : \ 240 ((unsigned) (mod) < 8U ? 270U + (mod) : \ 241 ((unsigned) (mod) < 12U ? 306U + (mod) : MPC55XX_IRQ_INVALID))) 243 #if MPC55XX_CHIP_FAMILY == 555 244 #define MPC55XX_IRQ_MAX 307U 245 #elif MPC55XX_CHIP_FAMILY == 556 246 #define MPC55XX_IRQ_MAX 360U 247 #elif MPC55XX_CHIP_FAMILY == 567 248 #define MPC55XX_IRQ_MAX 479U 250 #error "unsupported chip type" 254 #define MPC55XX_IRQ_EDMA_ERROR(group) \ 255 ((group) == 0 ? 10U : \ 256 ((group) == 1 ? 210U : \ 257 ((group) == 2 ? 425U : MPC55XX_IRQ_INVALID))) 258 #define MPC55XX_IRQ_EDMA(ch) \ 259 ((unsigned) (ch) < 32U ? 11U + (ch) : \ 260 ((unsigned) (ch) < 64U ? 179U + (ch) : \ 261 ((unsigned) (ch) < 96U ? 362U + (ch) : MPC55XX_IRQ_INVALID))) 264 #define MPC55XX_IRQ_I2C(mod) MPC55XX_IRQ_INVALID 267 #define MPC55XX_IRQ_SIU_EXTERNAL_0 46U 268 #define MPC55XX_IRQ_SIU_EXTERNAL_1 47U 269 #define MPC55XX_IRQ_SIU_EXTERNAL_2 48U 270 #define MPC55XX_IRQ_SIU_EXTERNAL_3 49U 271 #define MPC55XX_IRQ_SIU_EXTERNAL_4_15 50U 274 #define MPC55XX_IRQ_RTI 305U 275 #define MPC55XX_IRQ_PIT(ch) (301U + (ch)) 278 #define MPC55XX_IRQ_ETPU_BASE(mod) \ 279 ((mod) == 0 ? 67U : \ 280 ((mod) == 1 ? 243U : MPC55XX_IRQ_INVALID)) 283 #define MPC55XX_IRQ_DSPI_BASE(mod) \ 284 ((mod) == 0 ? 275U : \ 285 ((mod) == 1 ? 131U : \ 286 ((mod) == 2 ? 136U : \ 287 ((mod) == 3 ? 141U : MPC55XX_IRQ_INVALID)))) 290 #define MPC55XX_IRQ_EMIOS(ch) \ 291 ((unsigned) (ch) < 16U ? 51U + (ch) : \ 292 ((unsigned) (ch) < 24U ? 186U + (ch) : \ 293 ((unsigned) (ch) < 32U ? 435U + (ch) : MPC55XX_IRQ_INVALID))) 296 #define MPC55XX_IRQ_EQADC_BASE(mod) \ 297 ((mod) == 0 ? 100U : \ 298 ((mod) == 1 ? 394U : MPC55XX_IRQ_INVALID)) 301 #define MPC55XX_IRQ_ESCI(mod) \ 302 ((mod) == 0 ? 146U : \ 303 ((mod) == 1 ? 149U : \ 304 ((mod) == 2 ? 473U : MPC55XX_IRQ_INVALID))) 307 #define MPC55XX_IRQ_CAN_BASE(mod) \ 308 ((mod) == 0 ? 152U : \ 309 ((mod) == 1 ? 280U : \ 310 ((mod) == 2 ? 173U : \ 311 ((mod) == 3 ? 308U : \ 312 ((mod) == 4 ? 329U : MPC55XX_IRQ_INVALID))))) 315 #define MPC55XX_IRQ_FLEXRAY_BASE(mod) \ 316 ((mod) == 0 ? 350U : MPC55XX_IRQ_INVALID) 319 #define MPC55XX_IRQ_NUMBER (MPC55XX_IRQ_MAX + 1U) 322 #define MPC55XX_IRQ_ADC_EOC(mod) \ 323 (MPC55XX_IRQ_ADC_BASE(mod) + 0U) 324 #define MPC55XX_IRQ_ADC_ER(mod) \ 325 (MPC55XX_IRQ_ADC_BASE(mod) + 1U) 326 #define MPC55XX_IRQ_ADC_WD(mod) \ 327 (MPC55XX_IRQ_ADC_BASE(mod) + 2U) 330 #define MPC55XX_IRQ_ETIMER_TC(mod, ch) \ 331 (MPC55XX_IRQ_ETIMER_BASE(mod) + (ch)) 332 #define MPC55XX_IRQ_ETIMER_WTIF(mod) \ 333 (MPC55XX_IRQ_ETIMER_BASE(mod) + 8U) 334 #define MPC55XX_IRQ_ETIMER_RCF(mod) \ 335 (MPC55XX_IRQ_ETIMER_BASE(mod) + 10U) 338 #define MPC55XX_IRQ_ETPU(mod) \ 339 (MPC55XX_IRQ_ETPU_BASE(mod) + 0U) 340 #define MPC55XX_IRQ_ETPU_CHANNEL(mod, ch) \ 341 (MPC55XX_IRQ_ETPU_BASE(mod) + 1U + (ch)) 344 #define MPC55XX_IRQ_DSPI_TFUF_RFOF(mod) (MPC55XX_IRQ_DSPI_BASE(mod) + 0U) 345 #define MPC55XX_IRQ_DSPI_EOQF(mod) (MPC55XX_IRQ_DSPI_BASE(mod) + 1U) 346 #define MPC55XX_IRQ_DSPI_TFFF(mod) (MPC55XX_IRQ_DSPI_BASE(mod) + 2U) 347 #define MPC55XX_IRQ_DSPI_TCF(mod) (MPC55XX_IRQ_DSPI_BASE(mod) + 3U) 348 #define MPC55XX_IRQ_DSPI_RFDF(mod) (MPC55XX_IRQ_DSPI_BASE(mod) + 4U) 351 #define MPC55XX_IRQ_EQADC_TORF_RFOF_CFUF(mod) \ 352 (MPC55XX_IRQ_EQADC_BASE(mod) + 0U) 353 #define MPC55XX_IRQ_EQADC_NCF(mod, fifo) \ 354 (MPC55XX_IRQ_EQADC_BASE(mod) + 1U + (fifo) * 5U + 0U) 355 #define MPC55XX_IRQ_EQADC_PF(mod, fifo) \ 356 (MPC55XX_IRQ_EQADC_BASE(mod) + 1U + (fifo) * 5U + 1U) 357 #define MPC55XX_IRQ_EQADC_EOQF(mod, fifo) \ 358 (MPC55XX_IRQ_EQADC_BASE(mod) + 1U + (fifo) * 5U + 2U) 359 #define MPC55XX_IRQ_EQADC_CFFF(mod, fifo) \ 360 (MPC55XX_IRQ_EQADC_BASE(mod) + 1U + (fifo) * 5U + 3U) 361 #define MPC55XX_IRQ_EQADC_RFDF(mod, fifo) \ 362 (MPC55XX_IRQ_EQADC_BASE(mod) + 1U + (fifo) * 5U + 4U) 365 #if MPC55XX_CHIP_FAMILY == 564 366 #define MPC55XX_IRQ_CAN_ERR(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 0U) 367 #define MPC55XX_IRQ_CAN_BOFF_TWRN_RWRN(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 1U) 368 #define MPC55XX_IRQ_CAN_BUF_0_3(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 3U) 369 #define MPC55XX_IRQ_CAN_BUF_4_7(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 4U) 370 #define MPC55XX_IRQ_CAN_BUF_8_11(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 5U) 371 #define MPC55XX_IRQ_CAN_BUF_12_15(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 6U) 372 #define MPC55XX_IRQ_CAN_BUF_16_31(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 7U) 374 #define MPC55XX_IRQ_CAN_BOFF_TWRN_RWRN(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 0U) 375 #define MPC55XX_IRQ_CAN_ERR(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 1U) 376 #define MPC55XX_IRQ_CAN_BUF_0(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 3U) 377 #define MPC55XX_IRQ_CAN_BUF_1(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 4U) 378 #define MPC55XX_IRQ_CAN_BUF_2(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 5U) 379 #define MPC55XX_IRQ_CAN_BUF_3(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 6U) 380 #define MPC55XX_IRQ_CAN_BUF_4(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 7U) 381 #define MPC55XX_IRQ_CAN_BUF_5(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 8U) 382 #define MPC55XX_IRQ_CAN_BUF_6(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 9U) 383 #define MPC55XX_IRQ_CAN_BUF_7(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 10U) 384 #define MPC55XX_IRQ_CAN_BUF_8(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 12U) 385 #define MPC55XX_IRQ_CAN_BUF_9(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 12U) 386 #define MPC55XX_IRQ_CAN_BUF_10(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 13U) 387 #define MPC55XX_IRQ_CAN_BUF_11(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 14U) 388 #define MPC55XX_IRQ_CAN_BUF_12(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 15U) 389 #define MPC55XX_IRQ_CAN_BUF_13(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 16U) 390 #define MPC55XX_IRQ_CAN_BUF_14(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 17U) 391 #define MPC55XX_IRQ_CAN_BUF_15(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 18U) 392 #define MPC55XX_IRQ_CAN_BUF_16_31(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 19U) 393 #define MPC55XX_IRQ_CAN_BUF_32_63(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 20U) 397 #define MPC55XX_IRQ_FLEXPWM_RF(mod, ch) (MPC55XX_IRQ_FLEXPWM_BASE(mod) + 3U * (ch) + 0U) 398 #define MPC55XX_IRQ_FLEXPWM_COF(mod, ch) (MPC55XX_IRQ_FLEXPWM_BASE(mod) + 3U * (ch) + 1U) 399 #define MPC55XX_IRQ_FLEXPWM_CAF(mod, ch) (MPC55XX_IRQ_FLEXPWM_BASE(mod) + 3U * (ch) + 2U) 400 #define MPC55XX_IRQ_FLEXPWM_FFLAG(mod) (MPC55XX_IRQ_FLEXPWM_BASE(mod) + 12U) 401 #define MPC55XX_IRQ_FLEXPWM_REF(mod) (MPC55XX_IRQ_FLEXPWM_BASE(mod) + 13U) 404 #if MPC55XX_CHIP_FAMILY == 564 405 #define MPC55XX_IRQ_FLEXRAY_LRNEIF_DRNEIF(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 0U) 406 #define MPC55XX_IRQ_FLEXRAY_LRCEIF_DRCEIF(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 1U) 407 #define MPC55XX_IRQ_FLEXRAY_FAFAIF(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 2U) 408 #define MPC55XX_IRQ_FLEXRAY_FAFVIF(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 3U) 409 #define MPC55XX_IRQ_FLEXRAY_WUPIEF(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 4U) 410 #define MPC55XX_IRQ_FLEXRAY_PRIF(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 5U) 411 #define MPC55XX_IRQ_FLEXRAY_CHIF(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 6U) 412 #define MPC55XX_IRQ_FLEXRAY_TBIF(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 7U) 413 #define MPC55XX_IRQ_FLEXRAY_RBIF(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 8U) 414 #define MPC55XX_IRQ_FLEXRAY_MIF(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 9U) 416 #define MPC55XX_IRQ_FLEXRAY_MIF(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 0U) 417 #define MPC55XX_IRQ_FLEXRAY_PRIF(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 1U) 418 #define MPC55XX_IRQ_FLEXRAY_CHIF(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 2U) 419 #define MPC55XX_IRQ_FLEXRAY_WUP_IF(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 3U) 420 #define MPC55XX_IRQ_FLEXRAY_FBNE_F(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 4U) 421 #define MPC55XX_IRQ_FLEXRAY_FANE_F(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 5U) 422 #define MPC55XX_IRQ_FLEXRAY_RBIF(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 6U) 423 #define MPC55XX_IRQ_FLEXRAY_TBIF(mod) (MPC55XX_IRQ_FLEXRAY_BASE(mod) + 7U) 427 #define MPC55XX_IRQ_LINFLEX_RXI(mod) (MPC55XX_IRQ_LINFLEX_BASE(mod) + 0U) 428 #define MPC55XX_IRQ_LINFLEX_TXI(mod) (MPC55XX_IRQ_LINFLEX_BASE(mod) + 1U) 429 #define MPC55XX_IRQ_LINFLEX_ERR(mod) (MPC55XX_IRQ_LINFLEX_BASE(mod) + 2U) 432 #define MPC55XX_IRQ_IS_VALID(v) \ 433 ((v) >= MPC55XX_IRQ_MIN && \ 434 (v) <= MPC55XX_IRQ_MAX) 435 #define MPC55XX_IRQ_IS_SOFTWARE(v) \ 436 ((v) >= MPC55XX_IRQ_SOFTWARE_MIN && \ 437 (v) <= MPC55XX_IRQ_SOFTWARE_MAX) 443 #define MPC55XX_INTC_MIN_PRIORITY 1U 444 #define MPC55XX_INTC_MAX_PRIORITY 15U 445 #define MPC55XX_INTC_DISABLED_PRIORITY 0U 446 #define MPC55XX_INTC_INVALID_PRIORITY (MPC55XX_INTC_MAX_PRIORITY + 1) 447 #define MPC55XX_INTC_DEFAULT_PRIORITY (MPC55XX_INTC_MIN_PRIORITY + 1) 448 #define MPC55XX_INTC_IS_VALID_PRIORITY(p) \ 449 ((p) >= MPC55XX_INTC_DISABLED_PRIORITY && (p) <= MPC55XX_INTC_MAX_PRIORITY) 480 #define BSP_INTERRUPT_VECTOR_MIN MPC55XX_IRQ_MIN 482 #define BSP_INTERRUPT_VECTOR_MAX MPC55XX_IRQ_MAX 484 #ifdef BSP_INTERRUPT_HANDLER_TABLE_SIZE 485 #define BSP_INTERRUPT_USE_INDEX_TABLE 486 #define BSP_INTERRUPT_NO_HEAP_USAGE 492 #define MPC55XX_IRQ_EDMA_GET_REQUEST(ch) MPC55XX_IRQ_EDMA(ch) 493 #define MPC55XX_IRQ_EMIOS_GET_REQUEST(ch) MPC55XX_IRQ_EMIOS(ch) rtems_status_code mpc55xx_intc_get_priority(rtems_vector_number vector, unsigned *priority)
Returns the priority priority of IRQ vector from the INTC.
Definition: irq.c:38
ISR_Vector_number rtems_vector_number
Control block type used to manage the vectors.
Definition: intr.h:47
rtems_status_code
Classic API Status.
Definition: status.h:43
Header file for the Interrupt Manager Extension.
uint32_t rtems_option
Definition: options.h:42
rtems_status_code mpc55xx_interrupt_handler_install(rtems_vector_number vector, const char *info, rtems_option options, unsigned priority, rtems_interrupt_handler handler, void *arg)
Installs interrupt handler and sets priority.
Definition: irq.c:95
rtems_status_code mpc55xx_intc_raise_software_irq(rtems_vector_number vector)
Raises the software IRQ with number vector.
Definition: irq.c:69
void(* rtems_interrupt_handler)(void *)
Interrupt handler routine type.
Definition: irq-extension.h:85
rtems_status_code mpc55xx_intc_clear_software_irq(rtems_vector_number vector)
Clears the software IRQ with number vector.
Definition: irq.c:82
rtems_status_code mpc55xx_intc_set_priority(rtems_vector_number vector, unsigned priority)
Sets the priority of IRQ vector to priority at the INTC.
Definition: irq.c:52