Platform drivers for Mbed.
Dependents: EVAL-CN0535-FMCZ EVAL-CN0535-FMCZ EVAL-AD568x-AD569x EVAL-AD7606 ... more
Diff: irq_extra.h
- Revision:
- 17:af1f2416dd26
- Child:
- 20:4951ea6abee5
diff -r 61ad39564f45 -r af1f2416dd26 irq_extra.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/irq_extra.h Tue Jul 13 13:58:07 2021 +0530 @@ -0,0 +1,96 @@ +/***************************************************************************//** + * @file irq_extra.h + * @brief: Header containing extra types required for IRQ drivers +******************************************************************************** + * Copyright (c) 2020-2021 Analog Devices, Inc. + * All rights reserved. + * + * This software is proprietary to Analog Devices, Inc. and its licensors. + * By using this software you agree to the terms of the associated + * Analog Devices Software License Agreement. +*******************************************************************************/ + +#ifndef IRQ_EXTRA_H +#define IRQ_EXTRA_H + + +// Platform support needs to be C-compatible to work with other drivers +#ifdef __cplusplus +extern "C" +{ +#endif + +/******************************************************************************/ +/***************************** Include Files **********************************/ +/******************************************************************************/ + +#include <stdbool.h> + +/******************************************************************************/ +/********************** Macros and Constants Definitions **********************/ +/******************************************************************************/ + +/******************************************************************************/ +/*************************** Types Declarations *******************************/ +/******************************************************************************/ + +/** + * @enum irq_id + * @brief Interrupts IDs supported by the mbed irq driver + */ +enum irq_id { + /** External interrupt ID1 */ + EXTERNAL_INT_ID1, + /** External interrupt ID2 */ + EXTERNAL_INT_ID2, + /** External interrupt ID3 */ + EXTERNAL_INT_ID3, + /** External interrupt ID4 */ + EXTERNAL_INT_ID4, + /** External interrupt ID5 */ + EXTERNAL_INT_ID5, + /** UART Rx interrupt ID1 */ + UART_RX_INT_ID1, + /** Ticker interrupt ID */ + TICKER_INT_ID, + /* Number of available interrupts */ + NB_INTERRUPTS +}; + +/* + * External IRQ events + * */ +typedef enum { + EXT_IRQ_NONE, + EXT_IRQ_RISE, + EXT_IRQ_FALL +} ext_irq_event; + +/** + * @struct mbed_irq_init_param + * @brief Structure holding the extra parameters for Interrupt Request. + */ +typedef struct { + uint32_t int_mode; // Interrupt mode (falling/rising etc) + uint32_t ext_int_pin; // External Interrupt pin + uint32_t ticker_period_usec; // Time period in usec for ticker event + void *int_obj_type; // Interrupt handling object +} mbed_irq_init_param; + +/** + * @struct mbed_irq_desc + * @brief Structure holding the platform descriptor for Interrupt Request. + */ +typedef struct { + uint32_t int_mode; // Interrupt mode (falling/rising etc) + uint32_t ext_int_pin; // External Interrupt pin + uint32_t ticker_period_usec; // Time period in usec for ticker event + void *int_obj_type; // Interrupt handling object + void *int_obj; // Interrupt object (e.g. InterruptIn) +} mbed_irq_desc; + +#ifdef __cplusplus // Closing extern c +} +#endif + +#endif // IRQ_EXTRA_H_