Platform drivers for Mbed.

Dependents:   EVAL-CN0535-FMCZ EVAL-CN0535-FMCZ EVAL-AD568x-AD569x EVAL-AD7606 ... more

Committer:
mahphalke
Date:
Fri Mar 19 12:10:16 2021 +0530
Revision:
16:61ad39564f45
Parent:
11:a2dcf0ebb5b5
Added uart changes

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mahesh Phalke 11:a2dcf0ebb5b5 1 /***************************************************************************//**
Mahesh Phalke 11:a2dcf0ebb5b5 2 * @file irq_extra.h
Mahesh Phalke 11:a2dcf0ebb5b5 3 * @brief: Header containing extra types required for IRQ drivers
Mahesh Phalke 11:a2dcf0ebb5b5 4 ********************************************************************************
Mahesh Phalke 11:a2dcf0ebb5b5 5 * Copyright (c) 2020 Analog Devices, Inc.
Mahesh Phalke 11:a2dcf0ebb5b5 6 *
Mahesh Phalke 11:a2dcf0ebb5b5 7 * All rights reserved.
Mahesh Phalke 11:a2dcf0ebb5b5 8 *
Mahesh Phalke 11:a2dcf0ebb5b5 9 * This software is proprietary to Analog Devices, Inc. and its licensors.
Mahesh Phalke 11:a2dcf0ebb5b5 10 * By using this software you agree to the terms of the associated
Mahesh Phalke 11:a2dcf0ebb5b5 11 * Analog Devices Software License Agreement.
Mahesh Phalke 11:a2dcf0ebb5b5 12 *******************************************************************************/
Mahesh Phalke 11:a2dcf0ebb5b5 13
Mahesh Phalke 11:a2dcf0ebb5b5 14 #ifndef IRQ_EXTRA_H
Mahesh Phalke 11:a2dcf0ebb5b5 15 #define IRQ_EXTRA_H
Mahesh Phalke 11:a2dcf0ebb5b5 16
Mahesh Phalke 11:a2dcf0ebb5b5 17
Mahesh Phalke 11:a2dcf0ebb5b5 18 // Platform support needs to be C-compatible to work with other drivers
Mahesh Phalke 11:a2dcf0ebb5b5 19 #ifdef __cplusplus
Mahesh Phalke 11:a2dcf0ebb5b5 20 extern "C"
Mahesh Phalke 11:a2dcf0ebb5b5 21 {
Mahesh Phalke 11:a2dcf0ebb5b5 22 #endif
Mahesh Phalke 11:a2dcf0ebb5b5 23
Mahesh Phalke 11:a2dcf0ebb5b5 24 /******************************************************************************/
Mahesh Phalke 11:a2dcf0ebb5b5 25 /***************************** Include Files **********************************/
Mahesh Phalke 11:a2dcf0ebb5b5 26 /******************************************************************************/
Mahesh Phalke 11:a2dcf0ebb5b5 27
Mahesh Phalke 11:a2dcf0ebb5b5 28 #include <stdbool.h>
Mahesh Phalke 11:a2dcf0ebb5b5 29
Mahesh Phalke 11:a2dcf0ebb5b5 30 /******************************************************************************/
Mahesh Phalke 11:a2dcf0ebb5b5 31 /********************** Macros and Constants Definitions **********************/
Mahesh Phalke 11:a2dcf0ebb5b5 32 /******************************************************************************/
Mahesh Phalke 11:a2dcf0ebb5b5 33
Mahesh Phalke 11:a2dcf0ebb5b5 34 /******************************************************************************/
Mahesh Phalke 11:a2dcf0ebb5b5 35 /*************************** Types Declarations *******************************/
Mahesh Phalke 11:a2dcf0ebb5b5 36 /******************************************************************************/
Mahesh Phalke 11:a2dcf0ebb5b5 37
Mahesh Phalke 11:a2dcf0ebb5b5 38 /**
Mahesh Phalke 11:a2dcf0ebb5b5 39 * @enum irq_id
Mahesh Phalke 11:a2dcf0ebb5b5 40 * @brief Interrupts IDs supported by the irq driver
Mahesh Phalke 11:a2dcf0ebb5b5 41 */
Mahesh Phalke 11:a2dcf0ebb5b5 42 enum irq_id {
Mahesh Phalke 11:a2dcf0ebb5b5 43 /** External interrupt ID */
Mahesh Phalke 11:a2dcf0ebb5b5 44 EXTERNAL_INT_ID,
Mahesh Phalke 11:a2dcf0ebb5b5 45 /** UART Rx interrupt ID */
Mahesh Phalke 11:a2dcf0ebb5b5 46 UART_RX_INT_ID,
Mahesh Phalke 11:a2dcf0ebb5b5 47 /* Number of available interrupts */
Mahesh Phalke 11:a2dcf0ebb5b5 48 NB_INTERRUPTS
Mahesh Phalke 11:a2dcf0ebb5b5 49 };
Mahesh Phalke 11:a2dcf0ebb5b5 50
Mahesh Phalke 11:a2dcf0ebb5b5 51 /*
Mahesh Phalke 11:a2dcf0ebb5b5 52 * External IRQ events
Mahesh Phalke 11:a2dcf0ebb5b5 53 * */
Mahesh Phalke 11:a2dcf0ebb5b5 54 typedef enum {
Mahesh Phalke 11:a2dcf0ebb5b5 55 EXT_IRQ_NONE,
Mahesh Phalke 11:a2dcf0ebb5b5 56 EXT_IRQ_RISE,
Mahesh Phalke 11:a2dcf0ebb5b5 57 EXT_IRQ_FALL
Mahesh Phalke 11:a2dcf0ebb5b5 58 } ext_irq_event;
Mahesh Phalke 11:a2dcf0ebb5b5 59
Mahesh Phalke 11:a2dcf0ebb5b5 60 /**
Mahesh Phalke 11:a2dcf0ebb5b5 61 * @struct mbed_irq_init_param
Mahesh Phalke 11:a2dcf0ebb5b5 62 * @brief Structure holding the extra parameters for Interrupt Request.
Mahesh Phalke 11:a2dcf0ebb5b5 63 */
Mahesh Phalke 11:a2dcf0ebb5b5 64 typedef struct {
Mahesh Phalke 11:a2dcf0ebb5b5 65 uint32_t int_mode; // Interrupt mode (falling/rising etc)
Mahesh Phalke 11:a2dcf0ebb5b5 66 void *int_obj_type; // Interrupt handling object
Mahesh Phalke 11:a2dcf0ebb5b5 67 } mbed_irq_init_param;
Mahesh Phalke 11:a2dcf0ebb5b5 68
Mahesh Phalke 11:a2dcf0ebb5b5 69 /**
Mahesh Phalke 11:a2dcf0ebb5b5 70 * @struct aducm410_irq_desc
Mahesh Phalke 11:a2dcf0ebb5b5 71 * @brief Structure holding the platform descriptor for Interrupt Request.
Mahesh Phalke 11:a2dcf0ebb5b5 72 */
Mahesh Phalke 11:a2dcf0ebb5b5 73 typedef struct {
Mahesh Phalke 11:a2dcf0ebb5b5 74 uint32_t int_mode; // Interrupt mode (falling/rising etc)
Mahesh Phalke 11:a2dcf0ebb5b5 75 void *int_obj_type; // Interrupt handling object
Mahesh Phalke 11:a2dcf0ebb5b5 76 void *int_obj; // Interrupt object (e.g. InterruptIn)
Mahesh Phalke 11:a2dcf0ebb5b5 77 } mbed_irq_desc;
Mahesh Phalke 11:a2dcf0ebb5b5 78
Mahesh Phalke 11:a2dcf0ebb5b5 79
Mahesh Phalke 11:a2dcf0ebb5b5 80 #ifdef __cplusplus // Closing extern c
Mahesh Phalke 11:a2dcf0ebb5b5 81 }
Mahesh Phalke 11:a2dcf0ebb5b5 82 #endif
Mahesh Phalke 11:a2dcf0ebb5b5 83
Mahesh Phalke 11:a2dcf0ebb5b5 84 #endif // IRQ_EXTRA_H_