Lines Matching refs:usart
173 static void prsRxInput(USART_TypeDef *usart, USART_PRS_Channel_t ch) in prsRxInput() argument
176 usart->INPUT = ((uint32_t)ch << _USART_INPUT_RXPRSSEL_SHIFT) in prsRxInput()
179 if (usart == USART0) { in prsRxInput()
183 else if (usart == USART1) { in prsRxInput()
188 else if (usart == USART2) { in prsRxInput()
192 usart->CTRLX |= USART_CTRLX_RXPRSEN; in prsRxInput()
208 static void prsIrInput(USART_TypeDef *usart, USART_PRS_Channel_t ch) in prsIrInput() argument
211 usart->IRCTRL |= ((uint32_t)ch << _USART_IRCTRL_IRPRSSEL_SHIFT) in prsIrInput()
215 usart->IRCTRL |= USART_IRCTRL_IRPRSEN; in prsIrInput()
231 static void prsIrInput(USART_TypeDef *usart, USART_PRS_Channel_t ch) in prsIrInput() argument
233 if (usart == USART0) { in prsIrInput()
237 else if (usart == USART1) { in prsIrInput()
242 else if (usart == USART2) { in prsIrInput()
246 usart->IRCTRL |= USART_IRCTRL_IRPRSEN; in prsIrInput()
260 static void prsTriggerInput(USART_TypeDef *usart, USART_PRS_Channel_t ch) in prsTriggerInput() argument
263 usart->TRIGCTRL = (usart->TRIGCTRL & ~_USART_TRIGCTRL_TSEL_MASK) in prsTriggerInput()
266 if (usart == USART0) { in prsTriggerInput()
270 else if (usart == USART1) { in prsTriggerInput()
275 else if (usart == USART2) { in prsTriggerInput()
313 void USART_BaudrateAsyncSet(USART_TypeDef *usart, in USART_BaudrateAsyncSet() argument
358 if (usart == USART2) { in USART_BaudrateAsyncSet()
421 usart->CTRL &= ~_USART_CTRL_OVS_MASK; in USART_BaudrateAsyncSet()
422 usart->CTRL |= ovs; in USART_BaudrateAsyncSet()
423 usart->CLKDIV = clkdiv; in USART_BaudrateAsyncSet()
586 uint32_t USART_BaudrateGet(USART_TypeDef *usart) in USART_BaudrateGet() argument
592 if (usart->CTRL & USART_CTRL_SYNC) { in USART_BaudrateGet()
603 if (usart == USART2) { in USART_BaudrateGet()
612 ovs = (USART_OVS_TypeDef)(usart->CTRL & _USART_CTRL_OVS_MASK); in USART_BaudrateGet()
613 return USART_BaudrateCalc(freq, usart->CLKDIV, syncmode, ovs); in USART_BaudrateGet()
649 void USART_BaudrateSyncSet(USART_TypeDef *usart, uint32_t refFreq, uint32_t baudrate) in USART_BaudrateSyncSet() argument
668 if (usart == USART2) { in USART_BaudrateSyncSet()
693 usart->CLKDIV = clkdiv; in USART_BaudrateSyncSet()
711 void USART_Enable(USART_TypeDef *usart, USART_Enable_TypeDef enable) in USART_Enable() argument
716 EFM_ASSERT(USART_REF_VALID(usart) in USART_Enable()
717 || USARTRF_REF_VALID(usart) in USART_Enable()
718 || UART_REF_VALID(usart)); in USART_Enable()
721 usart->EN_SET = USART_EN_EN; in USART_Enable()
727 usart->CMD = tmp << 1; in USART_Enable()
730 usart->CMD = (uint32_t)enable; in USART_Enable()
734 usart->EN_CLR = USART_EN_EN; in USART_Enable()
762 void USART_InitAsync(USART_TypeDef *usart, const USART_InitAsync_TypeDef *init) in USART_InitAsync() argument
765 EFM_ASSERT(USART_REF_VALID(usart) in USART_InitAsync()
766 || USARTRF_REF_VALID(usart) in USART_InitAsync()
767 || UART_REF_VALID(usart)); in USART_InitAsync()
770 USART_Reset(usart); in USART_InitAsync()
773 usart->EN_SET = USART_EN_EN; in USART_InitAsync()
779 usart->CTRL |= USART_CTRL_MVDIS; in USART_InitAsync()
786 prsRxInput(usart, init->prsRxCh); in USART_InitAsync()
791 usart->FRAME = (uint32_t)init->databits in USART_InitAsync()
796 USART_BaudrateAsyncSet(usart, init->refFreq, init->baudrate, init->oversampling); in USART_InitAsync()
799 usart->CTRL |= USART_CTRL_AUTOCS; in USART_InitAsync()
802 usart->CTRL |= USART_CTRL_CSINV; in USART_InitAsync()
805 usart->TIMING = (((uint32_t)init->autoCsHold << _USART_TIMING_CSHOLD_SHIFT) in USART_InitAsync()
813 usart->ROUTEPEN &= ~(_USART_ROUTEPEN_RTSPEN_MASK | _USART_ROUTEPEN_CTSPEN_MASK); in USART_InitAsync()
814 usart->ROUTEPEN |= init->hwFlowControl; in USART_InitAsync()
820 GPIO->USARTROUTE_SET[USART_NUM(usart)].ROUTEEN = GPIO_USART_ROUTEEN_RTSPEN; in USART_InitAsync()
827 GPIO->USARTROUTE_CLR[USART_NUM(usart)].ROUTEEN = GPIO_USART_ROUTEEN_RTSPEN; in USART_InitAsync()
836 usart->CTRLX_SET = USART_CTRLX_CTSEN; in USART_InitAsync()
838 usart->CTRLX_CLR = USART_CTRLX_CTSEN; in USART_InitAsync()
843 usart->CMD = (uint32_t)init->enable; in USART_InitAsync()
870 void USART_InitSync(USART_TypeDef *usart, const USART_InitSync_TypeDef *init) in USART_InitSync() argument
873 EFM_ASSERT(USART_REF_VALID(usart) || USARTRF_REF_VALID(usart) ); in USART_InitSync()
876 USART_Reset(usart); in USART_InitSync()
879 usart->EN_SET = USART_EN_EN; in USART_InitSync()
883 usart->CTRL |= (USART_CTRL_SYNC) in USART_InitSync()
888 usart->CTRL |= init->autoTx ? USART_CTRL_AUTOTX : 0; in USART_InitSync()
893 prsRxInput(usart, init->prsRxCh); in USART_InitSync()
898 usart->FRAME = (uint32_t)init->databits in USART_InitSync()
903 USART_BaudrateSyncSet(usart, init->refFreq, init->baudrate); in USART_InitSync()
907 usart->CMD = USART_CMD_MASTEREN; in USART_InitSync()
911 usart->CTRL |= USART_CTRL_AUTOCS; in USART_InitSync()
914 usart->CTRL |= USART_CTRL_CSINV; in USART_InitSync()
917 usart->TIMING = (((uint32_t)init->autoCsHold << _USART_TIMING_CSHOLD_SHIFT) in USART_InitSync()
923 usart->CMD = (uint32_t)init->enable; in USART_InitSync()
954 void USARTn_InitIrDA(USART_TypeDef *usart, const USART_InitIrDA_TypeDef *init) in USARTn_InitIrDA() argument
956 EFM_ASSERT(USART_IRDA_VALID(usart)); in USARTn_InitIrDA()
959 USART_InitAsync(usart, &(init->async)); in USARTn_InitIrDA()
962 usart->CTRL |= USART_CTRL_TXINV; in USARTn_InitIrDA()
966 usart->CTRL |= USART_CTRL_RXINV; in USARTn_InitIrDA()
970 usart->IRCTRL = (uint32_t)init->irPw in USARTn_InitIrDA()
975 prsIrInput(usart, init->irPrsSel); in USARTn_InitIrDA()
980 usart->IRCTRL |= USART_IRCTRL_IREN; in USARTn_InitIrDA()
1013 void USART_InitI2s(USART_TypeDef *usart, USART_InitI2s_TypeDef *init) in USART_InitI2s() argument
1018 EFM_ASSERT(USART_I2S_VALID(usart)); in USART_InitI2s()
1025 USART_InitSync(usart, &init->sync); in USART_InitI2s()
1028 usart->I2SCTRL = (uint32_t)init->format in USART_InitI2s()
1036 USART_Enable(usart, enable); in USART_InitI2s()
1053 void USART_InitPrsTrigger(USART_TypeDef *usart, const USART_PrsTriggerInit_TypeDef *init) in USART_InitPrsTrigger() argument
1057 prsTriggerInput(usart, init->prsTriggerChannel); in USART_InitPrsTrigger()
1059 trigctrl = usart->TRIGCTRL & ~(_USART_TRIGCTRL_RXTEN_MASK in USART_InitPrsTrigger()
1077 usart->TRIGCTRL = trigctrl; in USART_InitPrsTrigger()
1087 void USART_Reset(USART_TypeDef *usart) in USART_Reset() argument
1090 EFM_ASSERT(USART_REF_VALID(usart) in USART_Reset()
1091 || USARTRF_REF_VALID(usart) in USART_Reset()
1092 || UART_REF_VALID(usart) ); in USART_Reset()
1095 usart->EN_SET = USART_EN_EN; in USART_Reset()
1097 usart->CMD = USART_CMD_RXDIS | USART_CMD_TXDIS | USART_CMD_MASTERDIS in USART_Reset()
1101 usart->CTRL = _USART_CTRL_RESETVALUE; in USART_Reset()
1102 usart->CTRLX = _USART_CTRLX_RESETVALUE; in USART_Reset()
1103 usart->FRAME = _USART_FRAME_RESETVALUE; in USART_Reset()
1104 usart->TRIGCTRL = _USART_TRIGCTRL_RESETVALUE; in USART_Reset()
1105 usart->CLKDIV = _USART_CLKDIV_RESETVALUE; in USART_Reset()
1106 usart->IEN = _USART_IEN_RESETVALUE; in USART_Reset()
1107 usart->IF_CLR = _USART_IF_MASK; in USART_Reset()
1108 usart->TIMING = _USART_TIMING_RESETVALUE; in USART_Reset()
1110 if (USART_IRDA_VALID(usart)) { in USART_Reset()
1111 usart->IRCTRL = _USART_IRCTRL_RESETVALUE; in USART_Reset()
1114 if (USART_I2S_VALID(usart)) { in USART_Reset()
1115 usart->I2SCTRL = _USART_I2SCTRL_RESETVALUE; in USART_Reset()
1117 usart->EN_CLR = USART_EN_EN; in USART_Reset()
1121 usart->CMD = USART_CMD_RXDIS | USART_CMD_TXDIS | USART_CMD_MASTERDIS in USART_Reset()
1125 usart->CTRL = _USART_CTRL_RESETVALUE; in USART_Reset()
1126 usart->FRAME = _USART_FRAME_RESETVALUE; in USART_Reset()
1127 usart->TRIGCTRL = _USART_TRIGCTRL_RESETVALUE; in USART_Reset()
1128 usart->CLKDIV = _USART_CLKDIV_RESETVALUE; in USART_Reset()
1129 usart->IEN = _USART_IEN_RESETVALUE; in USART_Reset()
1130 usart->IFC = _USART_IFC_MASK; in USART_Reset()
1132 usart->TIMING = _USART_TIMING_RESETVALUE; in USART_Reset()
1135 usart->ROUTEPEN = _USART_ROUTEPEN_RESETVALUE; in USART_Reset()
1136 usart->ROUTELOC0 = _USART_ROUTELOC0_RESETVALUE; in USART_Reset()
1137 usart->ROUTELOC1 = _USART_ROUTELOC1_RESETVALUE; in USART_Reset()
1139 usart->ROUTE = _USART_ROUTE_RESETVALUE; in USART_Reset()
1142 if (USART_IRDA_VALID(usart)) { in USART_Reset()
1143 usart->IRCTRL = _USART_IRCTRL_RESETVALUE; in USART_Reset()
1147 usart->INPUT = _USART_INPUT_RESETVALUE; in USART_Reset()
1151 if (USART_I2S_VALID(usart)) { in USART_Reset()
1152 usart->I2SCTRL = _USART_I2SCTRL_RESETVALUE; in USART_Reset()
1182 uint8_t USART_Rx(USART_TypeDef *usart) in USART_Rx() argument
1184 while (!(usart->STATUS & USART_STATUS_RXDATAV)) { in USART_Rx()
1187 return (uint8_t)usart->RXDATA; in USART_Rx()
1214 uint16_t USART_RxDouble(USART_TypeDef *usart) in USART_RxDouble() argument
1216 while (!(usart->STATUS & USART_STATUS_RXFULL)) { in USART_RxDouble()
1219 return (uint16_t)usart->RXDOUBLE; in USART_RxDouble()
1246 uint32_t USART_RxDoubleExt(USART_TypeDef *usart) in USART_RxDoubleExt() argument
1248 while (!(usart->STATUS & USART_STATUS_RXFULL)) { in USART_RxDoubleExt()
1251 return usart->RXDOUBLEX; in USART_RxDoubleExt()
1278 uint16_t USART_RxExt(USART_TypeDef *usart) in USART_RxExt() argument
1280 while (!(usart->STATUS & USART_STATUS_RXDATAV)) { in USART_RxExt()
1283 return (uint16_t)usart->RXDATAX; in USART_RxExt()
1305 uint8_t USART_SpiTransfer(USART_TypeDef *usart, uint8_t data) in USART_SpiTransfer() argument
1307 while (!(usart->STATUS & USART_STATUS_TXBL)) { in USART_SpiTransfer()
1309 usart->TXDATA = (uint32_t)data; in USART_SpiTransfer()
1310 while (!(usart->STATUS & USART_STATUS_TXC)) { in USART_SpiTransfer()
1312 return (uint8_t)usart->RXDATA; in USART_SpiTransfer()
1338 void USART_Tx(USART_TypeDef *usart, uint8_t data) in USART_Tx() argument
1341 while (!(usart->STATUS & USART_STATUS_TXBL)) { in USART_Tx()
1343 usart->TXDATA = (uint32_t)data; in USART_Tx()
1373 void USART_TxDouble(USART_TypeDef *usart, uint16_t data) in USART_TxDouble() argument
1376 while (!(usart->STATUS & USART_STATUS_TXBL)) { in USART_TxDouble()
1378 usart->TXDOUBLE = (uint32_t)data; in USART_TxDouble()
1408 void USART_TxDoubleExt(USART_TypeDef *usart, uint32_t data) in USART_TxDoubleExt() argument
1411 while (!(usart->STATUS & USART_STATUS_TXBL)) { in USART_TxDoubleExt()
1413 usart->TXDOUBLEX = data; in USART_TxDoubleExt()
1435 void USART_TxExt(USART_TypeDef *usart, uint16_t data) in USART_TxExt() argument
1438 while (!(usart->STATUS & USART_STATUS_TXBL)) { in USART_TxExt()
1440 usart->TXDATAX = (uint32_t)data; in USART_TxExt()