diff options
author | Christian Mauderer <christian.mauderer@embedded-brains.de> | 2024-01-11 15:41:45 +0100 |
---|---|---|
committer | Christian Mauderer <christian.mauderer@embedded-brains.de> | 2024-01-31 09:54:57 +0100 |
commit | 529b70c828ea5a981ae576ebc6d3a1b45b3b2ab8 (patch) | |
tree | e9dd2bafc39b7dbb515879121f032e1f3039dcc3 /bsps/powerpc/qoriq/include/bsp | |
parent | bsps/qoriq: Add MMU regions for PCIe based on fdt (diff) | |
download | rtems-529b70c828ea5a981ae576ebc6d3a1b45b3b2ab8.tar.bz2 |
bsps/qoriq: Allow setting EIRQ polarity and sense
Add a function that allows to set the polarity (active-low / negative
edge triggered or active-high / positive edge triggered) and sense
(level or edge sensitive) of the external interrupts.
Diffstat (limited to 'bsps/powerpc/qoriq/include/bsp')
-rw-r--r-- | bsps/powerpc/qoriq/include/bsp/irq.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/bsps/powerpc/qoriq/include/bsp/irq.h b/bsps/powerpc/qoriq/include/bsp/irq.h index 5719701d02..f197f7ab6e 100644 --- a/bsps/powerpc/qoriq/include/bsp/irq.h +++ b/bsps/powerpc/qoriq/include/bsp/irq.h @@ -279,6 +279,8 @@ extern "C" { #define QORIQ_IRQ_EXT_10 (QORIQ_IRQ_EXT_BASE + 10) #define QORIQ_IRQ_EXT_11 (QORIQ_IRQ_EXT_BASE + 11) +#define QORIQ_IRQ_IS_EXT(vector) \ + ((vector) >= QORIQ_IRQ_EXT_0 && (vector) <= QORIQ_IRQ_EXT_11) /** @} */ /** @@ -429,6 +431,31 @@ rtems_status_code qoriq_pic_msi_map( uint32_t *data ); +typedef enum { + QORIQ_EIRQ_TRIGGER_EDGE_FALLING, + QORIQ_EIRQ_TRIGGER_EDGE_RISING, + QORIQ_EIRQ_TRIGGER_LEVEL_LOW, + QORIQ_EIRQ_TRIGGER_LEVEL_HIGH, +} qoriq_eirq_sense_and_polarity; + +/** + * @brief Change polarity and sense settings of external interrupts. + * + * NOTE: There are only very rare edge cases where you need this function. + * + * @a vector must be the vector number of an external interrupt. + * + * Use @a new_sense_and_polarity to select the new setting. If @a + * old_sense_and_polarity is not NULL, the old value is returned. + * + * @returns RTEMS_SUCCSSSFUL on sucess or other values for invalid settings. + */ +rtems_status_code qoriq_pic_set_sense_and_polarity( + rtems_vector_number vector, + qoriq_eirq_sense_and_polarity new_sense_and_polarity, + qoriq_eirq_sense_and_polarity *old_sense_and_polarity +); + /** @} */ #ifdef __cplusplus |