Lines Matching refs:context

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…
116 static void SMARTCARD_USIM_CompleteSendData(USIM_Type *base, smartcard_context_t *context) in SMARTCARD_USIM_CompleteSendData() argument
118 assert((NULL != context)); in SMARTCARD_USIM_CompleteSendData()
128 context->xIsBusy = false; in SMARTCARD_USIM_CompleteSendData()
129 context->transferState = kSMARTCARD_IdleState; in SMARTCARD_USIM_CompleteSendData()
131 context->xSize = 0u; in SMARTCARD_USIM_CompleteSendData()
133 if (NULL != context->transferCallback) in SMARTCARD_USIM_CompleteSendData()
135 context->transferCallback(context, context->transferCallbackParam); in SMARTCARD_USIM_CompleteSendData()
145 static void SMARTCARD_USIM_CompleteReceiveData(USIM_Type *base, smartcard_context_t *context) in SMARTCARD_USIM_CompleteReceiveData() argument
147 assert((NULL != context)); 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()
157 ++context->xBuff; in SMARTCARD_USIM_CompleteReceiveData()
158 --context->xSize; in SMARTCARD_USIM_CompleteReceiveData()
162 context->xIsBusy = false; in SMARTCARD_USIM_CompleteReceiveData()
164 if (NULL != context->transferCallback) in SMARTCARD_USIM_CompleteReceiveData()
166 context->transferCallback(context, context->transferCallbackParam); in SMARTCARD_USIM_CompleteReceiveData()
176 static void SMARTCARD_USIM_StartSendData(USIM_Type *base, smartcard_context_t *context) in SMARTCARD_USIM_StartSendData() argument
178 assert((NULL != context)); in SMARTCARD_USIM_StartSendData()
181 context->transferState = kSMARTCARD_TransmittingState; in SMARTCARD_USIM_StartSendData()
182 context->xIsBusy = true; in SMARTCARD_USIM_StartSendData()
206 static void SMARTCARD_USIM_StartReceiveData(USIM_Type *base, smartcard_context_t *context) in SMARTCARD_USIM_StartReceiveData() argument
208 assert((NULL != context)); in SMARTCARD_USIM_StartReceiveData()
211 context->xIsBusy = true; in SMARTCARD_USIM_StartReceiveData()
215 if (context->tType == kSMARTCARD_T0Transport) in SMARTCARD_USIM_StartReceiveData()
217 if (context->xSize < context->rxFifoThreshold) in SMARTCARD_USIM_StartReceiveData()
219 … base->FCR = (base->FCR & ~USIM_FCR_RX_TL_MASK) | USIM_FIND_RX_FIFO_TRIGGER_LEVEL(context->xSize); in SMARTCARD_USIM_StartReceiveData()
244 static bool SMARTCARD_USIM_SetTransferType(USIM_Type *base, smartcard_context_t *context, smartcard… in SMARTCARD_USIM_SetTransferType() argument
246 assert((NULL != context)); in SMARTCARD_USIM_SetTransferType()
258 context->cardParams.Fi = 372u; in SMARTCARD_USIM_SetTransferType()
259 context->cardParams.Di = 1u; in SMARTCARD_USIM_SetTransferType()
260 context->cardParams.currentD = 1u; in SMARTCARD_USIM_SetTransferType()
261 context->cardParams.WI = 0x0Au; in SMARTCARD_USIM_SetTransferType()
262 context->cardParams.GTN = 0x00u; in SMARTCARD_USIM_SetTransferType()
264 …if (!SMARTCARD_USIM_SetBaudRate(base, (uint32_t)context->cardParams.Fi, (uint32_t)context->cardPar… in SMARTCARD_USIM_SetTransferType()
271 …temp16 = (960u * context->cardParams.currentD * context->cardParams.WI) + (context->cardParams.cur… in SMARTCARD_USIM_SetTransferType()
277context->cardParams.GTN = (context->cardParams.GTN == 0xFFu) ? 0x00u : context->cardParams.GTN; in SMARTCARD_USIM_SetTransferType()
278 base->EGTR = context->cardParams.GTN; in SMARTCARD_USIM_SetTransferType()
289 context->tType = kSMARTCARD_T0Transport; in SMARTCARD_USIM_SetTransferType()
297 …temp16 = (960u * context->cardParams.currentD * context->cardParams.WI) + (context->cardParams.cur… in SMARTCARD_USIM_SetTransferType()
303context->cardParams.GTN = (context->cardParams.GTN == 0xFFu) ? 0x00u : context->cardParams.GTN; in SMARTCARD_USIM_SetTransferType()
304 base->EGTR = context->cardParams.GTN; in SMARTCARD_USIM_SetTransferType()
315 context->tType = kSMARTCARD_T0Transport; in SMARTCARD_USIM_SetTransferType()
324 …bwiVal = 11u + ((((uint32_t)1u << context->cardParams.BWI) + 1u) * 960u * context->cardParams.… in SMARTCARD_USIM_SetTransferType()
329 temp16 = ((uint16_t)1u << context->cardParams.CWI) + 15u; in SMARTCARD_USIM_SetTransferType()
333 context->cardParams.BGI = 22u; in SMARTCARD_USIM_SetTransferType()
334 base->BGTR = (uint32_t)context->cardParams.BGI - 11U; in SMARTCARD_USIM_SetTransferType()
338context->cardParams.GTN = (context->cardParams.GTN == 0xFFu) ? 0x00u : (context->cardParams.GTN + … in SMARTCARD_USIM_SetTransferType()
339 base->EGTR = context->cardParams.GTN; in SMARTCARD_USIM_SetTransferType()
345 context->tType = kSMARTCARD_T1Transport; 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
456 …if ((NULL == context) || (0UL == srcClock_Hz) || (0UL != (srcClock_Hz % context->interfaceConfig.s… in SMARTCARD_USIM_Init()
472 context->base = base; in SMARTCARD_USIM_Init()
476 …USIM_CLKR_STOP_UCLK_MASK | USIM_CLKR_DIVISOR(srcClock_Hz / context->interfaceConfig.smartCardClock… in SMARTCARD_USIM_Init()
481 if (!SMARTCARD_USIM_SetTransferType(base, context, kSMARTCARD_SetupATRMode)) in SMARTCARD_USIM_Init()
486 context->txFifoEntryCount = FSL_FEATURE_USIM_FIFO_DEPTH; in SMARTCARD_USIM_Init()
488 context->rxFifoThreshold = SMARTCARD_MAX_RX_TRIGGER_LEVEL; in SMARTCARD_USIM_Init()
545 status_t SMARTCARD_USIM_TransferNonBlocking(USIM_Type *base, smartcard_context_t *context, smartcar… in SMARTCARD_USIM_TransferNonBlocking() argument
547 if ((NULL == context) || (NULL == xfer) || (xfer->buff == NULL)) in SMARTCARD_USIM_TransferNonBlocking()
558 if (0 != SMARTCARD_USIM_GetTransferRemainingBytes(base, context)) in SMARTCARD_USIM_TransferNonBlocking()
560 if (kSMARTCARD_Receive == context->direction) in SMARTCARD_USIM_TransferNonBlocking()
570 context->rxtCrossed = false; in SMARTCARD_USIM_TransferNonBlocking()
571 context->txtCrossed = false; in SMARTCARD_USIM_TransferNonBlocking()
572 context->parityError = false; in SMARTCARD_USIM_TransferNonBlocking()
574 context->xBuff = xfer->buff; in SMARTCARD_USIM_TransferNonBlocking()
575 context->xSize = xfer->size; in SMARTCARD_USIM_TransferNonBlocking()
579 context->direction = xfer->direction; in SMARTCARD_USIM_TransferNonBlocking()
580 context->transferState = kSMARTCARD_ReceivingState; in SMARTCARD_USIM_TransferNonBlocking()
582 SMARTCARD_USIM_StartReceiveData(base, context); in SMARTCARD_USIM_TransferNonBlocking()
586 context->direction = xfer->direction; in SMARTCARD_USIM_TransferNonBlocking()
587 context->transferState = kSMARTCARD_TransmittingState; 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
614 if ((NULL == context)) in SMARTCARD_USIM_GetTransferRemainingBytes()
618 if (context->xIsBusy) in SMARTCARD_USIM_GetTransferRemainingBytes()
620 if (context->direction == kSMARTCARD_Transmit) in SMARTCARD_USIM_GetTransferRemainingBytes()
624 count = context->xSize; in SMARTCARD_USIM_GetTransferRemainingBytes()
628 return (int32_t)context->xSize; in SMARTCARD_USIM_GetTransferRemainingBytes()
645 status_t SMARTCARD_USIM_AbortTransfer(USIM_Type *base, smartcard_context_t *context) in SMARTCARD_USIM_AbortTransfer() argument
647 if ((NULL == context)) in SMARTCARD_USIM_AbortTransfer()
652 context->abortTransfer = true; in SMARTCARD_USIM_AbortTransfer()
655 if ((!context->xIsBusy)) in SMARTCARD_USIM_AbortTransfer()
660 if (kSMARTCARD_Receive == context->direction) in SMARTCARD_USIM_AbortTransfer()
662 SMARTCARD_USIM_CompleteReceiveData(base, context); in SMARTCARD_USIM_AbortTransfer()
664 else if (kSMARTCARD_Transmit == context->direction) 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
684 if (NULL == context) in SMARTCARD_USIM_IRQHandler()
697 if (kSMARTCARD_T0Transport == context->tType) in SMARTCARD_USIM_IRQHandler()
699 context->timersState.wwtExpired = true; in SMARTCARD_USIM_IRQHandler()
703 context->timersState.cwtExpired = true; in SMARTCARD_USIM_IRQHandler()
706 if (context->xIsBusy) in SMARTCARD_USIM_IRQHandler()
708 if (kSMARTCARD_Receive == context->direction) in SMARTCARD_USIM_IRQHandler()
710 SMARTCARD_USIM_CompleteReceiveData(base, context); in SMARTCARD_USIM_IRQHandler()
714 SMARTCARD_USIM_CompleteSendData(base, context); in SMARTCARD_USIM_IRQHandler()
727 if (kSMARTCARD_T0Transport == context->tType) in SMARTCARD_USIM_IRQHandler()
729 context->timersState.wwtExpired = true; in SMARTCARD_USIM_IRQHandler()
733 context->timersState.bwtExpired = true; in SMARTCARD_USIM_IRQHandler()
736 if (context->wtxRequested) in SMARTCARD_USIM_IRQHandler()
738 (void)SMARTCARD_USIM_Control(base, context, kSMARTCARD_ResetWaitTimeMultiplier, 1u); in SMARTCARD_USIM_IRQHandler()
740 if (context->xIsBusy) in SMARTCARD_USIM_IRQHandler()
742 if (kSMARTCARD_Receive == context->direction) in SMARTCARD_USIM_IRQHandler()
744 SMARTCARD_USIM_CompleteReceiveData(base, context); in SMARTCARD_USIM_IRQHandler()
748 SMARTCARD_USIM_CompleteSendData(base, context); in SMARTCARD_USIM_IRQHandler()
758 if (kSMARTCARD_WaitingForTSState == context->transferState) in SMARTCARD_USIM_IRQHandler()
761 context->transferState = kSMARTCARD_InvalidTSDetecetedState; in SMARTCARD_USIM_IRQHandler()
763 if ((context->xIsBusy) && (context->direction == kSMARTCARD_Receive)) in SMARTCARD_USIM_IRQHandler()
765 SMARTCARD_USIM_CompleteReceiveData(base, context); in SMARTCARD_USIM_IRQHandler()
770 context->parityError = true; in SMARTCARD_USIM_IRQHandler()
771 if (context->tType == kSMARTCARD_T0Transport) in SMARTCARD_USIM_IRQHandler()
774 context->rxtCrossed = true; in SMARTCARD_USIM_IRQHandler()
775 SMARTCARD_USIM_CompleteReceiveData(base, context); in SMARTCARD_USIM_IRQHandler()
784 context->rxtCrossed = true; in SMARTCARD_USIM_IRQHandler()
787 if (context->xIsBusy) in SMARTCARD_USIM_IRQHandler()
789 SMARTCARD_USIM_CompleteReceiveData(base, context); in SMARTCARD_USIM_IRQHandler()
797 context->txtCrossed = true; in SMARTCARD_USIM_IRQHandler()
800 if (context->xIsBusy) in SMARTCARD_USIM_IRQHandler()
802 SMARTCARD_USIM_CompleteSendData(base, context); in SMARTCARD_USIM_IRQHandler()
810 if ((context->tType == kSMARTCARD_T1Transport) && (context->xSize > 0u) && in SMARTCARD_USIM_IRQHandler()
813 context->timersState.cwtExpired = false; in SMARTCARD_USIM_IRQHandler()
820 if (kSMARTCARD_WaitingForTSState == context->transferState) in SMARTCARD_USIM_IRQHandler()
831 context->transferState = kSMARTCARD_ReceivingState; in SMARTCARD_USIM_IRQHandler()
833 context->cardParams.convention = kSMARTCARD_InverseConvention; in SMARTCARD_USIM_IRQHandler()
840 context->transferState = kSMARTCARD_ReceivingState; in SMARTCARD_USIM_IRQHandler()
842 context->cardParams.convention = kSMARTCARD_DirectConvention; in SMARTCARD_USIM_IRQHandler()
848 context->transferState = kSMARTCARD_InvalidTSDetecetedState; 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()
859 ++context->xBuff; in SMARTCARD_USIM_IRQHandler()
860 --context->xSize; in SMARTCARD_USIM_IRQHandler()
864 if (context->xSize == 0u) in SMARTCARD_USIM_IRQHandler()
866 SMARTCARD_USIM_CompleteReceiveData(base, context); in SMARTCARD_USIM_IRQHandler()
872 if (context->xSize < context->rxFifoThreshold) 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()
884 if (context->xSize == 0u) in SMARTCARD_USIM_IRQHandler()
886 SMARTCARD_USIM_CompleteSendData(base, context); in SMARTCARD_USIM_IRQHandler()
890 while (((context->txFifoEntryCount - in SMARTCARD_USIM_IRQHandler()
892 (context->xSize > 0u)) in SMARTCARD_USIM_IRQHandler()
895 base->THR = *(context->xBuff); in SMARTCARD_USIM_IRQHandler()
896 ++context->xBuff; in SMARTCARD_USIM_IRQHandler()
897 --context->xSize; in SMARTCARD_USIM_IRQHandler()
917 smartcard_context_t *context, in SMARTCARD_USIM_Control() argument
921 if ((NULL == context)) in SMARTCARD_USIM_Control()
977 context->transferState = kSMARTCARD_WaitingForTSState; in SMARTCARD_USIM_Control()
993 if (!SMARTCARD_USIM_SetBaudRate(base, (uint32_t)context->cardParams.Fi, in SMARTCARD_USIM_Control()
994 (uint32_t)context->cardParams.currentD)) 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()
1040 … (11u + ((((uint32_t)1u << context->cardParams.BWI) + 1u) * 960u * context->cardParams.currentD)); in SMARTCARD_USIM_Control()
1045 context->wtxRequested = true; in SMARTCARD_USIM_Control()
1049 context->wtxRequested = false; in SMARTCARD_USIM_Control()
1065 void SMARTCARD_USIM_TSExpiryCallback(USIM_Type *base, smartcard_context_t *context) in SMARTCARD_USIM_TSExpiryCallback() argument
1067 if ((NULL == context)) in SMARTCARD_USIM_TSExpiryCallback()
1078 context->timersState.initCharTimerExpired = true; in SMARTCARD_USIM_TSExpiryCallback()
1079 context->transferState = kSMARTCARD_IdleState; in SMARTCARD_USIM_TSExpiryCallback()
1081 SMARTCARD_USIM_CompleteReceiveData(base, context); in SMARTCARD_USIM_TSExpiryCallback()