Lines Matching refs:object
101 static void I2CCC32XX_primeReadBurst(I2CCC32XX_Object *object,
103 static void I2CCC32XX_primeWriteBurst(I2CCC32XX_Object *object,
105 static int_fast16_t I2CCC32XX_primeTransfer(I2CCC32XX_Object *object,
107 static void I2CCC32XX_readRecieveFifo(I2CCC32XX_Object *object,
127 I2CCC32XX_Object *object = handle->object; in I2CCC32XX_blockingCallback() local
130 SemaphoreP_post(object->transferComplete); in I2CCC32XX_blockingCallback()
136 static inline void I2CCC32XX_fillTransmitFifo(I2CCC32XX_Object *object, in I2CCC32XX_fillTransmitFifo() argument
139 while(object->writeCount && object->burstCount && in I2CCC32XX_fillTransmitFifo()
140 I2CFIFODataPutNonBlocking(hwAttrs->baseAddr, *(object->writeBuf))) { in I2CCC32XX_fillTransmitFifo()
142 object->writeBuf++; in I2CCC32XX_fillTransmitFifo()
143 object->writeCount--; in I2CCC32XX_fillTransmitFifo()
144 object->burstCount--; in I2CCC32XX_fillTransmitFifo()
156 I2CCC32XX_Object *object = handle->object; in I2CCC32XX_initHw() local
178 object->bitRate > I2C_100kHz); in I2CCC32XX_initHw()
214 I2CCC32XX_Object *object = handle->object; in I2CCC32XX_completeTransfer() local
225 if (object->currentTransaction->status == I2C_STATUS_CANCEL) { in I2CCC32XX_completeTransfer()
232 object->transferCallbackFxn(handle, object->currentTransaction, false); in I2CCC32XX_completeTransfer()
233 object->currentTransaction->status = I2C_STATUS_CANCEL; in I2CCC32XX_completeTransfer()
236 while (object->headPtr != object->tailPtr) { in I2CCC32XX_completeTransfer()
237 object->headPtr = object->headPtr->nextPtr; in I2CCC32XX_completeTransfer()
238 object->headPtr->status = I2C_STATUS_CANCEL; in I2CCC32XX_completeTransfer()
239 object->transferCallbackFxn(handle, object->headPtr, false); in I2CCC32XX_completeTransfer()
240 object->headPtr->status = I2C_STATUS_CANCEL; in I2CCC32XX_completeTransfer()
244 object->currentTransaction = NULL; in I2CCC32XX_completeTransfer()
245 object->headPtr = NULL; in I2CCC32XX_completeTransfer()
246 object->tailPtr = NULL; in I2CCC32XX_completeTransfer()
249 else if (object->headPtr == object->tailPtr) { in I2CCC32XX_completeTransfer()
252 object->headPtr = NULL; in I2CCC32XX_completeTransfer()
253 object->tailPtr = NULL; in I2CCC32XX_completeTransfer()
260 object->transferCallbackFxn(handle, object->currentTransaction, in I2CCC32XX_completeTransfer()
261 (object->currentTransaction->status == I2C_STATUS_SUCCESS)); in I2CCC32XX_completeTransfer()
268 object->headPtr = object->headPtr->nextPtr; in I2CCC32XX_completeTransfer()
275 object->transferCallbackFxn(handle, object->currentTransaction, in I2CCC32XX_completeTransfer()
276 (object->currentTransaction->status == I2C_STATUS_SUCCESS)); in I2CCC32XX_completeTransfer()
278 I2CCC32XX_primeTransfer(object, in I2CCC32XX_completeTransfer()
279 (I2CCC32XX_HWAttrsV1 const *)handle->hwAttrs, object->headPtr); in I2CCC32XX_completeTransfer()
302 I2CCC32XX_Object *object = ((I2C_Handle)arg)->object; in I2CCC32XX_hwiFxn() local
317 object->currentTransaction->status = I2C_STATUS_ARB_LOST; in I2CCC32XX_hwiFxn()
320 object->currentTransaction->status = I2C_STATUS_DATA_NACK; in I2CCC32XX_hwiFxn()
323 object->currentTransaction->status = I2C_STATUS_ADDR_NACK; in I2CCC32XX_hwiFxn()
326 object->currentTransaction->status = I2C_STATUS_CLOCK_TIMEOUT; in I2CCC32XX_hwiFxn()
329 object->currentTransaction->status = I2C_STATUS_ERROR; in I2CCC32XX_hwiFxn()
348 if (object->writeCount) { in I2CCC32XX_hwiFxn()
351 if (0 == object->burstCount) { in I2CCC32XX_hwiFxn()
352 I2CCC32XX_primeWriteBurst(object, hwAttrs); in I2CCC32XX_hwiFxn()
355 I2CCC32XX_fillTransmitFifo(object, hwAttrs); in I2CCC32XX_hwiFxn()
359 else if (object->readCount) { in I2CCC32XX_hwiFxn()
365 object->burstStarted = false; in I2CCC32XX_hwiFxn()
366 I2CCC32XX_primeReadBurst(object, hwAttrs); in I2CCC32XX_hwiFxn()
372 I2CCC32XX_readRecieveFifo(object, hwAttrs); in I2CCC32XX_hwiFxn()
375 if (object->readCount && (0 == object->burstCount)) { in I2CCC32XX_hwiFxn()
376 I2CCC32XX_primeReadBurst(object, hwAttrs); in I2CCC32XX_hwiFxn()
384 if (object->currentTransaction->status == I2C_STATUS_INCOMPLETE && in I2CCC32XX_hwiFxn()
385 (!(object->readCount || object->writeCount))) { in I2CCC32XX_hwiFxn()
392 object->currentTransaction->status = I2C_STATUS_SUCCESS; in I2CCC32XX_hwiFxn()
404 static void I2CCC32XX_primeReadBurst(I2CCC32XX_Object *object, in I2CCC32XX_primeReadBurst() argument
411 object->currentTransaction->slaveAddress, true); in I2CCC32XX_primeReadBurst()
414 if(object->readCount > I2CCC32XX_MAX_BURST) { in I2CCC32XX_primeReadBurst()
415 object->burstCount = I2CCC32XX_MAX_BURST; in I2CCC32XX_primeReadBurst()
418 object->burstCount = object->readCount; in I2CCC32XX_primeReadBurst()
429 if(object->burstCount < I2CCC32XX_FIFO_SIZE) { in I2CCC32XX_primeReadBurst()
431 I2C_FIFOCTL_RXTRIG_M, object->burstCount << I2C_FIFOCTL_RXTRIG_S); in I2CCC32XX_primeReadBurst()
438 I2CMasterBurstLengthSet(hwAttrs->baseAddr, object->burstCount); in I2CCC32XX_primeReadBurst()
441 if(object->readCount > I2CCC32XX_MAX_BURST) { in I2CCC32XX_primeReadBurst()
450 if (!object->burstStarted) { in I2CCC32XX_primeReadBurst()
452 object->burstStarted = true; in I2CCC32XX_primeReadBurst()
464 static void I2CCC32XX_primeWriteBurst(I2CCC32XX_Object *object, in I2CCC32XX_primeWriteBurst() argument
471 object->currentTransaction->slaveAddress, false); in I2CCC32XX_primeWriteBurst()
474 if(object->writeCount > I2CCC32XX_MAX_BURST) { in I2CCC32XX_primeWriteBurst()
475 object->burstCount = I2CCC32XX_MAX_BURST; in I2CCC32XX_primeWriteBurst()
478 object->burstCount = object->writeCount; in I2CCC32XX_primeWriteBurst()
483 object->burstCount); in I2CCC32XX_primeWriteBurst()
486 if (object->readCount || object->writeCount > I2CCC32XX_MAX_BURST) { in I2CCC32XX_primeWriteBurst()
494 if (!object->burstStarted) { in I2CCC32XX_primeWriteBurst()
496 object->burstStarted = true; in I2CCC32XX_primeWriteBurst()
500 I2CCC32XX_fillTransmitFifo(object, hwAttrs); in I2CCC32XX_primeWriteBurst()
513 static int_fast16_t I2CCC32XX_primeTransfer(I2CCC32XX_Object *object, in I2CCC32XX_primeTransfer() argument
519 object->currentTransaction = transaction; in I2CCC32XX_primeTransfer()
521 object->writeBuf = transaction->writeBuf; in I2CCC32XX_primeTransfer()
522 object->writeCount = transaction->writeCount; in I2CCC32XX_primeTransfer()
524 object->readBuf = transaction->readBuf; in I2CCC32XX_primeTransfer()
525 object->readCount = transaction->readCount; in I2CCC32XX_primeTransfer()
527 object->burstCount = 0; in I2CCC32XX_primeTransfer()
528 object->burstStarted = false; in I2CCC32XX_primeTransfer()
548 else if (object->writeCount) { in I2CCC32XX_primeTransfer()
549 I2CCC32XX_primeWriteBurst(object, hwAttrs); in I2CCC32XX_primeTransfer()
553 I2CCC32XX_primeReadBurst(object, hwAttrs); in I2CCC32XX_primeTransfer()
562 static void I2CCC32XX_readRecieveFifo(I2CCC32XX_Object *object, in I2CCC32XX_readRecieveFifo() argument
566 while(object->readCount && object->burstCount && in I2CCC32XX_readRecieveFifo()
567 I2CFIFODataGetNonBlocking(hwAttrs->baseAddr, object->readBuf)) { in I2CCC32XX_readRecieveFifo()
568 object->readBuf++; in I2CCC32XX_readRecieveFifo()
569 object->readCount--; in I2CCC32XX_readRecieveFifo()
570 object->burstCount--; in I2CCC32XX_readRecieveFifo()
590 I2CCC32XX_Object *object = handle->object; in I2CCC32XX_cancel() local
597 if (!object->headPtr) { in I2CCC32XX_cancel()
610 object->currentTransaction->status = I2C_STATUS_CANCEL; in I2CCC32XX_cancel()
620 I2CCC32XX_Object *object = handle->object; in I2CCC32XX_close() local
625 DebugP_assert(object->headPtr == NULL); in I2CCC32XX_close()
636 Power_unregisterNotify(&(object->notifyObj)); in I2CCC32XX_close()
644 if (object->hwiHandle) { in I2CCC32XX_close()
645 HwiP_delete(object->hwiHandle); in I2CCC32XX_close()
646 object->hwiHandle = NULL; in I2CCC32XX_close()
648 if (object->mutex) { in I2CCC32XX_close()
649 SemaphoreP_delete(object->mutex); in I2CCC32XX_close()
650 object->mutex = NULL; in I2CCC32XX_close()
653 if (object->transferComplete) { in I2CCC32XX_close()
654 SemaphoreP_delete(object->transferComplete); in I2CCC32XX_close()
655 object->transferComplete = NULL; in I2CCC32XX_close()
658 object->isOpen = false; in I2CCC32XX_close()
676 I2CCC32XX_Object *object = handle->object; in I2CCC32XX_open() local
690 if(object->isOpen == true){ in I2CCC32XX_open()
696 object->isOpen = true; in I2CCC32XX_open()
700 object->transferMode = params->transferMode; in I2CCC32XX_open()
701 object->transferCallbackFxn = params->transferCallbackFxn; in I2CCC32XX_open()
702 object->bitRate = params->bitRate; in I2CCC32XX_open()
719 Power_registerNotify(&(object->notifyObj), PowerCC32XX_AWAKE_LPDS, in I2CCC32XX_open()
725 object->hwiHandle = HwiP_create(hwAttrs->intNum, I2CCC32XX_hwiFxn, in I2CCC32XX_open()
727 if (object->hwiHandle == NULL) { in I2CCC32XX_open()
738 object->mutex = SemaphoreP_create(1, &semParams); in I2CCC32XX_open()
739 if (object->mutex == NULL) { in I2CCC32XX_open()
748 if (object->transferMode == I2C_MODE_BLOCKING) { in I2CCC32XX_open()
753 object->transferComplete = SemaphoreP_create(0, &semParams); in I2CCC32XX_open()
754 if (object->transferComplete == NULL) { in I2CCC32XX_open()
760 object->transferCallbackFxn = I2CCC32XX_blockingCallback; in I2CCC32XX_open()
764 DebugP_assert(object->transferCallbackFxn != NULL); in I2CCC32XX_open()
768 object->headPtr = NULL; in I2CCC32XX_open()
769 object->tailPtr = NULL; in I2CCC32XX_open()
770 object->currentTransaction = NULL; in I2CCC32XX_open()
799 I2CCC32XX_Object *object = handle->object; in I2CCC32XX_transfer() local
811 if (object->transferMode == I2C_MODE_CALLBACK) { in I2CCC32XX_transfer()
813 if (object->headPtr) { in I2CCC32XX_transfer()
819 if (object->headPtr->status == I2C_STATUS_CANCEL) { in I2CCC32XX_transfer()
830 object->tailPtr->nextPtr = transaction; in I2CCC32XX_transfer()
833 object->tailPtr = transaction; in I2CCC32XX_transfer()
847 object->headPtr = transaction; in I2CCC32XX_transfer()
848 object->tailPtr = transaction; in I2CCC32XX_transfer()
856 if (SemaphoreP_pend(object->mutex, SemaphoreP_NO_WAIT) in I2CCC32XX_transfer()
860 if (object->transferMode == I2C_MODE_CALLBACK) { in I2CCC32XX_transfer()
871 if(SemaphoreP_pend(object->mutex, timeout) == SemaphoreP_TIMEOUT) { in I2CCC32XX_transfer()
877 if (object->transferMode == I2C_MODE_BLOCKING) { in I2CCC32XX_transfer()
884 SemaphoreP_pend(object->transferComplete, SemaphoreP_NO_WAIT); in I2CCC32XX_transfer()
894 ret = I2CCC32XX_primeTransfer(object, hwAttrs, transaction); in I2CCC32XX_transfer()
900 else if (object->transferMode == I2C_MODE_BLOCKING) { in I2CCC32XX_transfer()
902 if (SemaphoreP_pend(object->transferComplete, timeout) in I2CCC32XX_transfer()
913 if (object->headPtr) { in I2CCC32XX_transfer()
933 SemaphoreP_pend(object->transferComplete, in I2CCC32XX_transfer()
947 SemaphoreP_post(object->mutex); in I2CCC32XX_transfer()