Lines Matching refs:object
120 SPICC32XXDMA_Object *object = handle->object; in blockingTransferCallback() local
122 SemaphoreP_post(object->transferComplete); in blockingTransferCallback()
130 static void configDMA(SPICC32XXDMA_Object *object, in configDMA() argument
140 if (object->dataSize < 9) { in configDMA()
144 else if (object->dataSize < 17) { in configDMA()
158 if ((transaction->count - object->amtDataXferred) > MAX_DMA_TRANSFER_AMOUNT) { in configDMA()
159 object->currentXferAmt = MAX_DMA_TRANSFER_AMOUNT; in configDMA()
162 object->currentXferAmt = (transaction->count - object->amtDataXferred); in configDMA()
173 ((uint32_t) object->amtDataXferred * dataFrameSizeInBytes)); in configDMA()
188 object->currentXferAmt); in configDMA()
198 ((uint32_t) object->amtDataXferred * dataFrameSizeInBytes)); in configDMA()
212 object->currentXferAmt); in configDMA()
237 MAP_SPIWordCountSet(hwAttrs->baseAddr, object->currentXferAmt); in configDMA()
280 static void initHw(SPICC32XXDMA_Object *object, in initHw() argument
293 MAP_PRCMPeripheralClockGet(hwAttrs->spiPRCM), object->bitRate, in initHw()
294 mode[object->spiMode], object->frameFormat, in initHw()
296 hwAttrs->csPolarity | ((object->dataSize - 1) << 7))); in initHw()
299 MAP_SPIFIFOLevelSet(hwAttrs->baseAddr, object->txFifoTrigger, in initHw()
300 object->rxFifoTrigger); in initHw()
309 SPICC32XXDMA_Object *object = ((SPI_Handle) clientArg)->object; in postNotifyFxn() local
312 initHw(object, hwAttrs); in postNotifyFxn()
324 SPICC32XXDMA_Object *object = ((SPI_Handle)arg)->object; in spiHwiFxn() local
350 if (object->transaction->count - object->amtDataXferred > in spiHwiFxn()
353 object->amtDataXferred += object->currentXferAmt; in spiHwiFxn()
355 configDMA(object, hwAttrs, object->transaction); in spiHwiFxn()
359 object->transaction->status = SPI_TRANSFER_COMPLETED; in spiHwiFxn()
368 msg = object->transaction; in spiHwiFxn()
371 object->transaction = NULL; in spiHwiFxn()
373 object->transferCallbackFxn((SPI_Handle) arg, msg); in spiHwiFxn()
380 static inline void spiPollingTransfer(SPICC32XXDMA_Object *object, in spiPollingTransfer() argument
404 if (object->dataSize < 9) { in spiPollingTransfer()
407 else if (object->dataSize < 17) { in spiPollingTransfer()
426 if (object->dataSize < 9) { in spiPollingTransfer()
431 else if (object->dataSize < 17) { in spiPollingTransfer()
460 SPICC32XXDMA_Object *object = handle->object; in SPICC32XXDMA_close() local
469 Power_unregisterNotify(&(object->notifyObj)); in SPICC32XXDMA_close()
471 if (object->hwiHandle) { in SPICC32XXDMA_close()
472 HwiP_delete(object->hwiHandle); in SPICC32XXDMA_close()
473 object->hwiHandle = NULL; in SPICC32XXDMA_close()
475 if (object->transferComplete) { in SPICC32XXDMA_close()
476 SemaphoreP_delete(object->transferComplete); in SPICC32XXDMA_close()
477 object->transferComplete = NULL; in SPICC32XXDMA_close()
480 if (object->dmaHandle) { in SPICC32XXDMA_close()
481 UDMACC32XX_close(object->dmaHandle); in SPICC32XXDMA_close()
482 object->dmaHandle = NULL; in SPICC32XXDMA_close()
508 object->isOpen = false; in SPICC32XXDMA_close()
537 SPICC32XXDMA_Object *object = handle->object; in SPICC32XXDMA_open() local
542 if (object->isOpen) { in SPICC32XXDMA_open()
547 object->isOpen = true; in SPICC32XXDMA_open()
553 object->isOpen = false; in SPICC32XXDMA_open()
561 object->isOpen = false; in SPICC32XXDMA_open()
566 Power_registerNotify(&(object->notifyObj), PowerCC32XX_AWAKE_LPDS, in SPICC32XXDMA_open()
596 object->dmaHandle = UDMACC32XX_open(); in SPICC32XXDMA_open()
597 if (object->dmaHandle == NULL) { in SPICC32XXDMA_open()
606 object->hwiHandle = HwiP_create(hwAttrs->intNum, spiHwiFxn, &hwiParams); in SPICC32XXDMA_open()
607 if (object->hwiHandle == NULL) { in SPICC32XXDMA_open()
618 object->transferComplete = SemaphoreP_createBinary(0); in SPICC32XXDMA_open()
619 if (object->transferComplete == NULL) { in SPICC32XXDMA_open()
625 object->transferCallbackFxn = blockingTransferCallback; in SPICC32XXDMA_open()
634 object->transferCallbackFxn = params->transferCallbackFxn; in SPICC32XXDMA_open()
637 object->bitRate = params->bitRate; in SPICC32XXDMA_open()
638 object->dataSize = params->dataSize; in SPICC32XXDMA_open()
639 object->frameFormat = params->frameFormat; in SPICC32XXDMA_open()
640 object->spiMode = params->mode; in SPICC32XXDMA_open()
641 object->transaction = NULL; in SPICC32XXDMA_open()
642 object->transferMode = params->transferMode; in SPICC32XXDMA_open()
643 object->transferTimeout = params->transferTimeout; in SPICC32XXDMA_open()
646 if (object->dataSize < 9) { in SPICC32XXDMA_open()
647 object->rxFifoTrigger = sizeof(uint8_t); in SPICC32XXDMA_open()
648 object->txFifoTrigger = sizeof(uint8_t); in SPICC32XXDMA_open()
650 else if (object->dataSize < 17) { in SPICC32XXDMA_open()
651 object->rxFifoTrigger = sizeof(uint16_t); in SPICC32XXDMA_open()
652 object->txFifoTrigger = sizeof(uint16_t); in SPICC32XXDMA_open()
655 object->rxFifoTrigger = sizeof(uint32_t); in SPICC32XXDMA_open()
656 object->txFifoTrigger = sizeof(uint32_t); in SPICC32XXDMA_open()
659 initHw(object, hwAttrs); in SPICC32XXDMA_open()
672 SPICC32XXDMA_Object *object = handle->object; in SPICC32XXDMA_transfer() local
688 alignMask = (object->rxFifoTrigger - 1); in SPICC32XXDMA_transfer()
692 if (object->transaction) { in SPICC32XXDMA_transfer()
698 object->transaction = transaction; in SPICC32XXDMA_transfer()
699 object->transaction->status = SPI_TRANSFER_STARTED; in SPICC32XXDMA_transfer()
700 object->amtDataXferred = 0; in SPICC32XXDMA_transfer()
701 object->currentXferAmt = 0; in SPICC32XXDMA_transfer()
710 if ((object->transferMode == SPI_MODE_BLOCKING && in SPICC32XXDMA_transfer()
712 spiPollingTransfer(object, hwAttrs, transaction); in SPICC32XXDMA_transfer()
715 object->transaction->status = SPI_TRANSFER_COMPLETED; in SPICC32XXDMA_transfer()
716 object->transaction = NULL; in SPICC32XXDMA_transfer()
722 configDMA(object, hwAttrs, transaction); in SPICC32XXDMA_transfer()
724 if (object->transferMode == SPI_MODE_BLOCKING) { in SPICC32XXDMA_transfer()
725 if (SemaphoreP_pend(object->transferComplete, in SPICC32XXDMA_transfer()
726 object->transferTimeout) != SemaphoreP_OK) { in SPICC32XXDMA_transfer()
728 object->transaction->status = SPI_TRANSFER_FAILED; in SPICC32XXDMA_transfer()
735 SemaphoreP_pend(object->transferComplete, SemaphoreP_NO_WAIT); in SPICC32XXDMA_transfer()
752 SPICC32XXDMA_Object *object = handle->object; in SPICC32XXDMA_transferCancel() local
760 if (object->transferMode == SPI_MODE_CALLBACK || in SPICC32XXDMA_transferCancel()
761 object->transaction->status == SPI_TRANSFER_FAILED) { in SPICC32XXDMA_transferCancel()
765 if (object->transaction == NULL || object->cancelInProgress) { in SPICC32XXDMA_transferCancel()
770 object->cancelInProgress = true; in SPICC32XXDMA_transferCancel()
790 initHw(object, hwAttrs); in SPICC32XXDMA_transferCancel()
798 object->transaction->count = object->amtDataXferred + in SPICC32XXDMA_transferCancel()
799 (object->currentXferAmt - getDmaRemainingXfers(hwAttrs)); in SPICC32XXDMA_transferCancel()
802 if (object->transaction->status == SPI_TRANSFER_STARTED) { in SPICC32XXDMA_transferCancel()
803 object->transaction->status = SPI_TRANSFER_CANCELED; in SPICC32XXDMA_transferCancel()
813 msg = object->transaction; in SPICC32XXDMA_transferCancel()
816 object->transaction = NULL; in SPICC32XXDMA_transferCancel()
817 object->cancelInProgress = false; in SPICC32XXDMA_transferCancel()
818 object->transferCallbackFxn(handle, msg); in SPICC32XXDMA_transferCancel()