1#ifndef DOXYGEN_SHOULD_SKIP_THIS
15#include "MIMXRT1061_features.h"
27#define FSL_XBARA_DRIVER_VERSION (MAKE_VERSION(2, 0, 5))
30#define XBARA_SELx(base, output) (((volatile uint16_t *)(&((base)->SEL0)))[(uint32_t)(output) / 2UL])
33#define XBARA_WR_SELx_SELx(base, input, output) XBARA_SetSignalsConnection((base), (input), (output))
36#define kXBARA_RequestInterruptEnalbe kXBARA_RequestInterruptEnable
41typedef enum _xbara_active_edge
44 kXBARA_EdgeRising = 1U,
45 kXBARA_EdgeFalling = 2U,
46 kXBARA_EdgeRisingAndFalling = 3U
52typedef enum _xbar_request
54 kXBARA_RequestDisable = 0U,
55 kXBARA_RequestDMAEnable = 1U,
56 kXBARA_RequestInterruptEnable = 2U
64typedef enum _xbara_status_flag_t
66 kXBARA_EdgeDetectionOut0 =
67 (XBARA_CTRL0_STS0_MASK),
68 kXBARA_EdgeDetectionOut1 =
69 (XBARA_CTRL0_STS1_MASK),
70 kXBARA_EdgeDetectionOut2 =
71 (XBARA_CTRL1_STS2_MASK << 16U),
72 kXBARA_EdgeDetectionOut3 =
73 (XBARA_CTRL1_STS3_MASK << 16U),
83typedef struct XBARAControlConfig
85 xbara_active_edge_t activeEdge;
86 xbara_request_t requestType;
87} xbara_control_config_t;
93#if defined(__cplusplus)
109void XBARA_Init(XBARA_Type *base);
118void XBARA_Deinit(XBARA_Type *base);
136void XBARA_SetSignalsConnection(XBARA_Type *base, xbar_input_signal_t input, xbar_output_signal_t output);
150uint32_t XBARA_GetStatusFlags(XBARA_Type *base);
158void XBARA_ClearStatusFlags(XBARA_Type *base, uint32_t mask);
178void XBARA_SetOutputSignalConfig(XBARA_Type *base,
179 xbar_output_signal_t output,
180 const xbara_control_config_t *controlConfig);
182#if defined(__cplusplus)