10#include <cy_scb_uart.h>
15#define _IFX_CAT1_SCB_BLOCK_ID_INVALID (0xFF)
17#if (CY_CPU_CORTEX_M0P != 0)
18#define IFX_CAT1_ISR_PRIORITY_DEFAULT (3)
20#define IFX_CAT1_ISR_PRIORITY_DEFAULT (7)
23#define IFX_CAT1_IRQ_MUXING (CY_CPU_CORTEX_M0P || CPUSS_SYSTEM_IRQ_PRESENT)
25#define IFX_CAT1_IRQ_LEGACY_M0 (CY_CPU_CORTEX_M0P && (1u == CY_IP_M4CPUSS_VERSION))
27#if (IFX_CAT1_IRQ_MUXING)
28static inline void _ifx_cat1_irq_set_priority(cy_en_intr_t system_irq,
uint8_t intr_priority)
30static inline void _ifx_cat1_irq_set_priority(IRQn_Type system_irq,
uint8_t intr_priority)
33#if IFX_CAT1_IRQ_MUXING
34#if IFX_CAT1_IRQ_LEGACY_M0
35 IRQn_Type irqn = _ifx_cat1_irq_find_cm0(system_irq);
36 uint8_t priority_to_set = intr_priority;
38 IRQn_Type irqn = Cy_SysInt_GetNvicConnection(system_irq);
40 _ifx_cat1_system_irq_store_priority(system_irq, intr_priority);
41 uint8_t priority_to_set = _ifx_cat1_system_irq_lowest_priority(irqn);
44 IRQn_Type irqn = system_irq;
45 uint8_t priority_to_set = intr_priority;
47 NVIC_SetPriority(irqn, priority_to_set);
50#if (IFX_CAT1_IRQ_MUXING)
51cy_rslt_t _ifx_cat1_irq_register(cy_en_intr_t system_intr,
uint8_t intr_priority,
52 cy_israddress irq_handler);
54cy_rslt_t _ifx_cat1_irq_register(IRQn_Type system_intr,
uint8_t intr_priority,
55 cy_israddress irq_handler);
58#if (IFX_CAT1_IRQ_MUXING)
59void _ifx_cat1_irq_enable(cy_en_intr_t system_irq);
61void _ifx_cat1_irq_enable(IRQn_Type system_irq);
65#define _IFX_CAT1_UTILS_IRQN_OFFSET (16U)
68#define _IFX_CAT1_UTILS_GET_CURRENT_IRQN() ((IRQn_Type)(__get_IPSR() - _IFX_CAT1_UTILS_IRQN_OFFSET))
70#if (IFX_CAT1_IRQ_MUXING)
71static inline cy_en_intr_t _ifx_cat1_irq_get_active(
void)
73static inline IRQn_Type _ifx_cat1_irq_get_active(
void)
76 IRQn_Type irqn = _IFX_CAT1_UTILS_GET_CURRENT_IRQN();
77#if IFX_CAT1_IRQ_MUXING
78#if IFX_CAT1_IRQ_LEGACY_M0
82 return Cy_SysInt_GetInterruptSource(irqn);
84 return Cy_SysInt_GetInterruptActive(irqn);
Public APIs for UART drivers.
__UINT8_TYPE__ uint8_t
Definition stdint.h:88