Lines Matching refs:iadc

102 #define IADC_SCANENTRIES(iadc) IADC_ENTRIES(IADC_NUM(iadc))  argument
104 #define IADC_SCANENTRIES(iadc) ( \ argument
105 (iadc) == IADC0 ? IADC0_SCANENTRIES \
110 #define IADC_CONFIGNUM(iadc) ( \ argument
111 (iadc) == 0 ? IADC0_CONFIGNUM \
115 #define IADC_FIFOENTRIES(iadc) ( \ argument
116 (iadc) == IADC0 ? IADC0_FIFOENTRIES \
119 #define IADC_CMU_CLOCK(iadc) ( \ argument
120 (iadc) == IADC0 ? cmuClock_IADC0 \
131 static void IADC_disable(IADC_TypeDef *iadc) in IADC_disable() argument
134 while ((iadc->STATUS & IADC_STATUS_SYNCBUSY) != 0U) { in IADC_disable()
138 iadc->EN_CLR = IADC_EN_EN; in IADC_disable()
145 static void IADC_enable(IADC_TypeDef *iadc) in IADC_enable() argument
147 iadc->EN_SET = IADC_EN_EN; in IADC_enable()
213 void IADC_init(IADC_TypeDef *iadc, in IADC_init() argument
241 EFM_ASSERT(IADC_REF_VALID(iadc)); in IADC_init()
244 srcClkPrescale = IADC_calcSrcClkPrescale(iadc, IADC_CLK_MAX_FREQ, 0); in IADC_init()
252 IADC_disable(iadc); in IADC_init()
264 timebase = IADC_calcTimebase(iadc, srcClkFreq); in IADC_init()
283 iadc->CTRL = tmp; in IADC_init()
285 iadc->TIMER = ((uint32_t) (init->timerCycles) << _IADC_TIMER_TIMER_SHIFT) in IADC_init()
288 iadc->CMPTHR = (((uint32_t) (init->greaterThanEqualThres) << _IADC_CMPTHR_ADGT_SHIFT) in IADC_init()
294 for (config = 0; config < IADC_CONFIGNUM(IADC_NUM(iadc)); config++) { in IADC_init()
298 adcClkPrescale = IADC_calcAdcClkPrescale(iadc, in IADC_init()
307 tmp = iadc->CFG[config].CFG & ~(_IADC_CFG_ADCMODE_MASK | _IADC_CFG_OSRHS_MASK in IADC_init()
317 iadc->CFG[config].CFG = tmp in IADC_init()
336 uiAnaGain = (iadc->CFG[config].CFG & _IADC_CFG_ANALOGGAIN_MASK) >> _IADC_CFG_ANALOGGAIN_SHIFT; in IADC_init()
369 … uiAnaGain = (iadc->CFG[config].CFG & _IADC_CFG_ANALOGGAIN_MASK) >> _IADC_CFG_ANALOGGAIN_SHIFT; in IADC_init()
403 … iOsr = 1U << (((iadc->CFG[config].CFG & _IADC_CFG_OSRHS_MASK) >> _IADC_CFG_OSRHS_SHIFT) + 1U); in IADC_init()
446 iadc->CFG[config].SCALE = scale; in IADC_init()
455 osrValue = (iadc->CFG[config].CFG & _IADC_CFG_OSRHA_MASK) >> _IADC_CFG_OSRHA_SHIFT; in IADC_init()
506 iadc->CFG[config].SCHED = ((adcClkPrescale << _IADC_SCHED_PRESCALE_SHIFT) in IADC_init()
509 IADC_enable(iadc); in IADC_init()
535 void IADC_initScan(IADC_TypeDef *iadc, in IADC_initScan() argument
541 EFM_ASSERT(IADC_REF_VALID(iadc)); in IADC_initScan()
547 IADC_disable(iadc); in IADC_initScan()
549 iadc->SCANFIFOCFG = (((uint32_t) (init->alignment) << _IADC_SCANFIFOCFG_ALIGNMENT_SHIFT) in IADC_initScan()
557 iadc->TRIGGER = (iadc->TRIGGER & ~(_IADC_TRIGGER_SCANTRIGSEL_MASK in IADC_initScan()
565 for (i = 0; i < IADC_SCANENTRIES(iadc); i++) { in IADC_initScan()
566iadc->SCANTABLE[i].SCAN = (((uint32_t) (scanTable->entries[i].negInput) << _IADC_SCAN_PINNEG_SHIFT) in IADC_initScan()
575 IADC_enable(iadc); in IADC_initScan()
579 for (i = 0; i < IADC_SCANENTRIES(iadc); i++) { in IADC_initScan()
584 iadc->MASKREQ = tmp; in IADC_initScan()
587 IADC_command(iadc, iadcCmdStartScan); in IADC_initScan()
614 void IADC_initSingle(IADC_TypeDef *iadc, in IADC_initSingle() argument
618 EFM_ASSERT(IADC_REF_VALID(iadc)); in IADC_initSingle()
623 IADC_disable(iadc); in IADC_initSingle()
625 iadc->SINGLEFIFOCFG = (((uint32_t) (init->alignment) << _IADC_SINGLEFIFOCFG_ALIGNMENT_SHIFT) in IADC_initSingle()
633 iadc->TRIGGER = (iadc->TRIGGER & ~(_IADC_TRIGGER_SINGLETRIGSEL_MASK in IADC_initSingle()
642 IADC_updateSingleInput(iadc, input); in IADC_initSingle()
644 IADC_enable(iadc); in IADC_initSingle()
647 IADC_command(iadc, iadcCmdStartSingle); in IADC_initSingle()
669 void IADC_updateSingleInput(IADC_TypeDef *iadc, in IADC_updateSingleInput() argument
674 EFM_ASSERT(IADC_REF_VALID(iadc)); in IADC_updateSingleInput()
676 enabled = (iadc->EN & IADC_EN_EN) != 0UL; in IADC_updateSingleInput()
679 IADC_enable(iadc); in IADC_updateSingleInput()
681 iadc->SINGLE = (((uint32_t) (input->negInput) << _IADC_SINGLE_PINNEG_SHIFT) in IADC_updateSingleInput()
691 IADC_disable(iadc); in IADC_updateSingleInput()
710 void IADC_setScanMask(IADC_TypeDef *iadc, uint32_t mask) in IADC_setScanMask() argument
714 EFM_ASSERT(IADC_REF_VALID(iadc)); in IADC_setScanMask()
716 EFM_ASSERT(mask <= ((1UL << IADC_SCANENTRIES(iadc)) - 1UL)); in IADC_setScanMask()
718 enabled = (iadc->EN & IADC_EN_EN) != 0UL; in IADC_setScanMask()
721 IADC_enable(iadc); in IADC_setScanMask()
723 iadc->MASKREQ = (mask << _IADC_MASKREQ_MASKREQ_SHIFT) in IADC_setScanMask()
728 IADC_disable(iadc); in IADC_setScanMask()
752 void IADC_updateScanEntry(IADC_TypeDef *iadc, in IADC_updateScanEntry() argument
758 EFM_ASSERT(IADC_REF_VALID(iadc)); in IADC_updateScanEntry()
760 enabled = (iadc->EN & IADC_EN_EN) != 0UL; in IADC_updateScanEntry()
763 IADC_disable(iadc); in IADC_updateScanEntry()
766 iadc->SCANTABLE[id].SCAN = (((uint32_t) (entry->negInput) << _IADC_SCAN_PINNEG_SHIFT) in IADC_updateScanEntry()
775 IADC_enable(iadc); in IADC_updateScanEntry()
778 iadc->MASKREQ_SET = (1UL << (id & 0x1FUL)) << _IADC_MASKREQ_MASKREQ_SHIFT; in IADC_updateScanEntry()
780 iadc->MASKREQ_CLR = (1UL << (id & 0x1FUL)) << _IADC_MASKREQ_MASKREQ_SHIFT; in IADC_updateScanEntry()
785 IADC_disable(iadc); in IADC_updateScanEntry()
796 void IADC_reset(IADC_TypeDef *iadc) in IADC_reset() argument
799 EFM_ASSERT(IADC_REF_VALID(iadc)); in IADC_reset()
802 IADC_enable(iadc); in IADC_reset()
805 iadc->CMD = IADC_CMD_SINGLESTOP | IADC_CMD_SCANSTOP | IADC_CMD_TIMERDIS; in IADC_reset()
808 while ((iadc->STATUS & (IADC_STATUS_CONVERTING in IADC_reset()
816 iadc->MASKREQ = _IADC_MASKREQ_RESETVALUE; in IADC_reset()
817 iadc->SINGLE = _IADC_SINGLE_RESETVALUE; in IADC_reset()
820 while ((iadc->STATUS & (IADC_STATUS_MASKREQWRITEPENDING in IADC_reset()
829 while (((iadc->STATUS & IADC_STATUS_SINGLEFIFODV) != 0UL) || (iadc->SINGLEFIFOSTAT > 0)) { in IADC_reset()
830 (void) IADC_pullSingleFifoData(iadc); in IADC_reset()
835 while (((iadc->STATUS & IADC_STATUS_SCANFIFODV) != 0UL) || (iadc->SCANFIFOSTAT > 0)) { in IADC_reset()
836 (void) IADC_pullScanFifoData(iadc); in IADC_reset()
840 (void) IADC_readSingleData(iadc); in IADC_reset()
841 (void) IADC_readScanData(iadc); in IADC_reset()
844 IADC_disable(iadc); in IADC_reset()
847 iadc->CTRL = _IADC_CTRL_RESETVALUE; in IADC_reset()
848 iadc->TIMER = _IADC_TIMER_RESETVALUE; in IADC_reset()
849 iadc->TRIGGER = _IADC_TRIGGER_RESETVALUE; in IADC_reset()
851 iadc->CMPTHR = _IADC_CMPTHR_RESETVALUE; in IADC_reset()
852 iadc->SINGLEFIFOCFG = _IADC_SINGLEFIFOCFG_RESETVALUE; in IADC_reset()
853 iadc->SCANFIFOCFG = _IADC_SCANFIFOCFG_RESETVALUE; in IADC_reset()
855 for (i = 0; i < IADC_CONFIGNUM(IADC_NUM(iadc)); i++) { in IADC_reset()
856 iadc->CFG[i].CFG = _IADC_CFG_RESETVALUE; in IADC_reset()
857 iadc->CFG[i].SCALE = _IADC_SCALE_RESETVALUE; in IADC_reset()
858 iadc->CFG[i].SCHED = _IADC_SCHED_RESETVALUE; in IADC_reset()
861 for (i = 0; i < IADC_SCANENTRIES(iadc); i++) { in IADC_reset()
862 iadc->SCANTABLE[i].SCAN = _IADC_SCAN_RESETVALUE; in IADC_reset()
866 IADC_clearInt(iadc, _IADC_IF_MASK); in IADC_reset()
867 IADC_disableInt(iadc, _IADC_IEN_MASK); in IADC_reset()
883 uint8_t IADC_calcTimebase(IADC_TypeDef *iadc, uint32_t srcClkFreq) in IADC_calcTimebase() argument
885 EFM_ASSERT(IADC_REF_VALID(iadc)); in IADC_calcTimebase()
938 uint8_t IADC_calcSrcClkPrescale(IADC_TypeDef *iadc, in IADC_calcSrcClkPrescale() argument
944 EFM_ASSERT(IADC_REF_VALID(iadc)); in IADC_calcSrcClkPrescale()
952 cmuClkFreq = CMU_ClockFreqGet(IADC_CMU_CLOCK(iadc)); in IADC_calcSrcClkPrescale()
993 uint32_t IADC_calcAdcClkPrescale(IADC_TypeDef *iadc, in IADC_calcAdcClkPrescale() argument
1002 EFM_ASSERT(IADC_REF_VALID(iadc)); in IADC_calcAdcClkPrescale()
1013 resFreq = CMU_ClockFreqGet(IADC_CMU_CLOCK(iadc)); in IADC_calcAdcClkPrescale()
1046 IADC_Result_t IADC_pullSingleFifoResult(IADC_TypeDef *iadc) in IADC_pullSingleFifoResult() argument
1048 uint32_t alignment = (iadc->SINGLEFIFOCFG & _IADC_SINGLEFIFOCFG_ALIGNMENT_MASK) in IADC_pullSingleFifoResult()
1050 return IADC_ConvertRawDataToResult(iadc->SINGLEFIFODATA, in IADC_pullSingleFifoResult()
1069 IADC_Result_t IADC_readSingleResult(IADC_TypeDef *iadc) in IADC_readSingleResult() argument
1071 uint32_t alignment = (iadc->SINGLEFIFOCFG & _IADC_SINGLEFIFOCFG_ALIGNMENT_MASK) in IADC_readSingleResult()
1073 return IADC_ConvertRawDataToResult(iadc->SINGLEDATA, in IADC_readSingleResult()
1091 IADC_Result_t IADC_pullScanFifoResult(IADC_TypeDef *iadc) in IADC_pullScanFifoResult() argument
1093 uint32_t alignment = (iadc->SCANFIFOCFG & _IADC_SCANFIFOCFG_ALIGNMENT_MASK) in IADC_pullScanFifoResult()
1095 return IADC_ConvertRawDataToResult(iadc->SCANFIFODATA, in IADC_pullScanFifoResult()
1114 IADC_Result_t IADC_readScanResult(IADC_TypeDef *iadc) in IADC_readScanResult() argument
1116 uint32_t alignment = (iadc->SCANFIFOCFG & _IADC_SCANFIFOCFG_ALIGNMENT_MASK) in IADC_readScanResult()
1118 return IADC_ConvertRawDataToResult(iadc->SCANDATA, in IADC_readScanResult()