Lines Matching refs:base
38 static void SMARTCARD_USIM_CompleteSendData(USIM_Type *base, smartcard_context_t *context);
39 static void SMARTCARD_USIM_StartSendData(USIM_Type *base, smartcard_context_t *context);
40 static void SMARTCARD_USIM_CompleteReceiveData(USIM_Type *base, smartcard_context_t *context);
41 static void SMARTCARD_USIM_StartReceiveData(USIM_Type *base, smartcard_context_t *context);
42 static bool SMARTCARD_USIM_SetTransferType(USIM_Type *base, smartcard_context_t *context, smartcard…
46 static uint32_t SMARTCARD_USIM_GetInstance(USIM_Type *base);
57 static uint32_t SMARTCARD_USIM_GetInstance(USIM_Type *base) in SMARTCARD_USIM_GetInstance() argument
65 if (s_usimBases[instance] == base) in SMARTCARD_USIM_GetInstance()
83 static bool SMARTCARD_USIM_SetBaudRate(USIM_Type *base, uint32_t fi, uint32_t di) in SMARTCARD_USIM_SetBaudRate() argument
85 uint32_t clkDivisor = (base->CLKR & USIM_CLKR_DIVISOR_MASK) * 2UL * fi; in SMARTCARD_USIM_SetBaudRate()
94 base->DLR = divTmp; in SMARTCARD_USIM_SetBaudRate()
95 base->FLR = facTmp - 1U; in SMARTCARD_USIM_SetBaudRate()
116 static void SMARTCARD_USIM_CompleteSendData(USIM_Type *base, smartcard_context_t *context) in SMARTCARD_USIM_CompleteSendData() argument
121 base->IER &= ~USIM_IER_TDR_MASK; in SMARTCARD_USIM_CompleteSendData()
124 while ((base->FSR & USIM_FSR_TX_LENGTH_MASK) != 0u) in SMARTCARD_USIM_CompleteSendData()
145 static void SMARTCARD_USIM_CompleteReceiveData(USIM_Type *base, smartcard_context_t *context) in SMARTCARD_USIM_CompleteReceiveData() argument
150 base->IER &= ~USIM_IER_RDR_MASK; in SMARTCARD_USIM_CompleteReceiveData()
153 while (((base->FSR & USIM_FSR_RX_LENGTH_MASK) != 0u) && ((context->xSize) > 0u)) in SMARTCARD_USIM_CompleteReceiveData()
156 *context->xBuff = (uint8_t)(base->RBR); in SMARTCARD_USIM_CompleteReceiveData()
176 static void SMARTCARD_USIM_StartSendData(USIM_Type *base, smartcard_context_t *context) in SMARTCARD_USIM_StartSendData() argument
185 base->FCR |= USIM_FCR_RESETTF_MASK; in SMARTCARD_USIM_StartSendData()
188 base->FCR &= ~USIM_FCR_TX_HOLD_MASK; in SMARTCARD_USIM_StartSendData()
191 base->DLR = base->DLR; in SMARTCARD_USIM_StartSendData()
194 base->FCR &= ~USIM_FCR_TX_TL_MASK; in SMARTCARD_USIM_StartSendData()
197 base->IER |= USIM_IER_TDR_MASK; in SMARTCARD_USIM_StartSendData()
206 static void SMARTCARD_USIM_StartReceiveData(USIM_Type *base, smartcard_context_t *context) in SMARTCARD_USIM_StartReceiveData() argument
219 … base->FCR = (base->FCR & ~USIM_FCR_RX_TL_MASK) | USIM_FIND_RX_FIFO_TRIGGER_LEVEL(context->xSize); in SMARTCARD_USIM_StartReceiveData()
224 base->FCR |= USIM_FCR_RX_TL_MASK; in SMARTCARD_USIM_StartReceiveData()
231 base->FCR &= ~USIM_FCR_RX_TL_MASK; in SMARTCARD_USIM_StartReceiveData()
235 base->IER |= USIM_IER_RDR_MASK; in SMARTCARD_USIM_StartReceiveData()
244 static bool SMARTCARD_USIM_SetTransferType(USIM_Type *base, smartcard_context_t *context, smartcard… in SMARTCARD_USIM_SetTransferType() argument
256 base->LCR &= ~(USIM_LCR_TX_T1_MASK | USIM_LCR_RX_T1_MASK); in SMARTCARD_USIM_SetTransferType()
264 …if (!SMARTCARD_USIM_SetBaudRate(base, (uint32_t)context->cardParams.Fi, (uint32_t)context->cardPar… in SMARTCARD_USIM_SetTransferType()
272 base->CWTR = (uint32_t)temp16 - SMARTCARD_T0_CWT_ADJUSTMENT; in SMARTCARD_USIM_SetTransferType()
273 base->BWTR = (uint32_t)temp16 - SMARTCARD_T0_BWT_ADJUSTMENT; in SMARTCARD_USIM_SetTransferType()
278 base->EGTR = context->cardParams.GTN; in SMARTCARD_USIM_SetTransferType()
281 base->ECR = (base->ECR & ~(USIM_ECR_T0ERR_TL_MASK | USIM_ECR_PE_TL_MASK)) | in SMARTCARD_USIM_SetTransferType()
285 base->IIR = 0x37u; in SMARTCARD_USIM_SetTransferType()
287 base->IER |= USIM_IER_T0ERR_MASK | USIM_IER_PERR_MASK; in SMARTCARD_USIM_SetTransferType()
294 base->LCR &= ~(USIM_LCR_TX_T1_MASK | USIM_LCR_RX_T1_MASK); in SMARTCARD_USIM_SetTransferType()
298 base->CWTR = (uint32_t)temp16 - SMARTCARD_T0_CWT_ADJUSTMENT; in SMARTCARD_USIM_SetTransferType()
299 base->BWTR = (uint32_t)temp16 - SMARTCARD_T0_BWT_ADJUSTMENT; in SMARTCARD_USIM_SetTransferType()
304 base->EGTR = context->cardParams.GTN; in SMARTCARD_USIM_SetTransferType()
307 base->ECR = (base->ECR & ~(USIM_ECR_T0ERR_TL_MASK | USIM_ECR_PE_TL_MASK)) | in SMARTCARD_USIM_SetTransferType()
311 base->IIR = 0x37u; in SMARTCARD_USIM_SetTransferType()
313 base->IER |= USIM_IER_T0ERR_MASK | USIM_IER_PERR_MASK; in SMARTCARD_USIM_SetTransferType()
320 base->LCR |= USIM_LCR_TX_T1_MASK | USIM_LCR_RX_T1_MASK; in SMARTCARD_USIM_SetTransferType()
325 base->BWTR = bwiVal - SMARTCARD_T1_BWT_ADJUSTMENT; in SMARTCARD_USIM_SetTransferType()
330 base->CWTR = (uint32_t)temp16 - SMARTCARD_T1_CWT_ADJUSTMENT; in SMARTCARD_USIM_SetTransferType()
334 base->BGTR = (uint32_t)context->cardParams.BGI - 11U; in SMARTCARD_USIM_SetTransferType()
339 base->EGTR = context->cardParams.GTN; in SMARTCARD_USIM_SetTransferType()
341 base->IIR = 0x37u; in SMARTCARD_USIM_SetTransferType()
343 base->IER |= USIM_IER_FRAMERR_MASK; in SMARTCARD_USIM_SetTransferType()
452 status_t SMARTCARD_USIM_Init(USIM_Type *base, smartcard_context_t *context, uint32_t srcClock_Hz) in SMARTCARD_USIM_Init() argument
454 assert((NULL != base)); in SMARTCARD_USIM_Init()
461 uint32_t instance = SMARTCARD_USIM_GetInstance(base); in SMARTCARD_USIM_Init()
472 context->base = base; in SMARTCARD_USIM_Init()
475 base->CLKR = in SMARTCARD_USIM_Init()
477 base->USCCR |= USIM_USCCR_TXD_FORCE_MASK; in SMARTCARD_USIM_Init()
479 base->FCR |= USIM_FCR_RESETTF_MASK | USIM_FCR_RESETRF_MASK; in SMARTCARD_USIM_Init()
481 if (!SMARTCARD_USIM_SetTransferType(base, context, kSMARTCARD_SetupATRMode)) in SMARTCARD_USIM_Init()
496 base->FCR |= USIM_FCR_TX_HOLD_MASK; in SMARTCARD_USIM_Init()
507 void SMARTCARD_USIM_Deinit(USIM_Type *base) in SMARTCARD_USIM_Deinit() argument
511 while ((base->FSR & USIM_FSR_TX_LENGTH_MASK) != 0u) in SMARTCARD_USIM_Deinit()
514 while ((base->LSR & USIM_LSR_TX_WORKING_MASK) != 0u) in SMARTCARD_USIM_Deinit()
517 instance = SMARTCARD_USIM_GetInstance(base); in SMARTCARD_USIM_Deinit()
545 status_t SMARTCARD_USIM_TransferNonBlocking(USIM_Type *base, smartcard_context_t *context, smartcar… in SMARTCARD_USIM_TransferNonBlocking() argument
558 if (0 != SMARTCARD_USIM_GetTransferRemainingBytes(base, context)) in SMARTCARD_USIM_TransferNonBlocking()
582 SMARTCARD_USIM_StartReceiveData(base, context); in SMARTCARD_USIM_TransferNonBlocking()
589 SMARTCARD_USIM_StartSendData(base, context); in SMARTCARD_USIM_TransferNonBlocking()
612 int32_t SMARTCARD_USIM_GetTransferRemainingBytes(USIM_Type *base, smartcard_context_t *context) in SMARTCARD_USIM_GetTransferRemainingBytes() argument
625 count += ((base->FSR & USIM_FSR_TX_LENGTH_MASK) >> USIM_FSR_TX_LENGTH_SHIFT); in SMARTCARD_USIM_GetTransferRemainingBytes()
645 status_t SMARTCARD_USIM_AbortTransfer(USIM_Type *base, smartcard_context_t *context) in SMARTCARD_USIM_AbortTransfer() argument
662 SMARTCARD_USIM_CompleteReceiveData(base, context); in SMARTCARD_USIM_AbortTransfer()
666 SMARTCARD_USIM_CompleteSendData(base, context); in SMARTCARD_USIM_AbortTransfer()
682 void SMARTCARD_USIM_IRQHandler(USIM_Type *base, smartcard_context_t *context) in SMARTCARD_USIM_IRQHandler() argument
690 if (((base->IIR & USIM_IIR_CWT_MASK) != 0u) && ((base->IER & USIM_IER_CWT_MASK) != 0u)) in SMARTCARD_USIM_IRQHandler()
693 base->IIR |= USIM_IIR_CWT_MASK; in SMARTCARD_USIM_IRQHandler()
695 base->DLR = base->DLR; in SMARTCARD_USIM_IRQHandler()
710 SMARTCARD_USIM_CompleteReceiveData(base, context); in SMARTCARD_USIM_IRQHandler()
714 SMARTCARD_USIM_CompleteSendData(base, context); in SMARTCARD_USIM_IRQHandler()
720 if (((base->IIR & USIM_IIR_BWT_MASK) != 0u) && ((base->IER & USIM_IER_BWT_MASK) != 0u)) in SMARTCARD_USIM_IRQHandler()
723 base->IIR |= USIM_IIR_BWT_MASK; in SMARTCARD_USIM_IRQHandler()
725 base->DLR = base->DLR; in SMARTCARD_USIM_IRQHandler()
738 (void)SMARTCARD_USIM_Control(base, context, kSMARTCARD_ResetWaitTimeMultiplier, 1u); in SMARTCARD_USIM_IRQHandler()
744 SMARTCARD_USIM_CompleteReceiveData(base, context); in SMARTCARD_USIM_IRQHandler()
748 SMARTCARD_USIM_CompleteSendData(base, context); in SMARTCARD_USIM_IRQHandler()
754 if ((base->IIR & USIM_IIR_PERR_MASK) != 0u) in SMARTCARD_USIM_IRQHandler()
757 base->IIR |= USIM_IIR_PERR_MASK; in SMARTCARD_USIM_IRQHandler()
765 SMARTCARD_USIM_CompleteReceiveData(base, context); in SMARTCARD_USIM_IRQHandler()
775 SMARTCARD_USIM_CompleteReceiveData(base, context); in SMARTCARD_USIM_IRQHandler()
781 if ((base->IIR & USIM_IIR_FRAMERR_MASK) != 0u) in SMARTCARD_USIM_IRQHandler()
786 base->IIR |= USIM_IIR_FRAMERR_MASK; in SMARTCARD_USIM_IRQHandler()
789 SMARTCARD_USIM_CompleteReceiveData(base, context); in SMARTCARD_USIM_IRQHandler()
794 if ((base->IIR & USIM_IIR_T0ERR_MASK) != 0u) in SMARTCARD_USIM_IRQHandler()
799 base->IIR |= USIM_IIR_T0ERR_MASK; in SMARTCARD_USIM_IRQHandler()
802 SMARTCARD_USIM_CompleteSendData(base, context); in SMARTCARD_USIM_IRQHandler()
807 if (((base->IIR & USIM_IIR_RDR_MASK) != 0u) && ((base->IER & USIM_IER_RDR_MASK) != 0u)) in SMARTCARD_USIM_IRQHandler()
811 ((base->IER & USIM_IER_BWT_MASK) != 0u)) in SMARTCARD_USIM_IRQHandler()
815 base->IIR = USIM_IIR_CWT_MASK; in SMARTCARD_USIM_IRQHandler()
818 base->IER = (base->IER & ~USIM_IER_BWT_MASK) | USIM_IER_CWT_MASK; in SMARTCARD_USIM_IRQHandler()
827 uint8_t ts = (uint8_t)base->RBR; in SMARTCARD_USIM_IRQHandler()
834 base->LCR |= USIM_LCR_ORDER_MASK; in SMARTCARD_USIM_IRQHandler()
835 base->LCR &= ~USIM_LCR_EPS_MASK; in SMARTCARD_USIM_IRQHandler()
843 base->LCR &= ~USIM_LCR_ORDER_MASK; in SMARTCARD_USIM_IRQHandler()
844 base->LCR |= USIM_LCR_EPS_MASK; in SMARTCARD_USIM_IRQHandler()
851 SMARTCARD_USIM_CompleteReceiveData(base, context); in SMARTCARD_USIM_IRQHandler()
855 while (((base->FSR & USIM_FSR_RX_LENGTH_MASK) != 0u) && ((context->xSize) > 0u)) in SMARTCARD_USIM_IRQHandler()
858 *context->xBuff = (uint8_t)(base->RBR); in SMARTCARD_USIM_IRQHandler()
866 SMARTCARD_USIM_CompleteReceiveData(base, context); in SMARTCARD_USIM_IRQHandler()
875 … base->FCR = (base->FCR & ~USIM_FCR_RX_TL_MASK) | USIM_FIND_RX_FIFO_TRIGGER_LEVEL(context->xSize); in SMARTCARD_USIM_IRQHandler()
882 if (((base->IIR & USIM_IIR_TDR_MASK) != 0u) && ((base->IER & USIM_IER_TDR_MASK) != 0u)) in SMARTCARD_USIM_IRQHandler()
886 SMARTCARD_USIM_CompleteSendData(base, context); in SMARTCARD_USIM_IRQHandler()
891 … (uint8_t)((base->FSR & USIM_FSR_TX_LENGTH_MASK) >> USIM_FSR_TX_LENGTH_SHIFT)) > 0u) && in SMARTCARD_USIM_IRQHandler()
895 base->THR = *(context->xBuff); in SMARTCARD_USIM_IRQHandler()
916 status_t SMARTCARD_USIM_Control(USIM_Type *base, in SMARTCARD_USIM_Control() argument
941 base->DLR = base->DLR; in SMARTCARD_USIM_Control()
945 base->IER |= USIM_IER_BWT_MASK | USIM_IER_CWT_MASK; in SMARTCARD_USIM_Control()
949 base->IER &= ~(USIM_IER_BWT_MASK | USIM_IER_CWT_MASK); in SMARTCARD_USIM_Control()
953 base->DLR = base->DLR; in SMARTCARD_USIM_Control()
957 base->IER |= USIM_IER_CWT_MASK; in SMARTCARD_USIM_Control()
961 base->IER &= ~USIM_IER_CWT_MASK; in SMARTCARD_USIM_Control()
965 base->DLR = base->DLR; in SMARTCARD_USIM_Control()
969 base->IER |= USIM_IER_BWT_MASK; in SMARTCARD_USIM_Control()
973 base->IER &= ~USIM_IER_BWT_MASK; in SMARTCARD_USIM_Control()
979 base->FCR &= ~USIM_FCR_RX_TL_MASK; in SMARTCARD_USIM_Control()
981 base->IER |= USIM_IER_RDR_MASK; in SMARTCARD_USIM_Control()
985 base->IER |= USIM_IER_T0ERR_MASK | USIM_IER_PERR_MASK | USIM_IER_FRAMERR_MASK; in SMARTCARD_USIM_Control()
989 base->IER &= ~(USIM_IER_T0ERR_MASK | USIM_IER_PERR_MASK | USIM_IER_FRAMERR_MASK); in SMARTCARD_USIM_Control()
993 if (!SMARTCARD_USIM_SetBaudRate(base, (uint32_t)context->cardParams.Fi, in SMARTCARD_USIM_Control()
1001 if (!SMARTCARD_USIM_SetTransferType(base, context, kSMARTCARD_SetupATRMode)) in SMARTCARD_USIM_Control()
1008 if (!SMARTCARD_USIM_SetTransferType(base, context, kSMARTCARD_SetupT0Mode)) in SMARTCARD_USIM_Control()
1015 if (!SMARTCARD_USIM_SetTransferType(base, context, kSMARTCARD_SetupT1Mode)) in SMARTCARD_USIM_Control()
1022 base->IER |= USIM_IER_RDR_MASK; in SMARTCARD_USIM_Control()
1026 base->IER &= ~USIM_IER_RDR_MASK; in SMARTCARD_USIM_Control()
1030 base->IER |= USIM_IER_TDR_MASK; in SMARTCARD_USIM_Control()
1034 base->IER &= ~USIM_IER_TDR_MASK; in SMARTCARD_USIM_Control()
1041 base->BWTR = temp32 - SMARTCARD_T1_BWT_ADJUSTMENT; in SMARTCARD_USIM_Control()
1065 void SMARTCARD_USIM_TSExpiryCallback(USIM_Type *base, smartcard_context_t *context) in SMARTCARD_USIM_TSExpiryCallback() argument
1081 SMARTCARD_USIM_CompleteReceiveData(base, context); in SMARTCARD_USIM_TSExpiryCallback()