Lines Matching refs:pcnt
87 __STATIC_INLINE unsigned int PCNT_Map(PCNT_TypeDef *pcnt) in PCNT_Map() argument
89 return(((uint32_t)pcnt - PCNT0_BASE) / 0x400); in PCNT_Map()
104 __STATIC_INLINE void PCNT_Sync(PCNT_TypeDef *pcnt, uint32_t mask) in PCNT_Sync() argument
108 if (pcnt->FREEZE & PCNT_FREEZE_REGFREEZE) in PCNT_Sync()
115 while (pcnt->SYNCBUSY & mask) in PCNT_Sync()
139 void PCNT_CounterReset(PCNT_TypeDef *pcnt) in PCNT_CounterReset() argument
141 EFM_ASSERT(PCNT_REF_VALID(pcnt)); in PCNT_CounterReset()
144 BITBAND_Peripheral(&(pcnt->CTRL), _PCNT_CTRL_RSTEN_SHIFT, 1); in PCNT_CounterReset()
147 BITBAND_Peripheral(&(pcnt->CTRL), _PCNT_CTRL_RSTEN_SHIFT, 0); in PCNT_CounterReset()
175 void PCNT_CounterTopSet(PCNT_TypeDef *pcnt, uint32_t count, uint32_t top) in PCNT_CounterTopSet() argument
179 EFM_ASSERT(PCNT_REF_VALID(pcnt)); in PCNT_CounterTopSet()
182 ctrl = pcnt->CTRL; in PCNT_CounterTopSet()
187 PCNT_Sync(pcnt, PCNT_SYNCBUSY_CTRL); in PCNT_CounterTopSet()
188 pcnt->CTRL = (ctrl & ~_PCNT_CTRL_MODE_MASK) | PCNT_CTRL_MODE_DISABLE; in PCNT_CounterTopSet()
192 PCNT_Sync(pcnt, PCNT_SYNCBUSY_TOPB); in PCNT_CounterTopSet()
193 pcnt->TOPB = count; in PCNT_CounterTopSet()
196 PCNT_Sync(pcnt, PCNT_SYNCBUSY_TOPB | PCNT_SYNCBUSY_CMD); in PCNT_CounterTopSet()
199 pcnt->CMD = PCNT_CMD_LTOPBIM; in PCNT_CounterTopSet()
200 PCNT_Sync(pcnt, PCNT_SYNCBUSY_CMD); in PCNT_CounterTopSet()
203 pcnt->CMD = PCNT_CMD_LCNTIM; in PCNT_CounterTopSet()
211 PCNT_Sync(pcnt, PCNT_SYNCBUSY_CMD); in PCNT_CounterTopSet()
215 pcnt->TOPB = top; in PCNT_CounterTopSet()
218 PCNT_Sync(pcnt, PCNT_SYNCBUSY_TOPB | PCNT_SYNCBUSY_CMD); in PCNT_CounterTopSet()
219 pcnt->CMD = PCNT_CMD_LTOPBIM; in PCNT_CounterTopSet()
225 PCNT_Sync(pcnt, PCNT_SYNCBUSY_CTRL | PCNT_SYNCBUSY_CMD); in PCNT_CounterTopSet()
226 pcnt->CTRL = ctrl; in PCNT_CounterTopSet()
253 void PCNT_Enable(PCNT_TypeDef *pcnt, PCNT_Mode_TypeDef mode) in PCNT_Enable() argument
257 EFM_ASSERT(PCNT_REF_VALID(pcnt)); in PCNT_Enable()
260 tmp = pcnt->CTRL & ~_PCNT_CTRL_MODE_MASK; in PCNT_Enable()
264 PCNT_Sync(pcnt, PCNT_SYNCBUSY_CTRL); in PCNT_Enable()
265 pcnt->CTRL = tmp; in PCNT_Enable()
285 void PCNT_PRSInputEnable(PCNT_TypeDef *pcnt, in PCNT_PRSInputEnable() argument
289 EFM_ASSERT(PCNT_REF_VALID(pcnt)); in PCNT_PRSInputEnable()
297 BITBAND_Peripheral(&(pcnt->INPUT), _PCNT_INPUT_S0PRSEN_SHIFT, (uint32_t)enable); in PCNT_PRSInputEnable()
304 BITBAND_Peripheral(&(pcnt->INPUT), _PCNT_INPUT_S1PRSEN_SHIFT, (uint32_t)enable); in PCNT_PRSInputEnable()
346 void PCNT_FreezeEnable(PCNT_TypeDef *pcnt, bool enable) in PCNT_FreezeEnable() argument
348 EFM_ASSERT(PCNT_REF_VALID(pcnt)); in PCNT_FreezeEnable()
359 while (pcnt->SYNCBUSY) in PCNT_FreezeEnable()
362 pcnt->FREEZE = PCNT_FREEZE_REGFREEZE; in PCNT_FreezeEnable()
366 pcnt->FREEZE = 0; in PCNT_FreezeEnable()
410 void PCNT_Init(PCNT_TypeDef *pcnt, const PCNT_Init_TypeDef *init) in PCNT_Init() argument
415 EFM_ASSERT(PCNT_REF_VALID(pcnt)); in PCNT_Init()
418 inst = PCNT_Map(pcnt); in PCNT_Init()
424 tmp = pcnt->INPUT & ~(_PCNT_INPUT_S0PRSSEL_MASK | _PCNT_INPUT_S1PRSSEL_MASK); in PCNT_Init()
427 pcnt->INPUT = tmp; in PCNT_Init()
465 BITBAND_Peripheral(&(pcnt->CTRL), _PCNT_CTRL_RSTEN_SHIFT, 1); in PCNT_Init()
481 PCNT_Sync(pcnt, PCNT_SYNCBUSY_CTRL); in PCNT_Init()
485 pcnt->CTRL = PCNT_CTRL_RSTEN; in PCNT_Init()
488 PCNT_Sync(pcnt, PCNT_SYNCBUSY_CTRL); in PCNT_Init()
497 pcnt->TOPB = init->top; in PCNT_Init()
500 pcnt->CMD = PCNT_CMD_LTOPBIM; in PCNT_Init()
506 pcnt->CTRL = tmp; in PCNT_Init()
518 if ((pcnt->CTRL & _PCNT_CTRL_MODE_MASK) != PCNT_CTRL_MODE_DISABLE) in PCNT_Init()
523 pcnt->CTRL = tmp | PCNT_CTRL_MODE_DISABLE | PCNT_CTRL_RSTEN; in PCNT_Init()
527 PCNT_Sync(pcnt, PCNT_SYNCBUSY_CTRL); in PCNT_Init()
531 BITBAND_Peripheral(&(pcnt->CTRL), _PCNT_CTRL_RSTEN_SHIFT, 0); in PCNT_Init()
534 PCNT_CounterTopSet(pcnt, init->counter, init->top); in PCNT_Init()
539 PCNT_Sync(pcnt, PCNT_SYNCBUSY_CTRL); in PCNT_Init()
540 pcnt->CTRL = tmp | (init->mode << _PCNT_CTRL_MODE_SHIFT); in PCNT_Init()
563 void PCNT_Reset(PCNT_TypeDef *pcnt) in PCNT_Reset() argument
567 EFM_ASSERT(PCNT_REF_VALID(pcnt)); in PCNT_Reset()
570 inst = PCNT_Map(pcnt); in PCNT_Reset()
572 pcnt->IEN = _PCNT_IEN_RESETVALUE; in PCNT_Reset()
579 BITBAND_Peripheral(&(pcnt->CTRL), _PCNT_CTRL_RSTEN_SHIFT, 1); in PCNT_Reset()
584 PCNT_TopBufferSet(pcnt, _PCNT_TOPB_RESETVALUE); in PCNT_Reset()
587 pcnt->CTRL = _PCNT_CTRL_RESETVALUE | PCNT_CTRL_RSTEN; in PCNT_Reset()
590 PCNT_Sync(pcnt, PCNT_SYNCBUSY_CTRL); in PCNT_Reset()
591 BITBAND_Peripheral(&(pcnt->CTRL), _PCNT_CTRL_RSTEN_SHIFT, 0); in PCNT_Reset()
594 pcnt->IFC = _PCNT_IFC_MASK; in PCNT_Reset()
616 void PCNT_TopBufferSet(PCNT_TypeDef *pcnt, uint32_t val) in PCNT_TopBufferSet() argument
618 EFM_ASSERT(PCNT_REF_VALID(pcnt)); in PCNT_TopBufferSet()
621 PCNT_Sync(pcnt, PCNT_SYNCBUSY_TOPB); in PCNT_TopBufferSet()
622 pcnt->TOPB = val; in PCNT_TopBufferSet()
642 void PCNT_TopSet(PCNT_TypeDef *pcnt, uint32_t val) in PCNT_TopSet() argument
644 EFM_ASSERT(PCNT_REF_VALID(pcnt)); in PCNT_TopSet()
649 PCNT_Sync(pcnt, PCNT_SYNCBUSY_TOPB); in PCNT_TopSet()
650 pcnt->TOPB = val; in PCNT_TopSet()
653 PCNT_Sync(pcnt, PCNT_SYNCBUSY_TOPB | PCNT_SYNCBUSY_CMD); in PCNT_TopSet()
654 pcnt->CMD = PCNT_CMD_LTOPBIM; in PCNT_TopSet()