101 #include <ti/csl/cslr_uart.h> 108 #define TX_FIFO_SIZE (64) 111 #define RX_FIFO_SIZE (64) 117 #define UART16x_OPER_MODE (UART_MDR1_MODE_SELECT_UART16X) 118 #define UART_SIR_OPER_MODE (UART_MDR1_MODE_SELECT_SIR) 119 #define UART16x_AUTO_BAUD_OPER_MODE (UART_MDR1_MODE_SELECT_UART16XAUTO) 120 #define UART13x_OPER_MODE (UART_MDR1_MODE_SELECT_UART13X) 121 #define UART_MIR_OPER_MODE (UART_MDR1_MODE_SELECT_MIR) 122 #define UART_FIR_OPER_MODE (UART_MDR1_MODE_SELECT_FIR) 123 #define UART_CIR_OPER_MODE (UART_MDR1_MODE_SELECT_CIR) 124 #define UART_DISABLED_MODE (UART_MDR1_MODE_SELECT_MASK) 131 #define UART_TIMEOUT_COUNTER_RESET (0U) 132 #define UART_TIMEOUT_COUNTER_NO_CHANGE (1U) 141 #define UART_BREAK_COND_DISABLE (UART_LCR_BREAK_EN_BREAK_EN_VALUE_0 \ 143 UART_LCR_BREAK_EN_SHIFT) 144 #define UART_BREAK_COND_ENABLE (UART_LCR_BREAK_EN_BREAK_EN_VALUE_1 \ 146 UART_LCR_BREAK_EN_SHIFT) 153 #define UART_PARITY_REPR_1 (UART_LCR_PARITY_TYPE2_MASK | \ 155 UART_LCR_PARITY_TYPE1_PARITY_TYPE1_VALUE_0 \ 157 UART_LCR_PARITY_TYPE1_SHIFT) | \ 158 UART_LCR_PARITY_EN_MASK) 160 #define UART_PARITY_REPR_0 (UART_LCR_PARITY_TYPE2_MASK | \ 162 UART_LCR_PARITY_TYPE1_PARITY_TYPE1_VALUE_1 \ 164 UART_LCR_PARITY_TYPE1_SHIFT) | \ 165 UART_LCR_PARITY_EN_MASK) 167 #define UART_ODD_PARITY (( \ 168 UART_LCR_PARITY_TYPE1_PARITY_TYPE1_VALUE_0 \ 170 UART_LCR_PARITY_TYPE1_SHIFT) | \ 171 UART_LCR_PARITY_EN_MASK) 173 #define UART_EVEN_PARITY (( \ 174 UART_LCR_PARITY_TYPE1_PARITY_TYPE1_VALUE_1 \ 176 UART_LCR_PARITY_TYPE1_SHIFT) | \ 177 UART_LCR_PARITY_EN_MASK) 179 #define UART_PARITY_NONE ( \ 180 UART_LCR_PARITY_EN_PARITY_EN_VALUE_0 << \ 181 UART_LCR_PARITY_EN_SHIFT) 185 #define UART_FRAME_NUM_STB_1 (UART_LCR_NB_STOP_NB_STOP_VALUE_0 \ 187 UART_LCR_NB_STOP_SHIFT) 188 #define UART_FRAME_NUM_STB_1_5_2 (UART_LCR_NB_STOP_NB_STOP_VALUE_1 \ 190 UART_LCR_NB_STOP_SHIFT) 194 #define UART_FRAME_WORD_LENGTH_5 ( \ 195 UART_LCR_CHAR_LENGTH_CHAR_LENGTH_VALUE_0) 196 #define UART_FRAME_WORD_LENGTH_6 ( \ 197 UART_LCR_CHAR_LENGTH_CHAR_LENGTH_VALUE_1) 198 #define UART_FRAME_WORD_LENGTH_7 ( \ 199 UART_LCR_CHAR_LENGTH_CHAR_LENGTH_VALUE_2) 200 #define UART_FRAME_WORD_LENGTH_8 ( \ 201 UART_LCR_CHAR_LENGTH_CHAR_LENGTH_VALUE_3) 212 #define UART_FCR_RX_TRIG_LVL_8 (UART_FCR_RX_FIFO_TRIG_8CHAR << \ 213 UART_FCR_RX_FIFO_TRIG_SHIFT) 214 #define UART_FCR_RX_TRIG_LVL_16 (UART_FCR_RX_FIFO_TRIG_16CHAR << \ 215 UART_FCR_RX_FIFO_TRIG_SHIFT) 216 #define UART_FCR_RX_TRIG_LVL_56 (UART_FCR_RX_FIFO_TRIG_56CHAR << \ 217 UART_FCR_RX_FIFO_TRIG_SHIFT) 218 #define UART_FCR_RX_TRIG_LVL_60 (UART_FCR_RX_FIFO_TRIG_60CHAR << \ 219 UART_FCR_RX_FIFO_TRIG_SHIFT) 223 #define UART_FCR_TX_TRIG_LVL_8 (UART_FCR_TX_FIFO_TRIG_8SPACES << \ 224 UART_FCR_TX_FIFO_TRIG_SHIFT) 225 #define UART_FCR_TX_TRIG_LVL_16 (UART_FCR_TX_FIFO_TRIG_16SPACES << \ 226 UART_FCR_TX_FIFO_TRIG_SHIFT) 227 #define UART_FCR_TX_TRIG_LVL_32 (UART_FCR_TX_FIFO_TRIG_32SPACES << \ 228 UART_FCR_TX_FIFO_TRIG_SHIFT) 229 #define UART_FCR_TX_TRIG_LVL_56 (UART_FCR_TX_FIFO_TRIG_56SPACES << \ 230 UART_FCR_TX_FIFO_TRIG_SHIFT) 234 #define UART_DMA_MODE_0_ENABLE ( \ 235 UART_SCR_DMA_MODE_2_DMA_MODE_2_VALUE_0) 236 #define UART_DMA_MODE_1_ENABLE ( \ 237 UART_SCR_DMA_MODE_2_DMA_MODE_2_VALUE_1) 238 #define UART_DMA_MODE_2_ENABLE ( \ 239 UART_SCR_DMA_MODE_2_DMA_MODE_2_VALUE_2) 240 #define UART_DMA_MODE_3_ENABLE ( \ 241 UART_SCR_DMA_MODE_2_DMA_MODE_2_VALUE_3) 247 #define UART_DMA_EN_PATH_FCR ( \ 248 UART_SCR_DMA_MODE_CTL_DMA_MODE_CTL_VALUE_0) 249 #define UART_DMA_EN_PATH_SCR ( \ 250 UART_SCR_DMA_MODE_CTL_DMA_MODE_CTL_VALUE_1) 260 #define UART_INT_CTS (UART_IER_CTS_IT_MASK) 261 #define UART_INT_RTS (UART_IER_RTS_IT_MASK) 262 #define UART_INT_XOFF (UART_IER_XOFF_IT_MASK) 263 #define UART_INT_SLEEPMODE (UART_IER_SLEEP_MODE_MASK) 264 #define UART_INT_MODEM_STAT (UART_IER_MODEM_STS_IT_MASK) 265 #define UART_INT_LINE_STAT (UART_IER_LINE_STS_IT_MASK) 266 #define UART_INT_THR (UART_IER_THR_IT_MASK) 267 #define UART_INT_RHR_CTI (UART_IER_RHR_IT_MASK) 269 #define UART_INT2_RX_EMPTY (UART_IER2_EN_RXFIFO_EMPTY_MASK) 270 #define UART_INT2_TX_EMPTY (UART_IER2_EN_TXFIFO_EMPTY_MASK) 280 #define UART_FIFO_PE_FE_BI_DETECTED (UART_LSR_RX_FIFO_STS_MASK) 281 #define UART_BREAK_DETECTED_ERROR (UART_LSR_RX_BI_MASK) 282 #define UART_FRAMING_ERROR (UART_LSR_RX_FE_MASK) 283 #define UART_PARITY_ERROR (UART_LSR_RX_PE_MASK) 284 #define UART_OVERRUN_ERROR (UART_LSR_RX_OE_MASK) 294 #define UART_INTID_MODEM_STAT (UART_IIR_IT_TYPE_IT_TYPE_VALUE_0 \ 296 UART_IIR_IT_TYPE_SHIFT) 297 #define UART_INTID_TX_THRES_REACH (UART_IIR_IT_TYPE_IT_TYPE_VALUE_1 \ 299 UART_IIR_IT_TYPE_SHIFT) 300 #define UART_INTID_RX_THRES_REACH (UART_IIR_IT_TYPE_IT_TYPE_VALUE_2 \ 302 UART_IIR_IT_TYPE_SHIFT) 303 #define UART_INTID_RX_LINE_STAT_ERROR (UART_IIR_IT_TYPE_IT_TYPE_VALUE_3 \ 305 UART_IIR_IT_TYPE_SHIFT) 306 #define UART_INTID_CHAR_TIMEOUT (UART_IIR_IT_TYPE_IT_TYPE_VALUE_6 \ 308 UART_IIR_IT_TYPE_SHIFT) 309 #define UART_INTID_XOFF_SPEC_CHAR_DETECT (UART_IIR_IT_TYPE_IT_TYPE_VALUE_8 \ 311 UART_IIR_IT_TYPE_SHIFT) 312 #define UART_INTID_MODEM_SIG_STATE_CHANGE (UART_IIR_IT_TYPE_IT_TYPE_VALUE_10 \ 314 UART_IIR_IT_TYPE_SHIFT) 317 #define UART_INT_PENDING (0U) 318 #define UART_N0_INT_PENDING (1U) 328 #define UART_AUTO_CTS_ENABLE ((uint32_t) ( \ 329 UART_EFR_AUTO_CTS_EN_AUTO_CTS_EN_U_VALUE_1) \ 331 (UART_EFR_AUTO_CTS_EN_SHIFT)) 332 #define UART_AUTO_CTS_DISABLE ((uint32_t) ( \ 333 UART_EFR_AUTO_CTS_EN_AUTO_CTS_EN_U_VALUE_0) \ 335 (UART_EFR_AUTO_CTS_EN_SHIFT)) 337 #define UART_AUTO_RTS_ENABLE ((uint32_t) ( \ 338 UART_EFR_AUTO_RTS_EN_AUTO_RTS_EN_U_VALUE_1) \ 340 (UART_EFR_AUTO_RTS_EN_SHIFT)) 341 #define UART_AUTO_RTS_DISABLE ((uint32_t) ( \ 342 UART_EFR_AUTO_RTS_EN_AUTO_RTS_EN_U_VALUE_0) \ 344 (UART_EFR_AUTO_RTS_EN_SHIFT)) 348 #define UART_SPECIAL_CHAR_DETECT_ENABLE (UART_EFR_SPECIAL_CHAR_DETECT_MASK) 349 #define UART_SPECIAL_CHAR_DETECT_DISABLE ( \ 350 UART_EFR_SPECIAL_CHAR_DETECT_SPECIAL_CHAR_DETECT_U_VALUE_0) 354 #define UART_NO_SOFTWARE_FLOW_CONTROL (( \ 355 UART_EFR_SW_FLOW_CONTROL_SW_FLOW_CONTROL_U_VALUE_0 \ 357 UART_EFR_SW_FLOW_CONTROL_TX_SHIFT) \ 360 UART_EFR_SW_FLOW_CONTROL_SW_FLOW_CONTROL_U_VALUE_0 \ 362 UART_EFR_SW_FLOW_CONTROL_RX_SHIFT)) 364 #define UART_TX_RX_XON1_XOFF1 (( \ 365 UART_EFR_SW_FLOW_CONTROL_SW_FLOW_CONTROL_U_VALUE_2 \ 367 UART_EFR_SW_FLOW_CONTROL_TX_SHIFT) \ 370 UART_EFR_SW_FLOW_CONTROL_SW_FLOW_CONTROL_U_VALUE_2 \ 372 UART_EFR_SW_FLOW_CONTROL_RX_SHIFT)) 374 #define UART_TX_RX_XON2_XOFF2 (( \ 375 UART_EFR_SW_FLOW_CONTROL_SW_FLOW_CONTROL_U_VALUE_1 \ 377 UART_EFR_SW_FLOW_CONTROL_TX_SHIFT) \ 380 UART_EFR_SW_FLOW_CONTROL_SW_FLOW_CONTROL_U_VALUE_1 \ 382 UART_EFR_SW_FLOW_CONTROL_RX_SHIFT)) 384 #define UART_TX_RX_XON1_XOFF1_XON2_XOFF2 (( \ 385 UART_EFR_SW_FLOW_CONTROL_SW_FLOW_CONTROL_U_VALUE_3 \ 387 UART_EFR_SW_FLOW_CONTROL_TX_SHIFT) \ 390 UART_EFR_SW_FLOW_CONTROL_SW_FLOW_CONTROL_U_VALUE_3 \ 392 UART_EFR_SW_FLOW_CONTROL_RX_SHIFT)) 394 #define UART_NO_HARDWARE_FLOW_CONTROL UART_EFR_HW_NO_FLOW_CONTROL_VALUE 396 #define UART_RTS_ENABLE UART_EFR_HW_ENABLE_RTS_VALUE 398 #define UART_CTS_ENABLE UART_EFR_HW_ENALE_CTS_VALUE 400 #define UART_RTS_CTS_ENABLE UART_EFR_HW_ENABLE_RTS_CTS_FLOW_CONTROL_VALUE 410 #define UART_PULSE_NORMAL ( \ 411 UART_MDR2_UART_PULSE_UART_PULSE_VALUE_0 << \ 412 UART_MDR2_UART_PULSE_SHIFT) 413 #define UART_PULSE_SHAPING ( \ 414 UART_MDR2_UART_PULSE_UART_PULSE_VALUE_1 << \ 415 UART_MDR2_UART_PULSE_SHIFT) 424 #define UART_TX_DMA_THRESHOLD_64 (UART_MDR3_SET_DMA_TX_THRESHOLD_64 \ 426 UART_MDR3_SET_DMA_TX_THRESHOLD_SHIFT) 427 #define UART_TX_DMA_THRESHOLD_REG (UART_MDR3_SET_DMA_TX_THRESHOLD_REG \ 429 UART_MDR3_SET_DMA_TX_THRESHOLD_SHIFT) 439 #define UART_XON_ANY_ENABLE (UART_MCR_XON_EN_XON_EN_VALUE_1 << \ 440 UART_MCR_XON_EN_SHIFT) 441 #define UART_XON_ANY_DISABLE (UART_MCR_XON_EN_XON_EN_VALUE_0 << \ 442 UART_MCR_XON_EN_SHIFT) 446 #define UART_LOOPBACK_MODE_ENABLE ( \ 447 (uint32_t) UART_MCR_LOOPBACK_EN_LOOPBACK_EN_VALUE_1 << \ 448 UART_MCR_LOOPBACK_EN_SHIFT) 449 #define UART_LOOPBACK_MODE_DISABLE ( \ 450 (uint32_t) UART_MCR_LOOPBACK_EN_LOOPBACK_EN_VALUE_0 << \ 451 UART_MCR_LOOPBACK_EN_SHIFT) 455 #define UART_DCD_CONTROL (UART_MCR_CD_STS_CH_MASK) 456 #define UART_RI_CONTROL (UART_MCR_RI_STS_CH_MASK) 457 #define UART_RTS_CONTROL (UART_MCR_RTS_MASK) 458 #define UART_DTR_CONTROL (UART_MCR_DTR_MASK) 462 #define UART_DCD_VALUE (UART_MSR_NCD_STS_MASK) 463 #define UART_RI_VALUE (UART_MSR_NRI_STS_MASK) 464 #define UART_DSR_VALUE (UART_MSR_NDSR_STS_MASK) 465 #define UART_CTS_VALUE (UART_MSR_NCTS_STS_MASK) 469 #define UART_DCD_STS_CHANGED (UART_MSR_DCD_STS_MASK) 470 #define UART_RI_STS_CHANGED (UART_MSR_RI_STS_MASK) 471 #define UART_DSR_STS_CHANGED (UART_MSR_DSR_STS_MASK) 472 #define UART_CTS_STS_CHANGED (UART_MSR_CTS_STS_MASK) 484 #define UART_RX_TRIG_LVL_GRAN_1_DISABLE ( \ 485 UART_SCR_RX_TRIG_GRANU1_RX_TRIG_GRANU1_VALUE_0 << \ 486 UART_SCR_RX_TRIG_GRANU1_SHIFT) 487 #define UART_RX_TRIG_LVL_GRAN_1_ENABLE ( \ 488 UART_SCR_RX_TRIG_GRANU1_RX_TRIG_GRANU1_VALUE_1 << \ 489 UART_SCR_RX_TRIG_GRANU1_SHIFT) 491 #define UART_TX_TRIG_LVL_GRAN_1_DISABLE ( \ 492 UART_SCR_TX_TRIG_GRANU1_TX_TRIG_GRANU1_VALUE_0 << \ 493 UART_SCR_TX_TRIG_GRANU1_SHIFT) 494 #define UART_TX_FIFO_LVL_GRAN_1_ENABLE ( \ 495 UART_SCR_TX_TRIG_GRANU1_TX_TRIG_GRANU1_VALUE_1 << \ 496 UART_SCR_TX_TRIG_GRANU1_SHIFT) 500 #define UART_DSRn_INT_DISABLE (UART_SCR_DSR_IT_DSR_IT_VALUE_0 << \ 501 UART_SCR_DSR_IT_SHIFT) 502 #define UART_DSRn_INT_ENABLE (UART_SCR_DSR_IT_DSR_IT_VALUE_1 << \ 503 UART_SCR_DSR_IT_SHIFT) 508 #define UART_RX_CTS_DSR_WAKEUP_DISABLE ( \ 509 UART_SCR_RX_CTS_DSR_WAKE_UP_ENABLE_RX_CTS_DSR_WAKE_UP_ENABLE_VALUE_0 << \ 510 UART_SCR_RX_CTS_DSR_WAKE_UP_ENABLE_SHIFT) 511 #define UART_RX_CTS_DSR_WAKEUP_ENABLE ( \ 512 UART_SCR_RX_CTS_DSR_WAKE_UP_ENABLE_RX_CTS_DSR_WAKE_UP_ENABLE_VALUE_1 << \ 513 UART_SCR_RX_CTS_DSR_WAKE_UP_ENABLE_SHIFT) 517 #define UART_THR_INT_NORMAL ( \ 518 UART_SCR_TX_EMPTY_CTL_IT_TX_EMPTY_CTL_IT_VALUE_0 << \ 519 UART_SCR_TX_EMPTY_CTL_IT_SHIFT) 520 #define UART_THR_INT_FIFO_TSR_EMPTY ( \ 521 UART_SCR_TX_EMPTY_CTL_IT_TX_EMPTY_CTL_IT_VALUE_1 << \ 522 UART_SCR_TX_EMPTY_CTL_IT_SHIFT) 526 #define UART_DMA_CNTR_NO_RESET_FIFO_RESET ( \ 527 UART_SSR_DMA_COUNTER_RST_DMA_COUNTER_RST_VALUE_0 << \ 528 UART_SSR_DMA_COUNTER_RST_SHIFT) 529 #define UART_DMA_CNTR_RESET_FIFO_RESET ( \ 530 UART_SSR_DMA_COUNTER_RST_DMA_COUNTER_RST_VALUE_1 << \ 531 UART_SSR_DMA_COUNTER_RST_SHIFT) 535 #define UART_RX_CTS_DSR_NO_FALL_EDGE ( \ 536 UART_SSR_RX_CTS_DSR_WAKE_UP_STS_RX_CTS_DSR_WAKE_UP_STS_VALUE_0 << \ 537 UART_SSR_RX_CTS_DSR_WAKE_UP_STS_SHIFT) 538 #define UART_RX_CTS_DSR_FALL_EDGE ( \ 539 UART_SSR_RX_CTS_DSR_WAKE_UP_STS_RX_CTS_DSR_WAKE_UP_STS_VALUE_1 << \ 540 UART_SSR_RX_CTS_DSR_WAKE_UP_STS_SHIFT) 544 #define UART_TX_FIFO_NOT_FULL ( \ 545 UART_SSR_TX_FIFO_FULL_TX_FIFO_FULL_VALUE_0) 546 #define UART_TX_FIFO_FULL ( \ 547 UART_SSR_TX_FIFO_FULL_TX_FIFO_FULL_VALUE_1) 557 #define UART_SD_PIN_LOW (UART_ACREG_SD_MOD_SD_MOD_VALUE_1 \ 559 UART_ACREG_SD_MOD_SHIFT) 560 #define UART_SD_PIN_HIGH (UART_ACREG_SD_MOD_SD_MOD_VALUE_0 \ 562 UART_ACREG_SD_MOD_SHIFT) 572 #define UART_IDLEMODE_FORCE_IDLE ( \ 573 UART_SYSC_IDLEMODE_IDLEMODE_VALUE_0 << \ 574 UART_SYSC_IDLEMODE_SHIFT) 575 #define UART_IDLEMODE_NO_IDLE ( \ 576 UART_SYSC_IDLEMODE_IDLEMODE_VALUE_1 << \ 577 UART_SYSC_IDLEMODE_SHIFT) 578 #define UART_IDLEMODE_SMART_IDLE ( \ 579 UART_SYSC_IDLEMODE_IDLEMODE_VALUE_2 << \ 580 UART_SYSC_IDLEMODE_SHIFT) 581 #define UART_IDLEMODE_SMART_IDLE_WAKEUP ( \ 582 UART_SYSC_IDLEMODE_IDLEMODE_VALUE_3 << \ 583 UART_SYSC_IDLEMODE_SHIFT) 587 #define UART_WAKEUP_ENABLE ( \ 588 UART_SYSC_ENAWAKEUP_ENAWAKEUP_VALUE_1 << \ 589 UART_SYSC_ENAWAKEUP_SHIFT) 590 #define UART_WAKEUP_DISABLE ( \ 591 UART_SYSC_ENAWAKEUP_ENAWAKEUP_VALUE_0 << \ 592 UART_SYSC_ENAWAKEUP_SHIFT) 595 #define UART_AUTO_IDLE_MODE_ENABLE ( \ 596 UART_SYSC_AUTOIDLE_AUTOIDLE_VALUE_1) 597 #define UART_AUTO_IDLE_MODE_DISABLE ( \ 598 UART_SYSC_AUTOIDLE_AUTOIDLE_VALUE_0) 609 #define UART_WAKEUP_TX_INTERRUPT (UART_WER_EVENT_7_TX_WAKEUP_EN_MASK) 610 #define UART_WAKEUP_RLS_INTERRUPT ( \ 611 UART_WER_EVENT_6_RECEIVER_LINE_STATUS_INTERRUPT_MASK) 612 #define UART_WAKEUP_RHR_INTERRUPT ( \ 613 UART_WER_EVENT_5_RHR_INTERRUPT_MASK) 614 #define UART_WAKEUP_RX_ACTIVITY (UART_WER_EVENT_4_RX_ACTIVITY_MASK) 615 #define UART_WAKEUP_DCD_ACTIVITY ( \ 616 UART_WER_EVENT_3_DCD_CD_ACTIVITY_MASK) 617 #define UART_WAKEUP_RI_ACTIVITY (UART_WER_EVENT_2_RI_ACTIVITY_MASK) 618 #define UART_WAKEUP_DSR_ACTIVITY (UART_WER_EVENT_1_DSR_ACTIVITY_MASK) 619 #define UART_WAKEUP_CTS_ACTIVITY (UART_WER_EVENT_0_CTS_ACTIVITY_MASK) 630 #define UART_AUTOBAUD_NO_PARITY ( \ 631 UART_UASR_PARITY_TYPE_PARITY_TYPE_U_VALUE_0 << \ 632 UART_UASR_PARITY_TYPE_SHIFT) 633 #define UART_AUTOBAUD_PARITY_SPACE ( \ 634 UART_UASR_PARITY_TYPE_PARITY_TYPE_U_VALUE_1 << \ 635 UART_UASR_PARITY_TYPE_SHIFT) 636 #define UART_AUTOBAUD_EVEN_PARITY ( \ 637 UART_UASR_PARITY_TYPE_PARITY_TYPE_U_VALUE_2 << \ 638 UART_UASR_PARITY_TYPE_SHIFT) 639 #define UART_AUTOBAUD_ODD_PARITY ( \ 640 UART_UASR_PARITY_TYPE_PARITY_TYPE_U_VALUE_3 << \ 641 UART_UASR_PARITY_TYPE_SHIFT) 645 #define UART_AUTOBAUD_CHAR_LENGTH_7 ( \ 646 UART_UASR_BIT_BY_CHAR_BIT_BY_CHAR_U_VALUE_0 << \ 647 UART_UASR_BIT_BY_CHAR_SHIFT) 648 #define UART_AUTOBAUD_CHAR_LENGTH_8 ( \ 649 UART_UASR_BIT_BY_CHAR_BIT_BY_CHAR_U_VALUE_1 << \ 650 UART_UASR_BIT_BY_CHAR_SHIFT) 654 #define UART_AUTOBAUD_NO_SPEED_IDEN (UART_UASR_SPEED_SPEED_VALUE_0) 655 #define UART_AUTOBAUD_SPEED_115200 (UART_UASR_SPEED_SPEED_VALUE_1) 656 #define UART_AUTOBAUD_SPEED_57600 (UART_UASR_SPEED_SPEED_VALUE_2) 657 #define UART_AUTOBAUD_SPEED_38400 (UART_UASR_SPEED_SPEED_VALUE_3) 658 #define UART_AUTOBAUD_SPEED_28800 (UART_UASR_SPEED_SPEED_VALUE_4) 659 #define UART_AUTOBAUD_SPEED_19200 (UART_UASR_SPEED_SPEED_VALUE_5) 660 #define UART_AUTOBAUD_SPEED_14400 (UART_UASR_SPEED_SPEED_VALUE_6) 661 #define UART_AUTOBAUD_SPEED_9600 (UART_UASR_SPEED_SPEED_VALUE_7) 662 #define UART_AUTOBAUD_SPEED_4800 (UART_UASR_SPEED_SPEED_VALUE_8) 663 #define UART_AUTOBAUD_SPEED_2400 (UART_UASR_SPEED_SPEED_VALUE_9) 664 #define UART_AUTOBAUD_SPEED_1200 (UART_UASR_SPEED_SPEED_VALUE_10) 674 #define UART_TRIG_LVL_GRANULARITY_4 ((uint32_t) 0x0000U) 675 #define UART_TRIG_LVL_GRANULARITY_1 ((uint32_t) 0x0001U) 680 #define UART_REG_CONFIG_MODE_A (uint32_t) (0x0080) 681 #define UART_REG_CONFIG_MODE_B (uint32_t) (0x00BF) 682 #define UART_REG_OPERATIONAL_MODE (uint32_t) (0x007F) 685 #define UART_FIFO_CONFIG(txGra, rxGra, txTrig, rxTrig, txClr, rxClr, dmaEnPath, \ 687 (((uint32_t) (txGra & 0xFU) << (uint32_t)26U) | \ 688 ((uint32_t) (rxGra & 0xFU) << (uint32_t)22U) | \ 689 ((uint32_t) (txTrig & 0xFFU) << (uint32_t)14U) | \ 690 ((uint32_t) (rxTrig & 0xFFU) << (uint32_t)6U) | \ 691 ((uint32_t) (txClr & 0x1U) << (uint32_t)5U) | \ 692 ((uint32_t) (rxClr & 0x1U) << (uint32_t)4U) | \ 693 ((uint32_t) (dmaEnPath & 0x1U) << (uint32_t)3U) | \ 694 (uint32_t) (dmaMode & 0x7U)) 697 #define UART_FCR_PROGRAM(rxFIFOTrig, txFIFOTrig, dmaMode, txClr, rxClr, fifoEn) \ 698 (((uint32_t) (((uint32_t) (rxFIFOTrig) & 0x3U) << 6)) | \ 699 ((uint32_t) (((uint32_t) (txFIFOTrig) & 0x3U) << 4)) | \ 700 (((uint32_t))(((uint32_t) (dmaMode) & 0x1U) << 3)) | \ 701 (((uint32_t))(((uint32_t) (txClr) & 0x1U) << 2)) | \ 702 ((uint32_t) (((uint32_t) (rxClr) & 0x1U) << 1)) | \ 703 ((uint32_t) (fifoEn) & 0x1U)) 705 #define UART_FIFO_CONFIG_TXGRA ((uint32_t) 0xFU << 26) 706 #define UART_FIFO_CONFIG_RXGRA ((uint32_t) 0xFU << 22) 707 #define UART_FIFO_CONFIG_TXTRIG ((uint32_t) 0xFFU << 14) 708 #define UART_FIFO_CONFIG_RXTRIG ((uint32_t) 0xFFU << 6) 709 #define UART_FIFO_CONFIG_TXCLR ((uint32_t) 0x1U << 5) 710 #define UART_FIFO_CONFIG_RXCLR ((uint32_t) 0x1U << 4) 711 #define UART_FIFO_CONFIG_DMAENPATH ((uint32_t) 0x1U << 3) 712 #define UART_FIFO_CONFIG_DMAMODE ((uint32_t) 0x7U << 0) 715 #define UART_MIR_OVERSAMPLING_RATE_41 ((uint32_t) 41U) 716 #define UART_MIR_OVERSAMPLING_RATE_42 ((uint32_t) 42U) 718 #define UART_FCR_TX_FIFO_TRIG_8SPACES ((uint32_t) 0x0U) 719 #define UART_FCR_TX_FIFO_TRIG_16SPACES ((uint32_t) 0x1U) 720 #define UART_FCR_TX_FIFO_TRIG_32SPACES ((uint32_t) 0x2U) 721 #define UART_FCR_TX_FIFO_TRIG_56SPACES ((uint32_t) 0x3U) 724 #define UART_LCR_STB_SHIFT ((uint32_t) 0x00000002U) 725 #define UART_LCR_PEN_SHIFT ((uint32_t) 0x00000003U) 726 #define UART_LCR_BC_SHIFT ((uint32_t) 0x00000006U) 728 #define UART_LCR_PARITY_EN_DISABLE ((uint32_t) 0x0U) 730 #define UART_MDR1_MODE_SELECT_CIR ((uint32_t) 0x6U) 731 #define UART_MDR1_MODE_SELECT_DISABLED ((uint32_t) 0x7U) 732 #define UART_MDR1_MODE_SELECT_FIR ((uint32_t) 0x5U) 733 #define UART_MDR1_MODE_SELECT_MIR ((uint32_t) 0x4U) 734 #define UART_MDR1_MODE_SELECT_SIR ((uint32_t) 0x1U) 735 #define UART_MDR1_MODE_SELECT_UART13X ((uint32_t) 0x3U) 736 #define UART_MDR1_MODE_SELECT_UART16X ((uint32_t) 0x0U) 737 #define UART_MDR1_MODE_SELECT_UART16XAUTO ((uint32_t) 0x2U) 739 #define UART_FCR_RX_FIFO_TRIG_16CHAR ((uint32_t) 0x1U) 740 #define UART_FCR_RX_FIFO_TRIG_56CHAR ((uint32_t) 0x2U) 741 #define UART_FCR_RX_FIFO_TRIG_60CHAR ((uint32_t) 0x3U) 742 #define UART_FCR_RX_FIFO_TRIG_8CHAR ((uint32_t) 0x0U) 744 #define UART_EFR_SW_FLOW_CONTROL_RX_SHIFT ((uint32_t) 0x0U) 745 #define UART_EFR_SW_FLOW_CONTROL_TX_SHIFT ((uint32_t) 0x2U) 748 #define UART_MDR3_SET_DMA_TX_THRESHOLD_64 ((uint32_t) 0x0U) 749 #define UART_MDR3_SET_DMA_TX_THRESHOLD_REG ((uint32_t) 0x1U) 750 #define UART_MDR3_DIR_POL_0 ((uint32_t) 0U) 751 #define UART_MDR3_DIR_POL_1 ((uint32_t) 1U) 820 uint32_t mirOverSampRate);
834 uint32_t divisorValue);
904 uint32_t lcrRegValue);
923 extern void UARTBreakCtl(uint32_t baseAddr, uint32_t breakState);
964 uint32_t wLenStbFlag,
965 uint32_t parityFlag);
1029 extern void UARTDMAEnable(uint32_t baseAddr, uint32_t dmaModeFlag);
1121 uint32_t fifoConfig);
1160 uint32_t enhanFnBitVal);
1239 uint32_t tcrTlrBitVal);
1270 extern void UARTIntEnable(uint32_t baseAddr, uint32_t intFlag);
1421 uint32_t timeOutVal);
1434 extern void UARTCharPut(uint32_t baseAddr, uint8_t byteTx);
1494 const uint8_t *pBuffer,
1495 uint32_t numTxBytes);
1604 uint32_t autoCtsControl,
1605 uint32_t autoRtsControl);
1629 uint32_t controlFlag);
1655 uint32_t swFlowCtrl);
1677 uint32_t hwFlowCtrl);
1696 uint32_t shapeControl);
1796 uint32_t rtsHaltFlag,
1797 uint32_t rtsStartFlag);
1813 uint8_t xoff1Value);
1830 uint8_t xoff2Value);
1851 uint32_t controlFlag);
1868 uint32_t controlFlag);
1998 uint32_t wakeUpFlag);
2030 uint32_t wakeUpFlag);
2057 uint32_t rxFIFOGranCtrl,
2058 uint32_t txFIFOGranCtrl);
2075 uint32_t controlFlag);
2097 uint32_t controlFlag);
2118 uint32_t wakeUpFlag);
2151 uint32_t controlFlag);
2259 uint32_t scratchValue);
2485 uint32_t timeOutVal,
2499 extern void UARTDirPolSet(uint32_t baseAddr, uint32_t dirPol);
2525 extern void UARTSetTimeOutValue(uint32_t baseAddr, uint16_t timeoutIntrVal, uint32_t timeoutBehavior);
void UARTIntDisable(uint32_t baseAddr, uint32_t intFlag)
This API disables the specified interrupts in the UART mode of operation.
void UARTFIFOCharPut(uint32_t baseAddr, uint8_t byteTx)
This API writes a byte to the Transmitter FIFO without checking for the emptiness of the Transmitter ...
uint32_t UARTTxFIFOLevelGet(uint32_t baseAddr)
This API determines the current level of the Transmitter FIFO.
uint32_t UARTSubConfigTCRTLRModeEn(uint32_t baseAddr)
This API enables the TCR_TLR Sub_Configuration Mode of operation.
uint32_t UARTCharGetTimeout2(uint32_t baseAddr, uint32_t timeOutVal, uint8_t *pChar)
This API waits for the arrival of atleast one byte into the Receiver FIFO or until a specified timeou...
uint32_t UARTIntIdentityGet(uint32_t baseAddr)
This API determines the UART Interrupt Status.
uint8_t UARTCharGetTimeout(uint32_t baseAddr, uint32_t timeOutVal)
This API waits for the arrival of atleast one byte into the Receiver FIFO or until a specified timeou...
void UARTModemControlSet(uint32_t baseAddr, uint32_t modeFlag)
This API switches the specified Modem Control Signals to active state. The Modem Control signals in c...
void UARTWakeUpEventsEnable(uint32_t baseAddr, uint32_t wakeUpFlag)
This API enables the Wake-Up capability for the specified events. On enabling Wake-Up capability for ...
uint32_t UARTCharPutNonBlocking(uint32_t baseAddr, uint8_t byteWrite)
This API attempts to write a byte into Transmitter Holding Register (THR). It checks only once if the...
uint32_t UARTParityModeGet(uint32_t baseAddr)
This API reads the Parity configuration being set in the UART.
void UARTXONAnyFeatureControl(uint32_t baseAddr, uint32_t controlFlag)
This API controls(enables/disables) the XON-any feature in Modem Control Register(MCR).
void UARTHardwareFlowCtrlOptSet(uint32_t baseAddr, uint32_t hwFlowCtrl)
This API configures the options for hardware Flow Control.
uint32_t UARTDivisorValCompute(uint32_t moduleClk, uint32_t baudRate, uint32_t modeFlag, uint32_t mirOverSampRate)
This API computes the divisor value for the specified operating mode. Not part of this API,...
void UARTDMAEnable(uint32_t baseAddr, uint32_t dmaModeFlag)
This API enables the DMA mode of operation for the UART instance.
void UARTModemControlClear(uint32_t baseAddr, uint32_t modeFlag)
This API switches the specified Modem Control signals to inactive state. The Modem Control signals in...
void UARTLoopbackModeControl(uint32_t baseAddr, uint32_t controlFlag)
This API controls(enables/disables) the Loopback mode of operation for the UART instance.
int8_t UARTFIFOCharGet(uint32_t baseAddr)
This API reads the data present at the top of the RX FIFO, that is, the data in the Receive Holding R...
void UARTIntEnable(uint32_t baseAddr, uint32_t intFlag)
This API enables the specified interrupts in the UART mode of operation.
void UARTAutoIdleModeControl(uint32_t baseAddr, uint32_t modeFlag)
This API is used to control(enable/disable) the Auto-Idle mode of operation of the UART.
void UARTFlowCtrlTrigLvlConfig(uint32_t baseAddr, uint32_t rtsHaltFlag, uint32_t rtsStartFlag)
This API configures the Receiver FIFO threshold level to start/stop transmission during Hardware Flow...
uint32_t UARTModuleVersionNumberGet(uint32_t baseAddr)
This API reads the Revision Number of the module from the Module Version Register(MVR).
uint32_t UARTIsTransmitterEmpty(uint32_t baseAddr)
This API returns the transmitter empty status i.e. if Transmitter FIFO (THR register in non-FIFO mode...
uint32_t UARTTxFIFOFullStatusGet(uint32_t baseAddr)
This API determines whether the Transmitter FIFO is full or not.
uint32_t UARTModemStatusChangeCheck(uint32_t baseAddr)
This API determines if the values on Modem Signal Lines have changed since the last read of Modem Sta...
void UARTBreakCtl(uint32_t baseAddr, uint32_t breakState)
This API is used to introduce or to remove a Break condition.
void UARTCharPut(uint32_t baseAddr, uint8_t byteTx)
This API waits indefinitely until the Transmitter FIFO (THR register in non-FIFO mode) and Transmitte...
void UARTEnhanFuncBitValRestore(uint32_t baseAddr, uint32_t enhanFnBitVal)
This API restores the ENHANCEDEN bit value of EFR register(EFR[4]) to the corresponding bit value in ...
uint32_t UARTAutobaudWordLenGet(uint32_t baseAddr)
This API determines the word length per frame(character length) being configured by the system in UAR...
uint32_t UARTModemStatusGet(uint32_t baseAddr)
This API reads the values on Modem Signal Lines. The Modem Signals in context are: 1> Data Carrier De...
void UARTXON2XOFF2ValProgram(uint32_t baseAddr, uint8_t xon2Value, uint8_t xoff2Value)
This API programs the XON2/ADDR2 and XOFF2 registers.
void UARTResumeOperation(uint32_t baseAddr)
This API reads the RESUME register which clears the internal flags.
void UARTDivisorLatchDisable(uint32_t baseAddr)
This API disables write access to Divisor Latch registers DLL and DLH.
uint32_t UARTInt2StatusGet(uint32_t baseAddr)
This API determines the UART Interrupt Status 2.
void UARTSoftwareFlowCtrlOptSet(uint32_t baseAddr, uint32_t swFlowCtrl)
This API configures the options for Software Flow Control.
void UARTModuleReset(uint32_t baseAddr)
This API performs a module reset of the UART instance. It also waits until the reset process is compl...
uint32_t UARTSubConfigXOFFModeEn(uint32_t baseAddr)
This API enables the XOFF Sub-Configuration Mode of operation.
uint32_t UARTRxFIFOLevelGet(uint32_t baseAddr)
This API determines the current level of the Receiver FIFO.
void UARTFIFOTrigLvlGranControl(uint32_t baseAddr, uint32_t rxFIFOGranCtrl, uint32_t txFIFOGranCtrl)
This API controls the feature of setting the Trigger Level granularity as 1 for Transmitter and Recei...
void UARTFIFOCtrlRegWrite(uint32_t baseAddr, uint32_t fcrValue)
This API is used to write a specified value to the FIFO Control Register(FCR) without disabling the d...
void UARTFIFORegisterWrite(uint32_t baseAddr, uint32_t fcrValue)
This API is used to write a specified value to the FIFO Control Register(FCR).
uint32_t UARTAutobaudSpeedGet(uint32_t baseAddr)
This API determines the baud rate being configured by the system in UART Autobauding mode.
void UARTTxEmptyIntControl(uint32_t baseAddr, uint32_t controlFlag)
This API is used to choose a condition under which a Transmit Holding Register(THR) Interrupt should ...
void UARTAutoRTSAutoCTSControl(uint32_t baseAddr, uint32_t autoCtsControl, uint32_t autoRtsControl)
This API controls the use of Auto-RTS and Auto-CTS features which are used in Hardware Flow Control M...
uint32_t UARTModemControlGet(uint32_t baseAddr)
This function gets the status of the RTS and AFE bits in the MCR register.
void UARTSetTimeOutValue(uint32_t baseAddr, uint16_t timeoutIntrVal, uint32_t timeoutBehavior)
This API is used to set the timeout value and the TIMEOUT_BEHAVE.
uint32_t UARTRegConfigModeEnable(uint32_t baseAddr, uint32_t modeFlag)
This API configures the specified Register Configuration mode for the UART.
uint32_t UARTFIFOWrite(uint32_t baseAddr, const uint8_t *pBuffer, uint32_t numTxBytes)
This API copies the requested amount of data from the pointed data block to the UART Transmit FIFO.
void UARTSpecialCharDetectControl(uint32_t baseAddr, uint32_t controlFlag)
This API controls the feature of detecting a Special Character arriving in the receiver.
void UARTDirEnControl(uint32_t baseAddr, uint32_t dirEnFlag)
This API is used to control the RS-485 External Transceiver Direction.
void UARTInt2Disable(uint32_t baseAddr, uint32_t intFlag)
This API disables the specified interrupts in the UART mode of operation for IER2.
void UARTModemControlReset(uint32_t baseAddr)
This API resets the Modem control register.
void UARTWakeUpControl(uint32_t baseAddr, uint32_t controlFlag)
This API is used to control(enable/disable) the Wake-Up feature of the UART.
uint32_t UARTOperatingModeSelect(uint32_t baseAddr, uint32_t modeFlag)
This API configures the operating mode for the UART instance. The different operating modes are:
void UARTRegConfModeRestore(uint32_t baseAddr, uint32_t lcrRegValue)
This API is used to restore the UART to the specified Register Configuration Mode.
void UARTWakeUpEventsDisable(uint32_t baseAddr, uint32_t wakeUpFlag)
This API disables the Wake-Up capability for the specified events. On disabling Wake-Up capability fo...
uint32_t UARTScratchPadRegRead(uint32_t baseAddr)
This API reads the value in Scratchpad Register.
void UARTPulseShapingControl(uint32_t baseAddr, uint32_t shapeControl)
Used only in UART mode, this API is used to control the pulse shaping feature. Pulse shaping feature ...
void UARTDivisorLatchEnable(uint32_t baseAddr)
This API enables write access to Divisor Latch registers DLL and DLH.
uint32_t UARTAutobaudParityGet(uint32_t baseAddr)
This API determines the Parity mode being configured by the system in the UART Autobauding mode.
uint32_t UARTDivisorLatchWrite(uint32_t baseAddr, uint32_t divisorValue)
This API is used to write the specified divisor value to Divisor Latch registers DLL and DLH.
void UARTDMACounterResetControl(uint32_t baseAddr, uint32_t controlFlag)
This API controls the DMA Counter Reset options.
void UARTIdleModeConfigure(uint32_t baseAddr, uint32_t modeFlag)
This API can be used to control the Power Management request/acknowledgement process.
uint32_t UARTCharsAvail(uint32_t baseAddr)
This API checks if the RX FIFO (or RHR in non-FIFO mode) has atleast one byte of data to be read.
void UARTTxDMAThresholdValConfig(uint32_t baseAddr, uint32_t thrsValue)
This function programs the TX_DMA_THRESHOLD register which holds Transmit DMA Threshold value to be u...
uint32_t UARTRxErrorGet(uint32_t baseAddr)
This API reads the receiver data error status.
void UARTDirPolSet(uint32_t baseAddr, uint32_t dirPol)
This API is used to set the RS-485 External Transceiver Direction Polarity.
void UARTParityModeSet(uint32_t baseAddr, uint32_t parityFlag)
This API configures the Parity feature for the UART.
uint32_t UARTFIFOEnableStatusGet(uint32_t baseAddr)
This API determines whether FIFO mode of operation is enabled for the UART instance or not.
uint32_t UARTReadStatus(uint32_t baseAddr)
This API reads the line status register value.
void UARTTxDMAThresholdControl(uint32_t baseAddr, uint32_t thrsCtrlFlag)
This function controls the method of setting the Transmit DMA Threshold Value. The Transmit DMA Thres...
uint32_t UARTEnhanFuncEnable(uint32_t baseAddr)
This API sets a certain bit in Enhanced Feature Register(EFR) which shall avail the UART to use some ...
int8_t UARTCharGetNonBlocking(uint32_t baseAddr)
This API reads a byte from the Receiver Buffer Register (RBR). It checks once if any character is rea...
void UARTInt2Enable(uint32_t baseAddr, uint32_t intFlag)
This API enables the specified interrupts in the UART mode of operation for IER2.
void UARTDSRInterruptControl(uint32_t baseAddr, uint32_t controlFlag)
This API controls the interrupt enable and disable feature for Data Set Ready(DSRn) interrupt.
uint32_t UARTIntPendingStatusGet(uint32_t baseAddr)
This API determines whether any UART interrupt condition is still alive and is pending to be serviced...
uint32_t UARTFIFOConfig(uint32_t baseAddr, uint32_t fifoConfig)
This API configures the FIFO settings for the UART instance. Specifically, this does the following co...
uint32_t UARTSubConfigMSRSPRModeEn(uint32_t baseAddr)
This API enables the MSR_SPR Sub-Configuration Mode of operation.
void UARTRXCTSDSRWakeUpConfigure(uint32_t baseAddr, uint32_t wakeUpFlag)
This API controls (enables/disables) a feature where a falling edge on the RX, CTSn or DSRs could sen...
void UARTDMADisable(uint32_t baseAddr)
This API disables the DMA mode of operation.
void UARTLineCharacConfig(uint32_t baseAddr, uint32_t wLenStbFlag, uint32_t parityFlag)
This API configures the Line Characteristics for the UART instance. The Line Characteristics include:
void UARTXON1XOFF1ValProgram(uint32_t baseAddr, uint8_t xon1Value, uint8_t xoff1Value)
This API programs the XON1/ADDR1 and XOFF1 registers.
void UARTFIFOLevelSet(uint32_t baseAddr, uint32_t rxLevel)
This function sets the receiver FIFO trigger level. .
uint32_t UARTSpaceAvail(uint32_t baseAddr)
This API checks whether the TX FIFO (or THR in non-FIFO mode) is empty or not.
uint32_t UARTRXCTSDSRTransitionStatusGet(uint32_t baseAddr)
This API determines whether a falling edge occured on RX, CTSn or DSRn lines.
uint32_t UARTCharGetNonBlocking2(uint32_t baseAddr, uint8_t *pChar)
This API reads a byte from the Receiver Buffer Register (RBR). It checks once if any character is rea...
void UARTTCRTLRBitValRestore(uint32_t baseAddr, uint32_t tcrTlrBitVal)
This API restores the TCRTLR bit(MCR[6]) value in Modem Control Register(MCR) to the corresponding bi...
int8_t UARTCharGet(uint32_t baseAddr)
This API waits indefinitely for the arrival of a byte in the receiver FIFO. Once a byte has arrived,...
void UARTScratchPadRegWrite(uint32_t baseAddr, uint32_t scratchValue)
This API programs the Scratchpad Register with the specified value.