52 #ifndef ti_dl_dl_uart__include 53 #define ti_dl_dl_uart__include 55 #if defined(ti_dl_dl_uart_main__include) || \ 56 defined(ti_dl_dl_uart_extend__include) || defined(DOXYGEN__INCLUDE) 61 #include <ti/devices/msp/msp.h> 64 #if defined(__MSPM0_HAS_UART_MAIN__) || defined(__MSPM0_HAS_UART_EXTD__) 78 #define DL_UART_INTERRUPT_DMA_DONE_TX (UART_CPU_INT_IMASK_DMA_DONE_TX_SET) 83 #define DL_UART_INTERRUPT_DMA_DONE_RX (UART_CPU_INT_IMASK_DMA_DONE_RX_SET) 88 #define DL_UART_INTERRUPT_CTS_DONE (UART_CPU_INT_IMASK_CTS_SET) 93 #define DL_UART_INTERRUPT_ADDRESS_MATCH (UART_CPU_INT_IMASK_ADDR_MATCH_SET) 98 #define DL_UART_INTERRUPT_LINC0_MATCH (UART_CPU_INT_IMASK_LINC0_SET) 103 #define DL_UART_INTERRUPT_EOT_DONE (UART_CPU_INT_IMASK_EOT_SET) 108 #define DL_UART_INTERRUPT_TX (UART_CPU_INT_IMASK_TXINT_SET) 113 #define DL_UART_INTERRUPT_RX (UART_CPU_INT_IMASK_RXINT_SET) 118 #define DL_UART_INTERRUPT_LIN_COUNTER_OVERFLOW \ 119 (UART_CPU_INT_IMASK_LINOVF_SET) 124 #define DL_UART_INTERRUPT_LIN_RISING_EDGE \ 125 (UART_CPU_INT_IMASK_LINC1_SET) 130 #define DL_UART_INTERRUPT_LIN_FALLING_EDGE \ 131 (UART_CPU_INT_IMASK_LINC0_SET) 136 #define DL_UART_INTERRUPT_RXD_POS_EDGE (UART_CPU_INT_IMASK_RXPE_SET) 141 #define DL_UART_INTERRUPT_RXD_NEG_EDGE (UART_CPU_INT_IMASK_RXNE_SET) 146 #define DL_UART_INTERRUPT_OVERRUN_ERROR (UART_CPU_INT_IMASK_OVRERR_SET) 151 #define DL_UART_INTERRUPT_BREAK_ERROR (UART_CPU_INT_IMASK_BRKERR_SET) 156 #define DL_UART_INTERRUPT_PARITY_ERROR (UART_CPU_INT_IMASK_PARERR_SET) 161 #define DL_UART_INTERRUPT_FRAMING_ERROR (UART_CPU_INT_IMASK_FRMERR_SET) 166 #define DL_UART_INTERRUPT_RX_TIMEOUT_ERROR (UART_CPU_INT_IMASK_RTOUT_SET) 172 #define DL_UART_INTERRUPT_NOISE_ERROR (UART_CPU_INT_IMASK_NERR_SET) 180 DL_UART_IIDX_DMA_DONE_TX = UART_CPU_INT_IIDX_STAT_DMA_DONE_TX,
182 DL_UART_IIDX_DMA_DONE_RX = UART_CPU_INT_IIDX_STAT_DMA_DONE_RX,
184 DL_UART_IIDX_CTS_DONE = UART_CPU_INT_IIDX_STAT_CTS,
186 DL_UART_IIDX_ADDRESS_MATCH = UART_CPU_INT_IIDX_STAT_MODE_9B,
188 DL_UART_IIDX_EOT_DONE = UART_CPU_INT_IIDX_STAT_EOT,
190 DL_UART_IIDX_TX = UART_CPU_INT_IIDX_STAT_TXIFG,
192 DL_UART_IIDX_RX = UART_CPU_INT_IIDX_STAT_RXIFG,
194 DL_UART_IIDX_LIN_COUNTER_OVERFLOW = UART_CPU_INT_IIDX_STAT_LINOVF,
196 DL_UART_IIDX_LIN_RISING_EDGE = UART_CPU_INT_IIDX_STAT_LINC1,
198 DL_UART_IIDX_LIN_FALLING_EDGE = UART_CPU_INT_IIDX_STAT_LINC0,
200 DL_UART_IIDX_RXD_POS_EDGE = UART_CPU_INT_IIDX_STAT_RXPE,
202 DL_UART_IIDX_RXD_NEG_EDGE = UART_CPU_INT_IIDX_STAT_RXNE,
204 DL_UART_IIDX_OVERRUN_ERROR = UART_CPU_INT_IIDX_STAT_OEFG,
206 DL_UART_IIDX_BREAK_ERROR = UART_CPU_INT_IIDX_STAT_BEFG,
208 DL_UART_IIDX_PARITY_ERROR = UART_CPU_INT_IIDX_STAT_PEFG,
210 DL_UART_IIDX_FRAMING_ERROR = UART_CPU_INT_IIDX_STAT_FEFG,
212 DL_UART_IIDX_RX_TIMEOUT_ERROR = UART_CPU_INT_IIDX_STAT_RTFG,
216 DL_UART_IIDX_NOISE_ERROR = UART_CPU_INT_IIDX_STAT_NERR_EVT,
220 DL_UART_IIDX_NO_INTERRUPT = UART_CPU_INT_IIDX_STAT_NO_INTR
226 DL_UART_DMA_IIDX_RX_TRIGGER = UART_DMA_TRIG_RX_IIDX_STAT_RXIFG,
228 DL_UART_DMA_IIDX_RX_TIMEOUT_TRIGGER = UART_DMA_TRIG_RX_IIDX_STAT_RTFG
229 } DL_UART_DMA_IIDX_RX;
234 DL_UART_DMA_IIDX_TX_TRIGGER = UART_DMA_TRIG_TX_IIDX_STAT_TXIFG
235 } DL_UART_DMA_IIDX_TX;
243 #define DL_UART_DMA_INTERRUPT_RX (UART_DMA_TRIG_RX_IMASK_RXINT_SET) 248 #define DL_UART_DMA_DONE_INTERRUPT_RX (UART_CPU_INT_IMASK_DMA_DONE_RX_SET) 253 #define DL_UART_DMA_INTERRUPT_RX_TIMEOUT (UART_DMA_TRIG_RX_IMASK_RTOUT_SET) 260 #define DL_UART_DMA_INTERRUPT_TX (UART_DMA_TRIG_TX_IMASK_TXINT_SET) 265 #define DL_UART_DMA_DONE_INTERRUPT_TX (UART_CPU_INT_IMASK_DMA_DONE_TX_SET) 273 #define DL_UART_ERROR_OVERRUN (UART_RXDATA_OVRERR_SET) 278 #define DL_UART_ERROR_BREAK (UART_RXDATA_BRKERR_SET) 283 #define DL_UART_ERROR_PARITY (UART_RXDATA_PARERR_SET) 288 #define DL_UART_ERROR_FRAMING (UART_RXDATA_FRMERR_SET) 295 DL_UART_PULSE_WIDTH_5_NS = UART_GFCTL_AGFSEL_AGLIT_5,
297 DL_UART_PULSE_WIDTH_10_NS = UART_GFCTL_AGFSEL_AGLIT_10,
299 DL_UART_PULSE_WIDTH_25_NS = UART_GFCTL_AGFSEL_AGLIT_25,
301 DL_UART_PULSE_WIDTH_50_NS = UART_GFCTL_AGFSEL_AGLIT_50
302 } DL_UART_PULSE_WIDTH;
307 DL_UART_OVERSAMPLING_RATE_16X = UART_CTL0_HSE_OVS16,
309 DL_UART_OVERSAMPLING_RATE_8X = UART_CTL0_HSE_OVS8,
313 DL_UART_OVERSAMPLING_RATE_3X = UART_CTL0_HSE_OVS3
314 } DL_UART_OVERSAMPLING_RATE;
319 DL_UART_PARITY_EVEN = (UART_LCRH_PEN_ENABLE | UART_LCRH_EPS_EVEN),
321 DL_UART_PARITY_ODD = (UART_LCRH_PEN_ENABLE | UART_LCRH_EPS_ODD),
325 DL_UART_PARITY_STICK_ONE = (UART_LCRH_PEN_ENABLE | UART_LCRH_SPS_ENABLE | UART_LCRH_EPS_ODD),
329 DL_UART_PARITY_STICK_ZERO = (UART_LCRH_PEN_ENABLE | UART_LCRH_SPS_ENABLE | UART_LCRH_EPS_EVEN),
331 DL_UART_PARITY_NONE = UART_LCRH_PEN_DISABLE
337 DL_UART_WORD_LENGTH_5_BITS = UART_LCRH_WLEN_DATABIT5,
339 DL_UART_WORD_LENGTH_6_BITS = UART_LCRH_WLEN_DATABIT6,
341 DL_UART_WORD_LENGTH_7_BITS = UART_LCRH_WLEN_DATABIT7,
343 DL_UART_WORD_LENGTH_8_BITS = UART_LCRH_WLEN_DATABIT8
344 } DL_UART_WORD_LENGTH;
349 DL_UART_MODE_NORMAL = UART_CTL0_MODE_UART,
351 DL_UART_MODE_RS485 = UART_CTL0_MODE_RS485,
353 DL_UART_MODE_IDLE_LINE = UART_CTL0_MODE_IDLELINE,
355 DL_UART_MODE_ADDR_9_BIT = UART_CTL0_MODE_ADDR9BIT,
357 DL_UART_MODE_SMART_CARD = UART_CTL0_MODE_SMART,
359 DL_UART_MODE_DALI = UART_CTL0_MODE_DALI
365 DL_UART_DIRECTION_TX = UART_CTL0_TXE_ENABLE,
367 DL_UART_DIRECTION_RX = UART_CTL0_RXE_ENABLE,
369 DL_UART_DIRECTION_TX_RX = (UART_CTL0_RXE_ENABLE | UART_CTL0_TXE_ENABLE),
371 DL_UART_DIRECTION_NONE = (UART_CTL0_RXE_DISABLE | UART_CTL0_TXE_DISABLE)
377 DL_UART_CLOCK_BUSCLK = UART_CLKSEL_BUSCLK_SEL_ENABLE,
379 DL_UART_CLOCK_MFCLK = UART_CLKSEL_MFCLK_SEL_ENABLE,
381 DL_UART_CLOCK_LFCLK = UART_CLKSEL_LFCLK_SEL_ENABLE
387 DL_UART_FLOW_CONTROL_RTS = UART_CTL0_RTSEN_ENABLE,
389 DL_UART_FLOW_CONTROL_CTS = UART_CTL0_CTSEN_ENABLE,
391 DL_UART_FLOW_CONTROL_RTS_CTS = (UART_CTL0_RTSEN_ENABLE | UART_CTL0_CTSEN_ENABLE),
393 DL_UART_FLOW_CONTROL_NONE = (UART_CTL0_CTSEN_DISABLE | UART_CTL0_RTSEN_DISABLE)
394 } DL_UART_FLOW_CONTROL;
399 DL_UART_RTS_ASSERT = UART_CTL0_RTS_SET,
401 DL_UART_RTS_DEASSERT = UART_CTL0_RTS_CLR
407 DL_UART_STOP_BITS_ONE = UART_LCRH_STP2_DISABLE,
409 DL_UART_STOP_BITS_TWO = UART_LCRH_STP2_ENABLE
415 DL_UART_TXD_OUT_LOW = UART_CTL0_TXD_OUT_LOW,
417 DL_UART_TXD_OUT_HIGH = UART_CTL0_TXD_OUT_HIGH
423 DL_UART_TX_FIFO_LEVEL_3_4_EMPTY = UART_IFLS_TXIFLSEL_LVL_3_4,
425 DL_UART_TX_FIFO_LEVEL_1_2_EMPTY = UART_IFLS_TXIFLSEL_LVL_1_2,
427 DL_UART_TX_FIFO_LEVEL_1_4_EMPTY = UART_IFLS_TXIFLSEL_LVL_1_4,
429 DL_UART_TX_FIFO_LEVEL_EMPTY = UART_IFLS_TXIFLSEL_LVL_EMPTY,
431 DL_UART_TX_FIFO_LEVEL_ONE_ENTRY = UART_IFLS_TXIFLSEL_LVL_1
432 } DL_UART_TX_FIFO_LEVEL;
438 DL_UART_RX_FIFO_LEVEL_ONE_ENTRY = UART_IFLS_RXIFLSEL_LVL_1,
440 DL_UART_RX_FIFO_LEVEL_FULL = UART_IFLS_RXIFLSEL_LVL_FULL,
442 DL_UART_RX_FIFO_LEVEL_3_4_FULL = UART_IFLS_RXIFLSEL_LVL_3_4,
444 DL_UART_RX_FIFO_LEVEL_1_2_FULL = UART_IFLS_RXIFLSEL_LVL_1_2,
446 DL_UART_RX_FIFO_LEVEL_1_4_FULL = UART_IFLS_RXIFLSEL_LVL_1_4,
447 } DL_UART_RX_FIFO_LEVEL;
452 DL_UART_IRDA_CLOCK_BAUD_RATE = UART_IRCTL_IRTXCLK_BRCLK,
454 DL_UART_IRDA_CLOCK_FUNCTIONAL = UART_IRCTL_IRTXCLK_BITCLK
455 } DL_UART_IRDA_CLOCK;
460 DL_UART_IRDA_POLARITY_LOW = UART_IRCTL_IRRXPL_LOW,
462 DL_UART_IRDA_POLARITY_HIGH = UART_IRCTL_IRRXPL_HIGH
463 } DL_UART_IRDA_POLARITY;
468 #define DL_UART_PULSE_WIDTH_3_16_BIT_PERIOD ((uint32_t) 0x00000000U) 473 DL_UART_CLOCK_DIVIDE_RATIO_1 = UART_CLKDIV_RATIO_DIV_BY_1,
475 DL_UART_CLOCK_DIVIDE_RATIO_2 = UART_CLKDIV_RATIO_DIV_BY_2,
477 DL_UART_CLOCK_DIVIDE_RATIO_3 = UART_CLKDIV_RATIO_DIV_BY_3,
479 DL_UART_CLOCK_DIVIDE_RATIO_4 = UART_CLKDIV_RATIO_DIV_BY_4,
481 DL_UART_CLOCK_DIVIDE_RATIO_5 = UART_CLKDIV_RATIO_DIV_BY_5,
483 DL_UART_CLOCK_DIVIDE_RATIO_6 = UART_CLKDIV_RATIO_DIV_BY_6,
485 DL_UART_CLOCK_DIVIDE_RATIO_7 = UART_CLKDIV_RATIO_DIV_BY_7,
487 DL_UART_CLOCK_DIVIDE_RATIO_8 = UART_CLKDIV_RATIO_DIV_BY_8
488 } DL_UART_CLOCK_DIVIDE_RATIO;
493 DL_UART_CLOCK_DIVIDE2_RATIO_1 = UART_CLKDIV2_RATIO_DIV_BY_1,
495 DL_UART_CLOCK_DIVIDE2_RATIO_2 = UART_CLKDIV2_RATIO_DIV_BY_2,
497 DL_UART_CLOCK_DIVIDE2_RATIO_3 = UART_CLKDIV2_RATIO_DIV_BY_3,
499 DL_UART_CLOCK_DIVIDE2_RATIO_4 = UART_CLKDIV2_RATIO_DIV_BY_4,
501 DL_UART_CLOCK_DIVIDE2_RATIO_5 = UART_CLKDIV2_RATIO_DIV_BY_5,
503 DL_UART_CLOCK_DIVIDE2_RATIO_6 = UART_CLKDIV2_RATIO_DIV_BY_6,
505 DL_UART_CLOCK_DIVIDE2_RATIO_7 = UART_CLKDIV2_RATIO_DIV_BY_7,
507 DL_UART_CLOCK_DIVIDE2_RATIO_8 = UART_CLKDIV2_RATIO_DIV_BY_8
508 } DL_UART_CLOCK_DIVIDE2_RATIO;
520 DL_UART_DIRECTION direction;
523 DL_UART_FLOW_CONTROL flowControl;
526 DL_UART_PARITY parity;
529 DL_UART_WORD_LENGTH wordLength;
532 DL_UART_STOP_BITS stopBits;
541 DL_UART_CLOCK clockSel;
544 DL_UART_CLOCK_DIVIDE_RATIO divideRatio;
546 } DL_UART_ClockConfig;
548 #ifdef __MSPM0_HAS_UART_MAIN__ 561 uint32_t controlWord;
567 uint32_t divideRatio;
572 uint32_t interruptFifoLevelSelectWord;
584 uint32_t lineControlRegisterWord;
589 uint32_t glitchFilterControlWord;
593 uint32_t interruptMask0;
597 uint32_t interruptMask1;
601 uint32_t interruptMask2;
606 } DL_UART_Main_backupConfig;
610 #ifdef __MSPM0_HAS_UART_EXTD__ 623 uint32_t controlWord;
629 uint32_t divideRatio;
635 uint32_t lineControlRegisterWord;
640 uint32_t interruptFifoLevelSelectWord;
651 uint32_t glitchFilterControlWord;
656 uint32_t linControlWord;
661 uint32_t irdaControlWord;
664 uint32_t addressMask;
671 uint32_t interruptMask0;
675 uint32_t interruptMask1;
679 uint32_t interruptMask2;
684 } DL_UART_Extend_backupConfig;
698 void DL_UART_init(UART_Regs *uart,
const DL_UART_Config *config);
711 __STATIC_INLINE
void DL_UART_enablePower(UART_Regs *uart)
713 uart->GPRCM.PWREN = (UART_PWREN_KEY_UNLOCK_W | UART_PWREN_ENABLE_ENABLE);
727 __STATIC_INLINE
void DL_UART_disablePower(UART_Regs *uart)
729 uart->GPRCM.PWREN = (UART_PWREN_KEY_UNLOCK_W | UART_PWREN_ENABLE_DISABLE);
748 __STATIC_INLINE
bool DL_UART_isPowerEnabled(
const UART_Regs *uart)
750 return ((uart->GPRCM.PWREN & UART_PWREN_ENABLE_MASK) ==
751 UART_PWREN_ENABLE_ENABLE);
759 __STATIC_INLINE
void DL_UART_reset(UART_Regs *uart)
762 (UART_RSTCTL_KEY_UNLOCK_W | UART_RSTCTL_RESETSTKYCLR_CLR |
763 UART_RSTCTL_RESETASSERT_ASSERT);
775 __STATIC_INLINE
bool DL_UART_isReset(
const UART_Regs *uart)
777 return ((uart->GPRCM.STAT & UART_GPRCM_STAT_RESETSTKY_MASK) ==
778 UART_GPRCM_STAT_RESETSTKY_RESET);
786 __STATIC_INLINE
void DL_UART_enable(UART_Regs *uart)
788 uart->CTL0 |= UART_CTL0_ENABLE_ENABLE;
802 __STATIC_INLINE
bool DL_UART_isEnabled(
const UART_Regs *uart)
804 return ((uart->CTL0 & UART_CTL0_ENABLE_MASK) == UART_CTL0_ENABLE_ENABLE);
812 __STATIC_INLINE
void DL_UART_disable(UART_Regs *uart)
814 uart->CTL0 &= ~(UART_CTL0_ENABLE_MASK);
825 void DL_UART_setClockConfig(
826 UART_Regs *uart,
const DL_UART_ClockConfig *config);
836 void DL_UART_getClockConfig(
837 const UART_Regs *uart, DL_UART_ClockConfig *config);
860 void DL_UART_configBaudRate(
861 UART_Regs *uart, uint32_t clockFreq, uint32_t baudRate);
875 __STATIC_INLINE
void DL_UART_setOversampling(
876 UART_Regs *uart, DL_UART_OVERSAMPLING_RATE rate)
891 __STATIC_INLINE DL_UART_OVERSAMPLING_RATE DL_UART_getOversampling(
892 const UART_Regs *uart)
894 uint32_t rate = uart->CTL0 & UART_CTL0_HSE_MASK;
896 return (DL_UART_OVERSAMPLING_RATE)(rate);
912 __STATIC_INLINE
void DL_UART_enableLoopbackMode(UART_Regs *uart)
914 uart->CTL0 |= UART_CTL0_LBE_ENABLE;
927 __STATIC_INLINE
bool DL_UART_isLoopbackModeEnabled(
const UART_Regs *uart)
929 return ((uart->CTL0 & UART_CTL0_LBE_MASK) == UART_CTL0_LBE_ENABLE);
945 __STATIC_INLINE
void DL_UART_disableLoopbackMode(UART_Regs *uart)
947 uart->CTL0 &= ~(UART_CTL0_LBE_MASK);
966 __STATIC_INLINE
void DL_UART_setDirection(
967 UART_Regs *uart, DL_UART_DIRECTION direction)
970 UART_CTL0_TXE_MASK | UART_CTL0_RXE_MASK);
982 __STATIC_INLINE DL_UART_DIRECTION DL_UART_getDirection(
const UART_Regs *uart)
985 uart->CTL0 & (UART_CTL0_TXE_MASK | UART_CTL0_RXE_MASK);
987 return (DL_UART_DIRECTION)(direction);
1015 __STATIC_INLINE
void DL_UART_enableMajorityVoting(UART_Regs *uart)
1017 uart->CTL0 |= UART_CTL0_MAJVOTE_ENABLE;
1030 __STATIC_INLINE
bool DL_UART_isMajorityVotingEnabled(
const UART_Regs *uart)
1032 return ((uart->CTL0 & UART_CTL0_MAJVOTE_MASK) == UART_CTL0_MAJVOTE_ENABLE);
1047 __STATIC_INLINE
void DL_UART_disableMajorityVoting(UART_Regs *uart)
1049 uart->CTL0 &= ~(UART_CTL0_MAJVOTE_MASK);
1066 __STATIC_INLINE
void DL_UART_enableMSBFirst(UART_Regs *uart)
1068 uart->CTL0 |= UART_CTL0_MSBFIRST_ENABLE;
1081 __STATIC_INLINE
bool DL_UART_isMSBFirstEnabled(
const UART_Regs *uart)
1084 (uart->CTL0 & UART_CTL0_MSBFIRST_MASK) == UART_CTL0_MSBFIRST_ENABLE);
1101 __STATIC_INLINE
void DL_UART_disableMSBFirst(UART_Regs *uart)
1103 uart->CTL0 &= ~(UART_CTL0_MSBFIRST_MASK);
1122 __STATIC_INLINE
void DL_UART_enableTransmitPinManualControl(UART_Regs *uart)
1124 uart->CTL0 |= UART_CTL0_TXD_OUT_EN_ENABLE;
1137 __STATIC_INLINE
bool DL_UART_isTransmitPinManualControlEnabled(
1138 const UART_Regs *uart)
1140 return ((uart->CTL0 & UART_CTL0_TXD_OUT_EN_MASK) ==
1141 UART_CTL0_TXD_OUT_EN_ENABLE);
1156 __STATIC_INLINE
void DL_UART_disableTransmitPinManualControl(UART_Regs *uart)
1158 uart->CTL0 &= ~(UART_CTL0_TXD_OUT_EN_MASK);
1182 __STATIC_INLINE
void DL_UART_setTransmitPinManualOutput(
1183 UART_Regs *uart, DL_UART_TXD_OUT txdOutVal)
1186 UART_CTL0_TXD_OUT_EN_ENABLE | (uint32_t) txdOutVal,
1187 UART_CTL0_TXD_OUT_EN_MASK | UART_CTL0_TXD_OUT_MASK);
1199 __STATIC_INLINE DL_UART_TXD_OUT DL_UART_getTransmitPinManualOutput(
1200 const UART_Regs *uart)
1202 uint32_t txdOutVal = uart->CTL0 & UART_CTL0_TXD_OUT_MASK;
1204 return (DL_UART_TXD_OUT)(txdOutVal);
1212 __STATIC_INLINE
void DL_UART_enableManchesterEncoding(UART_Regs *uart)
1214 uart->CTL0 |= UART_CTL0_MENC_ENABLE;
1222 __STATIC_INLINE
void DL_UART_disableManchesterEncoding(UART_Regs *uart)
1224 uart->CTL0 &= ~(UART_CTL0_MENC_MASK);
1237 __STATIC_INLINE
bool DL_UART_isManchesterEncodingEnabled(
const UART_Regs *uart)
1239 return ((uart->CTL0 & UART_CTL0_MENC_MASK) == UART_CTL0_MENC_ENABLE);
1254 __STATIC_INLINE
void DL_UART_setCommunicationMode(
1255 UART_Regs *uart, DL_UART_MODE mode)
1269 __STATIC_INLINE DL_UART_MODE DL_UART_getCommunicationMode(
1270 const UART_Regs *uart)
1272 uint32_t mode = uart->CTL0 & UART_CTL0_MODE_MASK;
1274 return (DL_UART_MODE)(mode);
1289 __STATIC_INLINE
void DL_UART_setFlowControl(
1290 UART_Regs *uart, DL_UART_FLOW_CONTROL config)
1293 UART_CTL0_RTSEN_MASK | UART_CTL0_CTSEN_MASK);
1306 __STATIC_INLINE DL_UART_FLOW_CONTROL DL_UART_getFlowControl(
1307 const UART_Regs *uart)
1310 uart->CTL0 & (UART_CTL0_RTSEN_MASK | UART_CTL0_CTSEN_MASK);
1312 return (DL_UART_FLOW_CONTROL)(config);
1336 __STATIC_INLINE
void DL_UART_setRTSOutput(UART_Regs *uart, DL_UART_RTS val)
1360 __STATIC_INLINE DL_UART_RTS DL_UART_getRTSOutput(
const UART_Regs *uart)
1362 uint32_t val = uart->CTL0 & UART_CTL0_RTS_MASK;
1364 return (DL_UART_RTS)(val);
1381 __STATIC_INLINE
void DL_UART_enableFIFOs(UART_Regs *uart)
1383 uart->CTL0 |= UART_CTL0_FEN_ENABLE;
1399 __STATIC_INLINE
void DL_UART_disableFIFOs(UART_Regs *uart)
1401 uart->CTL0 &= ~(UART_CTL0_FEN_MASK);
1414 __STATIC_INLINE
bool DL_UART_isFIFOsEnabled(
const UART_Regs *uart)
1416 return ((uart->CTL0 & UART_CTL0_FEN_MASK) == UART_CTL0_FEN_ENABLE);
1428 __STATIC_INLINE
void DL_UART_enableLINSendBreak(UART_Regs *uart)
1430 uart->LCRH |= UART_LCRH_BRK_ENABLE;
1441 __STATIC_INLINE
void DL_UART_disableLINSendBreak(UART_Regs *uart)
1443 uart->LCRH &= ~(UART_LCRH_BRK_MASK);
1456 __STATIC_INLINE
bool DL_UART_isLINSendBreakEnabled(
const UART_Regs *uart)
1458 return ((uart->LCRH & UART_LCRH_BRK_MASK) == UART_LCRH_BRK_ENABLE);
1471 __STATIC_INLINE
bool DL_UART_isParityEnabled(
const UART_Regs *uart)
1473 return ((uart->LCRH & UART_LCRH_PEN_MASK) == UART_LCRH_PEN_ENABLE);
1490 __STATIC_INLINE
void DL_UART_setParityMode(
1491 UART_Regs *uart, DL_UART_PARITY parity)
1494 (UART_LCRH_PEN_MASK | UART_LCRH_EPS_MASK | UART_LCRH_SPS_MASK));
1507 __STATIC_INLINE DL_UART_PARITY DL_UART_getParityMode(
const UART_Regs *uart)
1509 uint32_t parity = uart->LCRH & (UART_LCRH_PEN_MASK | UART_LCRH_EPS_MASK |
1510 UART_LCRH_SPS_MASK);
1512 return (DL_UART_PARITY)(parity);
1525 __STATIC_INLINE
void DL_UART_setStopBits(
1526 UART_Regs *uart, DL_UART_STOP_BITS numStopBits)
1529 &uart->LCRH, (uint32_t) numStopBits, UART_LCRH_STP2_MASK);
1541 __STATIC_INLINE DL_UART_STOP_BITS DL_UART_getStopBits(
const UART_Regs *uart)
1543 uint32_t numStopBits = uart->LCRH & UART_LCRH_STP2_MASK;
1545 return (DL_UART_STOP_BITS)(numStopBits);
1555 __STATIC_INLINE
void DL_UART_setWordLength(
1556 UART_Regs *uart, DL_UART_WORD_LENGTH wordLength)
1559 &uart->LCRH, (uint32_t) wordLength, UART_LCRH_WLEN_MASK);
1571 __STATIC_INLINE DL_UART_WORD_LENGTH DL_UART_getWordLength(
1572 const UART_Regs *uart)
1574 uint32_t wordLength = uart->LCRH & UART_LCRH_WLEN_MASK;
1576 return (DL_UART_WORD_LENGTH)(wordLength);
1587 __STATIC_INLINE
void DL_UART_enableSendIdlePattern(UART_Regs *uart)
1589 uart->LCRH |= UART_LCRH_SENDIDLE_ENABLE;
1597 __STATIC_INLINE
void DL_UART_disableSendIdlePattern(UART_Regs *uart)
1599 uart->LCRH &= ~(UART_LCRH_SENDIDLE_MASK);
1612 __STATIC_INLINE
bool DL_UART_isSendIdlePatternEnabled(
const UART_Regs *uart)
1615 (uart->LCRH & UART_LCRH_SENDIDLE_MASK) == UART_LCRH_SENDIDLE_ENABLE);
1628 __STATIC_INLINE
void DL_UART_setExternalDriverSetup(
1629 UART_Regs *uart, uint32_t val)
1632 UART_LCRH_EXTDIR_SETUP_MASK);
1645 __STATIC_INLINE uint32_t DL_UART_getExternalDriverSetup(
const UART_Regs *uart)
1647 return ((uart->LCRH &
1648 UART_LCRH_EXTDIR_SETUP_MASK >> UART_LCRH_EXTDIR_SETUP_OFS));
1664 __STATIC_INLINE
void DL_UART_setExternalDriverHold(
1665 UART_Regs *uart, uint32_t val)
1668 UART_LCRH_EXTDIR_HOLD_MASK);
1681 __STATIC_INLINE uint32_t DL_UART_getExternalDriverHold(
const UART_Regs *uart)
1684 uart->LCRH & UART_LCRH_EXTDIR_HOLD_MASK >> UART_LCRH_EXTDIR_HOLD_OFS));
1706 __STATIC_INLINE
bool DL_UART_isBusy(
const UART_Regs *uart)
1708 return ((uart->STAT & UART_STAT_BUSY_MASK) == UART_STAT_BUSY_SET);
1726 __STATIC_INLINE
bool DL_UART_isRXFIFOEmpty(
const UART_Regs *uart)
1728 return ((uart->STAT & UART_STAT_RXFE_MASK) == UART_STAT_RXFE_SET);
1747 __STATIC_INLINE
bool DL_UART_isRXFIFOFull(
const UART_Regs *uart)
1749 return ((uart->STAT & UART_STAT_RXFF_MASK) == UART_STAT_RXFF_SET);
1767 __STATIC_INLINE
bool DL_UART_isTXFIFOEmpty(
const UART_Regs *uart)
1769 return ((uart->STAT & UART_STAT_TXFE_MASK) == UART_STAT_TXFE_SET);
1788 __STATIC_INLINE
bool DL_UART_isTXFIFOFull(
const UART_Regs *uart)
1790 return ((uart->STAT & UART_STAT_TXFF_MASK) == UART_STAT_TXFF_SET);
1805 __STATIC_INLINE
bool DL_UART_isClearToSend(
const UART_Regs *uart)
1807 return ((uart->STAT & UART_STAT_CTS_MASK) == UART_STAT_CTS_SET);
1826 __STATIC_INLINE
bool DL_UART_isIdleModeDetected(
const UART_Regs *uart)
1828 return ((uart->STAT & UART_STAT_IDLE_MASK) == UART_STAT_IDLE_SET);
1847 __STATIC_INLINE
void DL_UART_setTXFIFOThreshold(
1848 UART_Regs *uart, DL_UART_TX_FIFO_LEVEL threshold)
1851 &uart->IFLS, (uint32_t) threshold, UART_IFLS_TXIFLSEL_MASK);
1863 __STATIC_INLINE DL_UART_TX_FIFO_LEVEL DL_UART_getTXFIFOThreshold(
1864 const UART_Regs *uart)
1866 uint32_t threshold = uart->IFLS & UART_IFLS_TXIFLSEL_MASK;
1868 return (DL_UART_TX_FIFO_LEVEL)(threshold);
1883 __STATIC_INLINE
void DL_UART_setRXFIFOThreshold(
1884 UART_Regs *uart, DL_UART_RX_FIFO_LEVEL threshold)
1887 &uart->IFLS, (uint32_t) threshold, UART_IFLS_RXIFLSEL_MASK);
1899 __STATIC_INLINE DL_UART_RX_FIFO_LEVEL DL_UART_getRXFIFOThreshold(
1900 const UART_Regs *uart)
1902 uint32_t threshold = uart->IFLS & UART_IFLS_RXIFLSEL_MASK;
1904 return (DL_UART_RX_FIFO_LEVEL)(threshold);
1918 __STATIC_INLINE
void DL_UART_setRXInterruptTimeout(
1919 UART_Regs *uart, uint32_t timeout)
1922 &uart->IFLS, timeout << UART_IFLS_RXTOSEL_OFS, UART_IFLS_RXTOSEL_MASK);
1935 __STATIC_INLINE uint32_t DL_UART_getRXInterruptTimeout(
const UART_Regs *uart)
1937 return ((uart->IFLS & UART_IFLS_RXTOSEL_MASK) >> UART_IFLS_RXTOSEL_OFS);
1949 __STATIC_INLINE uint32_t DL_UART_getIntegerBaudRateDivisor(
1950 const UART_Regs *uart)
1952 return (uart->IBRD & UART_IBRD_DIVINT_MASK);
1964 __STATIC_INLINE uint32_t DL_UART_getFractionalBaudRateDivisor(
1965 const UART_Regs *uart)
1967 return (uart->FBRD & UART_FBRD_DIVFRAC_MASK);
1983 __STATIC_INLINE
void DL_UART_setBaudRateDivisor(
1984 UART_Regs *uart, uint32_t integerDivisor, uint32_t fractionalDivisor)
1988 &uart->FBRD, fractionalDivisor, UART_FBRD_DIVFRAC_MASK);
1994 &uart->LCRH, (uart->LCRH & UART_LCRH_BRK_MASK), UART_LCRH_BRK_MASK);
2016 __STATIC_INLINE
void DL_UART_setIrDABaudRateDivisor(UART_Regs *uart,
2017 uint32_t integerDivisor, uint32_t fractionalDivisor,
2018 DL_UART_CLOCK_DIVIDE2_RATIO clkDivisor2)
2021 (integerDivisor / ((uint32_t) clkDivisor2 + 1)),
2022 UART_IBRD_DIVINT_MASK);
2024 &uart->FBRD, fractionalDivisor, UART_FBRD_DIVFRAC_MASK);
2030 &uart->LCRH, (uart->LCRH & UART_LCRH_BRK_MASK), UART_LCRH_BRK_MASK);
2046 __STATIC_INLINE
void DL_UART_setDigitalPulseWidth(
2047 UART_Regs *uart, uint32_t pulseWidth)
2065 __STATIC_INLINE uint32_t DL_UART_getDigitalPulseWidth(
const UART_Regs *uart)
2067 return (uart->GFCTL & UART_GFCTL_DGFSEL_MASK);
2088 __STATIC_INLINE
void DL_UART_transmitData(UART_Regs *uart, uint8_t data)
2090 uart->TXDATA = data;
2111 __STATIC_INLINE uint8_t DL_UART_receiveData(
const UART_Regs *uart)
2113 return ((uint8_t)(uart->RXDATA & UART_RXDATA_DATA_MASK));
2130 __STATIC_INLINE uint32_t DL_UART_getErrorStatus(
2131 const UART_Regs *uart, uint32_t errorMask)
2133 return (uart->RXDATA & errorMask);
2145 __STATIC_INLINE
void DL_UART_setLINCounterValue(
2146 UART_Regs *uart, uint16_t value)
2164 __STATIC_INLINE uint16_t DL_UART_getLINCounterValue(
const UART_Regs *uart)
2166 return ((uint16_t)(uart->LINCNT & UART_LINCNT_VALUE_MASK));
2176 __STATIC_INLINE
void DL_UART_enableLINCounter(UART_Regs *uart)
2178 uart->LINCTL |= UART_LINCTL_CTRENA_ENABLE;
2191 __STATIC_INLINE
bool DL_UART_isLINCounterEnabled(
const UART_Regs *uart)
2194 (uart->LINCTL & UART_LINCTL_CTRENA_MASK) == UART_LINCTL_CTRENA_ENABLE);
2204 __STATIC_INLINE
void DL_UART_disableLINCounter(UART_Regs *uart)
2206 uart->LINCTL &= ~(UART_LINCTL_CTRENA_MASK);
2221 __STATIC_INLINE
void DL_UART_enableLINCounterClearOnFallingEdge(
2224 uart->LINCTL |= UART_LINCTL_ZERONE_ENABLE;
2237 __STATIC_INLINE
bool DL_UART_isLINCounterClearOnFallingEdge(
2238 const UART_Regs *uart)
2241 (uart->LINCTL & UART_LINCTL_ZERONE_MASK) == UART_LINCTL_ZERONE_ENABLE);
2249 __STATIC_INLINE
void DL_UART_disableLINCounterClearOnFallingEdge(
2252 uart->LINCTL &= ~(UART_LINCTL_ZERONE_MASK);
2265 __STATIC_INLINE
void DL_UART_enableLINCountWhileLow(UART_Regs *uart)
2267 uart->LINCTL |= UART_LINCTL_CNTRXLOW_ENABLE;
2280 __STATIC_INLINE
bool DL_UART_isLINCountWhileLowEnabled(
const UART_Regs *uart)
2282 return ((uart->LINCTL & UART_LINCTL_CNTRXLOW_MASK) ==
2283 UART_LINCTL_CNTRXLOW_ENABLE);
2293 __STATIC_INLINE
void DL_UART_disableLINCountWhileLow(UART_Regs *uart)
2295 uart->LINCTL &= ~(UART_LINCTL_CNTRXLOW_MASK);
2310 __STATIC_INLINE
void DL_UART_enableLINFallingEdgeCapture(UART_Regs *uart)
2313 UART_LINCTL_LINC0CAP_ENABLE | UART_LINCTL_LINC0_MATCH_DISABLE,
2314 UART_LINCTL_LINC0CAP_MASK | UART_LINCTL_LINC0_MATCH_MASK);
2327 __STATIC_INLINE
bool DL_UART_isLINFallingEdgeCaptureEnabled(
2328 const UART_Regs *uart)
2330 return ((uart->LINCTL & UART_LINCTL_LINC0CAP_MASK) ==
2331 UART_LINCTL_LINC0CAP_ENABLE);
2339 __STATIC_INLINE
void DL_UART_disableLINFallingEdgeCapture(UART_Regs *uart)
2341 uart->LINCTL &= ~(UART_LINCTL_LINC0CAP_MASK);
2353 __STATIC_INLINE
void DL_UART_enableLINRisingEdgeCapture(UART_Regs *uart)
2355 uart->LINCTL |= UART_LINCTL_LINC1CAP_ENABLE;
2368 __STATIC_INLINE
bool DL_UART_isLINRisingEdgeCaptureEnabled(
2369 const UART_Regs *uart)
2371 return ((uart->LINCTL & UART_LINCTL_LINC1CAP_MASK) ==
2372 UART_LINCTL_LINC1CAP_ENABLE);
2380 __STATIC_INLINE
void DL_UART_disableLINRisingEdgeCapture(UART_Regs *uart)
2382 uart->LINCTL &= ~(UART_LINCTL_LINC1CAP_MASK);
2393 __STATIC_INLINE
void DL_UART_enableLINCounterCompareMatch(UART_Regs *uart)
2396 UART_LINCTL_LINC0_MATCH_ENABLE | UART_LINCTL_LINC0CAP_DISABLE,
2397 UART_LINCTL_LINC0CAP_MASK | UART_LINCTL_LINC0_MATCH_MASK);
2408 __STATIC_INLINE
void DL_UART_enableLINSyncFieldValidationCounterControl(
2412 UART_LINCTL_LINC0CAP_ENABLE | UART_LINCTL_LINC1CAP_ENABLE |
2413 UART_LINCTL_ZERONE_ENABLE | UART_LINCTL_CTRENA_ENABLE,
2414 UART_LINCTL_LINC0CAP_MASK | UART_LINCTL_LINC1CAP_MASK |
2415 UART_LINCTL_ZERONE_MASK | UART_LINCTL_CTRENA_MASK);
2426 __STATIC_INLINE
void DL_UART_enableLINReceptionCountControl(UART_Regs *uart)
2429 UART_LINCTL_CNTRXLOW_ENABLE | UART_LINCTL_ZERONE_ENABLE |
2430 UART_LINCTL_CTRENA_ENABLE,
2431 UART_LINCTL_CNTRXLOW_MASK | UART_LINCTL_ZERONE_MASK |
2432 UART_LINCTL_CTRENA_MASK);
2445 __STATIC_INLINE
bool DL_UART_isLINCounterCompareMatchEnabled(
2446 const UART_Regs *uart)
2448 return ((uart->LINCTL & UART_LINCTL_LINC0_MATCH_MASK) ==
2449 UART_LINCTL_LINC0_MATCH_ENABLE);
2457 __STATIC_INLINE
void DL_UART_disableLINCounterCompareMatch(UART_Regs *uart)
2459 uart->LINCTL &= ~(UART_LINCTL_LINC0_MATCH_MASK);
2474 __STATIC_INLINE
void DL_UART_setLINCounterCompareValue(
2475 UART_Regs *uart, uint16_t value)
2499 __STATIC_INLINE uint16_t DL_UART_getLINFallingEdgeCaptureValue(
2500 const UART_Regs *uart)
2502 return ((uint16_t)(uart->LINC0 & UART_LINC0_DATA_MASK));
2519 __STATIC_INLINE uint16_t DL_UART_getLINRisingEdgeCaptureValue(
2520 const UART_Regs *uart)
2522 return ((uint16_t)(uart->LINC1 & UART_LINC1_DATA_MASK));
2530 __STATIC_INLINE
void DL_UART_enableIrDAMode(UART_Regs *uart)
2532 uart->IRCTL |= UART_IRCTL_IREN_ENABLE;
2545 __STATIC_INLINE
bool DL_UART_isIrDAModeEnabled(
const UART_Regs *uart)
2547 return ((uart->IRCTL & UART_IRCTL_IREN_MASK) == UART_IRCTL_IREN_ENABLE);
2555 __STATIC_INLINE
void DL_UART_disableIrDAMode(UART_Regs *uart)
2557 uart->IRCTL &= ~(UART_IRCTL_IREN_MASK);
2567 __STATIC_INLINE
void DL_UART_setIrDATXPulseClockSelect(
2568 UART_Regs *uart, DL_UART_IRDA_CLOCK uartClock)
2571 &uart->IRCTL, (uint32_t) uartClock, UART_IRCTL_IRTXCLK_MASK);
2584 __STATIC_INLINE DL_UART_IRDA_CLOCK DL_UART_getIrDATXPulseClockSelect(
2585 const UART_Regs *uart)
2587 uint32_t uartClock = uart->IRCTL & UART_IRCTL_IRTXCLK_MASK;
2589 return (DL_UART_IRDA_CLOCK)(uartClock);
2605 void DL_UART_configIrDAMode(UART_Regs *uart, DL_UART_IRDA_POLARITY polarity,
2606 uint32_t pulseLength, DL_UART_IRDA_CLOCK irdaClk);
2625 void DL_UART_setIrDAPulseLength(
2626 UART_Regs *uart, uint32_t pulseLength, DL_UART_IRDA_CLOCK irdaClk);
2637 __STATIC_INLINE uint32_t DL_UART_getIrDATXPulseLength(
const UART_Regs *uart)
2639 return (uart->IRCTL & UART_IRCTL_IRTXPL_MASK);
2649 __STATIC_INLINE
void DL_UART_setIrDARXPulsePolarity(
2650 UART_Regs *uart, DL_UART_IRDA_POLARITY polarity)
2653 &uart->IRCTL, (uint32_t) polarity, UART_IRCTL_IRRXPL_MASK);
2665 __STATIC_INLINE DL_UART_IRDA_POLARITY DL_UART_getIrDARXPulsePolarity(
2666 const UART_Regs *uart)
2668 uint32_t polarity = uart->IRCTL & UART_IRCTL_IRRXPL_MASK;
2670 return (DL_UART_IRDA_POLARITY)(polarity);
2689 __STATIC_INLINE
void DL_UART_setAddressMask(
2690 UART_Regs *uart, uint32_t addressMask)
2715 __STATIC_INLINE uint32_t DL_UART_getAddressMask(
const UART_Regs *uart)
2717 return (uart->AMASK & UART_AMASK_VALUE_MASK);
2733 __STATIC_INLINE
void DL_UART_setAddress(UART_Regs *uart, uint32_t address)
2755 __STATIC_INLINE uint32_t DL_UART_getAddress(
const UART_Regs *uart)
2757 return (uart->ADDR & UART_ADDR_VALUE_MASK);
2768 __STATIC_INLINE
void DL_UART_enableInterrupt(
2769 UART_Regs *uart, uint32_t interruptMask)
2771 uart->CPU_INT.IMASK |= interruptMask;
2782 __STATIC_INLINE
void DL_UART_disableInterrupt(
2783 UART_Regs *uart, uint32_t interruptMask)
2785 uart->CPU_INT.IMASK &= ~(interruptMask);
2800 __STATIC_INLINE uint32_t DL_UART_getEnabledInterrupts(
2801 const UART_Regs *uart, uint32_t interruptMask)
2803 return (uart->CPU_INT.IMASK & interruptMask);
2823 __STATIC_INLINE uint32_t DL_UART_getEnabledInterruptStatus(
2824 const UART_Regs *uart, uint32_t interruptMask)
2826 return (uart->CPU_INT.MIS & interruptMask);
2844 __STATIC_INLINE uint32_t DL_UART_getRawInterruptStatus(
2845 const UART_Regs *uart, uint32_t interruptMask)
2847 return (uart->CPU_INT.RIS & interruptMask);
2863 __STATIC_INLINE DL_UART_IIDX DL_UART_getPendingInterrupt(
const UART_Regs *uart)
2865 return (DL_UART_IIDX)(uart->CPU_INT.IIDX);
2876 __STATIC_INLINE
void DL_UART_clearInterruptStatus(
2877 UART_Regs *uart, uint32_t interruptMask)
2879 uart->CPU_INT.ICLR = interruptMask;
2899 __STATIC_INLINE
void DL_UART_changeConfig(UART_Regs *uart)
2901 DL_UART_disable(uart);
2902 while (DL_UART_isBusy(uart)) {
2905 DL_UART_disableFIFOs(uart);
2913 __STATIC_INLINE
void DL_UART_enableAnalogGlitchFilter(UART_Regs *uart)
2915 uart->GFCTL |= UART_GFCTL_AGFEN_ENABLE;
2923 __STATIC_INLINE
void DL_UART_disableAnalogGlitchFilter(UART_Regs *uart)
2925 uart->GFCTL &= ~(UART_GFCTL_AGFEN_MASK);
2936 __STATIC_INLINE
bool DL_UART_isAnalogGlitchFilterEnabled(
const UART_Regs *uart)
2938 return ((uart->GFCTL & UART_GFCTL_AGFEN_MASK) == UART_GFCTL_AGFEN_ENABLE);
2949 __STATIC_INLINE
void DL_UART_enableGlitchFilterChaining(UART_Regs *uart)
2951 uart->GFCTL |= UART_GFCTL_CHAIN_ENABLED;
2962 __STATIC_INLINE
void DL_UART_disableGlitchFilterChaining(UART_Regs *uart)
2964 uart->GFCTL &= ~(UART_GFCTL_CHAIN_MASK);
2975 __STATIC_INLINE
bool DL_UART_isGlitchFilterChainingEnabled(
2976 const UART_Regs *uart)
2978 return ((uart->GFCTL & UART_GFCTL_CHAIN_MASK) == UART_GFCTL_CHAIN_ENABLED);
2993 __STATIC_INLINE
void DL_UART_setAnalogPulseWidth(
2994 UART_Regs *uart, DL_UART_PULSE_WIDTH pulseWidth)
2997 &uart->GFCTL, (uint32_t) pulseWidth, UART_GFCTL_AGFSEL_MASK);
3015 __STATIC_INLINE DL_UART_PULSE_WIDTH DL_UART_getAnalogPulseWidth(
3016 const UART_Regs *uart)
3018 uint32_t pulseWidth = uart->GFCTL & UART_GFCTL_AGFSEL_MASK;
3020 return (DL_UART_PULSE_WIDTH)(pulseWidth);
3038 void DL_UART_transmitDataBlocking(UART_Regs *uart, uint8_t data);
3060 uint8_t DL_UART_receiveDataBlocking(
const UART_Regs *uart);
3082 bool DL_UART_transmitDataCheck(UART_Regs *uart, uint8_t data);
3108 bool DL_UART_receiveDataCheck(
const UART_Regs *uart, uint8_t *buffer);
3119 uint32_t DL_UART_drainRXFIFO(
3120 const UART_Regs *uart, uint8_t *buffer, uint32_t maxCount);
3134 uint32_t DL_UART_fillTXFIFO(
3135 UART_Regs *uart,
const uint8_t *buffer, uint32_t count);
3152 __STATIC_INLINE
void DL_UART_enableDMAReceiveEvent(
3153 UART_Regs *uart, uint32_t interrupt)
3155 uart->DMA_TRIG_RX.IMASK = interrupt;
3171 __STATIC_INLINE
void DL_UART_enableDMATransmitEvent(UART_Regs *uart)
3173 uart->DMA_TRIG_TX.IMASK = UART_DMA_TRIG_TX_IMASK_TXINT_SET;
3189 __STATIC_INLINE
void DL_UART_disableDMAReceiveEvent(
3190 UART_Regs *uart, uint32_t interrupt)
3192 uart->DMA_TRIG_RX.IMASK &= ~(interrupt);
3208 __STATIC_INLINE
void DL_UART_disableDMATransmitEvent(UART_Regs *uart)
3210 uart->DMA_TRIG_TX.IMASK = UART_DMA_TRIG_TX_IMASK_TXINT_CLR;
3228 __STATIC_INLINE uint32_t DL_UART_getEnabledDMAReceiveEvent(
3229 const UART_Regs *uart, uint32_t interruptMask)
3231 return (uart->DMA_TRIG_RX.IMASK & interruptMask);
3247 __STATIC_INLINE uint32_t DL_UART_getEnabledDMATransmitEvent(
3248 const UART_Regs *uart)
3250 return (uart->DMA_TRIG_TX.IMASK & UART_DMA_TRIG_TX_IMASK_TXINT_MASK);
3272 __STATIC_INLINE uint32_t DL_UART_getEnabledDMAReceiveEventStatus(
3273 const UART_Regs *uart, uint32_t interruptMask)
3275 return (uart->DMA_TRIG_RX.MIS & interruptMask);
3295 __STATIC_INLINE uint32_t DL_UART_getEnabledDMATransmitEventStatus(
3296 const UART_Regs *uart)
3298 return (uart->DMA_TRIG_TX.MIS & UART_DMA_TRIG_TX_MIS_TXINT_MASK);
3318 __STATIC_INLINE uint32_t DL_UART_getRawDMAReceiveEventStatus(
3319 const UART_Regs *uart, uint32_t interruptMask)
3321 return (uart->DMA_TRIG_RX.RIS & interruptMask);
3339 __STATIC_INLINE uint32_t DL_UART_getRawDMATransmitEventStatus(
3340 const UART_Regs *uart)
3342 return (uart->DMA_TRIG_TX.RIS & UART_DMA_TRIG_TX_RIS_TXINT_MASK);
3361 __STATIC_INLINE DL_UART_DMA_IIDX_RX DL_UART_getPendingDMAReceiveEvent(
3362 const UART_Regs *uart)
3364 return (DL_UART_DMA_IIDX_RX)(uart->DMA_TRIG_RX.IIDX);
3383 __STATIC_INLINE DL_UART_DMA_IIDX_TX DL_UART_getPendingDMATransmitEvent(
3384 const UART_Regs *uart)
3386 return (DL_UART_DMA_IIDX_TX)(uart->DMA_TRIG_TX.IIDX);
3400 __STATIC_INLINE
void DL_UART_clearDMAReceiveEventStatus(
3401 UART_Regs *uart, uint32_t interruptMask)
3403 uart->DMA_TRIG_RX.ICLR = interruptMask;
3416 __STATIC_INLINE
void DL_UART_clearDMATransmitEventStatus(UART_Regs *uart)
3418 uart->DMA_TRIG_TX.ICLR = UART_DMA_TRIG_TX_ICLR_TXINT_CLR;
3430 __STATIC_INLINE
void DL_UART_setClockDivider2(
3431 UART_Regs *uart, DL_UART_CLOCK_DIVIDE2_RATIO ratio)
3433 uart->CLKDIV2 = (uint32_t) ratio;
3449 __STATIC_INLINE DL_UART_CLOCK_DIVIDE2_RATIO DL_UART_getClockDivider2(
3450 const UART_Regs *uart)
3452 uint32_t ratio = uart->CLKDIV2;
3453 return (DL_UART_CLOCK_DIVIDE2_RATIO) ratio;
3455 #ifdef __MSPM0_HAS_UART_MAIN__ 3473 bool DL_UART_Main_saveConfiguration(
3474 const UART_Regs *uart, DL_UART_Main_backupConfig *ptr);
3492 bool DL_UART_Main_restoreConfiguration(
3493 UART_Regs *uart, DL_UART_Main_backupConfig *ptr);
3497 #ifdef __MSPM0_HAS_UART_EXTD__ 3516 bool DL_UART_Extend_saveConfiguration(
3517 const UART_Regs *uart, DL_UART_Extend_backupConfig *ptr);
3536 bool DL_UART_Extend_restoreConfiguration(
3537 UART_Regs *uart, DL_UART_Extend_backupConfig *ptr);
3549 "TI highly recommends accessing uart with dl_uart_main, dl_uart_extend.h only." __STATIC_INLINE void DL_Common_updateReg(volatile uint32_t *reg, uint32_t val, uint32_t mask)
Writes value to specified register - retaining bits unaffected by mask.
Definition: dl_common.h:63