/*FUNCTION********************************************************************* * * Function Name : PDB_DRV_Deinit * Description : De-initialize the PDB module. * When the PDB module is not used. Calling this function would shutdown the * PDB module and reduce the power consumption. * *END*************************************************************************/ pdb_status_t PDB_DRV_Deinit(uint32_t instance) { assert(instance < PDB_INSTANCE_COUNT); PDB_Type * base = g_pdbBase[instance]; INT_SYS_DisableIRQ( g_pdbIrqId[instance] ); PDB_HAL_Disable(base); CLOCK_SYS_DisablePdbClock(instance); return kStatus_PDB_Success; }
/*FUNCTION********************************************************************* * * Function Name : PDB_HAL_Init * Description : Reset PDB's registers to a known state. This state is * defined in Reference Manual, which is power on reset value. * *END*************************************************************************/ void PDB_HAL_Init(PDB_Type * base) { uint32_t chn, preChn; /* Note: The setting would take effect only when the PDBEN bit is set. */ PDB_WR_SC(base, PDB_SC_PDBEN_MASK); PDB_WR_MOD(base, 0xFFFFU); PDB_WR_IDLY(base, 0xFFFFU); /* For ADC trigger. */ for (chn = 0U; chn < PDB_C1_COUNT; chn++) { PDB_WR_C1(base, chn, 0U); PDB_WR_S(base, chn,0xFU); for (preChn = 0U; preChn < FSL_FEATURE_PDB_ADC_PRE_CHANNEL_COUNT; preChn++) { PDB_HAL_SetAdcPreTriggerDelayValue(base, chn, preChn, 0U); } } #if FSL_FEATURE_PDB_HAS_DAC /* For DAC trigger. */ for (chn = 0U; chn < PDB_INTC_COUNT; chn++) { PDB_WR_INTC(base, chn, 0U); PDB_WR_INT(base ,chn, 0U); } #endif /* For Pulse out trigger. */ PDB_WR_POEN(base, 0U); for (chn = 0U; chn < PDB_PODLY_COUNT; chn++) { PDB_WR_PODLY(base, chn, 0U); } /* Load the setting value. */ PDB_HAL_SetLoadValuesCmd(base); PDB_HAL_Disable(base); }