summaryrefslogtreecommitdiff
path: root/drivers/fsl_tsi_v2.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/fsl_tsi_v2.h')
-rw-r--r--drivers/fsl_tsi_v2.h777
1 files changed, 0 insertions, 777 deletions
diff --git a/drivers/fsl_tsi_v2.h b/drivers/fsl_tsi_v2.h
deleted file mode 100644
index a173626..0000000
--- a/drivers/fsl_tsi_v2.h
+++ /dev/null
@@ -1,777 +0,0 @@
-/*
- * Copyright (c) 2015, Freescale Semiconductor, Inc.
- * Copyright 2016-2017 NXP
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * o Redistributions of source code must retain the above copyright notice, this list
- * of conditions and the following disclaimer.
- *
- * o Redistributions in binary form must reproduce the above copyright notice, this
- * list of conditions and the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- *
- * o Neither the name of the copyright holder nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#ifndef _FSL_TSI_V2_H_
-#define _FSL_TSI_V2_H_
-
-#include "fsl_common.h"
-
-/*!
- * @addtogroup tsi_v2_driver
- * @{
- */
-
-
-/*******************************************************************************
- * Definitions
- ******************************************************************************/
-
-/*! @name Driver version */
-/*@{*/
-/*! @brief TSI driver version */
-#define FSL_TSI_DRIVER_VERSION (MAKE_VERSION(2, 1, 2))
-/*@}*/
-
-/*! @brief TSI status flags macro collection */
-#define ALL_FLAGS_MASK (TSI_GENCS_EOSF_MASK |\
- TSI_GENCS_OUTRGF_MASK |\
- TSI_GENCS_EXTERF_MASK |\
- TSI_GENCS_OVRF_MASK)
-
-
-/*!
- * @brief TSI number of scan intervals for each electrode.
- *
- * These constants define the TSI number of consecutive scans in a TSI instance for each electrode.
- */
-typedef enum _tsi_n_consecutive_scans
-{
- kTSI_ConsecutiveScansNumber_1time = 0U, /*!< Once per electrode */
- kTSI_ConsecutiveScansNumber_2time = 1U, /*!< Twice per electrode */
- kTSI_ConsecutiveScansNumber_3time = 2U, /*!< 3 times consecutive scan */
- kTSI_ConsecutiveScansNumber_4time = 3U, /*!< 4 times consecutive scan */
- kTSI_ConsecutiveScansNumber_5time = 4U, /*!< 5 times consecutive scan */
- kTSI_ConsecutiveScansNumber_6time = 5U, /*!< 6 times consecutive scan */
- kTSI_ConsecutiveScansNumber_7time = 6U, /*!< 7 times consecutive scan */
- kTSI_ConsecutiveScansNumber_8time = 7U, /*!< 8 times consecutive scan */
- kTSI_ConsecutiveScansNumber_9time = 8U, /*!< 9 times consecutive scan */
- kTSI_ConsecutiveScansNumber_10time = 9U, /*!< 10 times consecutive scan */
- kTSI_ConsecutiveScansNumber_11time = 10U, /*!< 11 times consecutive scan */
- kTSI_ConsecutiveScansNumber_12time = 11U, /*!< 12 times consecutive scan */
- kTSI_ConsecutiveScansNumber_13time = 12U, /*!< 13 times consecutive scan */
- kTSI_ConsecutiveScansNumber_14time = 13U, /*!< 14 times consecutive scan */
- kTSI_ConsecutiveScansNumber_15time = 14U, /*!< 15 times consecutive scan */
- kTSI_ConsecutiveScansNumber_16time = 15U, /*!< 16 times consecutive scan */
- kTSI_ConsecutiveScansNumber_17time = 16U, /*!< 17 times consecutive scan */
- kTSI_ConsecutiveScansNumber_18time = 17U, /*!< 18 times consecutive scan */
- kTSI_ConsecutiveScansNumber_19time = 18U, /*!< 19 times consecutive scan */
- kTSI_ConsecutiveScansNumber_20time = 19U, /*!< 20 times consecutive scan */
- kTSI_ConsecutiveScansNumber_21time = 20U, /*!< 21 times consecutive scan */
- kTSI_ConsecutiveScansNumber_22time = 21U, /*!< 22 times consecutive scan */
- kTSI_ConsecutiveScansNumber_23time = 22U, /*!< 23 times consecutive scan */
- kTSI_ConsecutiveScansNumber_24time = 23U, /*!< 24 times consecutive scan */
- kTSI_ConsecutiveScansNumber_25time = 24U, /*!< 25 times consecutive scan */
- kTSI_ConsecutiveScansNumber_26time = 25U, /*!< 26 times consecutive scan */
- kTSI_ConsecutiveScansNumber_27time = 26U, /*!< 27 times consecutive scan */
- kTSI_ConsecutiveScansNumber_28time = 27U, /*!< 28 times consecutive scan */
- kTSI_ConsecutiveScansNumber_29time = 28U, /*!< 29 times consecutive scan */
- kTSI_ConsecutiveScansNumber_30time = 29U, /*!< 30 times consecutive scan */
- kTSI_ConsecutiveScansNumber_31time = 30U, /*!< 31 times consecutive scan */
- kTSI_ConsecutiveScansNumber_32time = 31U /*!< 32 times consecutive scan */
-} tsi_n_consecutive_scans_t;
-
-/*!
- * @brief TSI electrode oscillator prescaler.
- *
- * These constants define the TSI electrode oscillator prescaler in a TSI instance.
- */
-typedef enum _tsi_electrode_osc_prescaler
-{
- kTSI_ElecOscPrescaler_1div = 0U, /*!< Electrode oscillator frequency divided by 1 */
- kTSI_ElecOscPrescaler_2div = 1U, /*!< Electrode oscillator frequency divided by 2 */
- kTSI_ElecOscPrescaler_4div = 2U, /*!< Electrode oscillator frequency divided by 4 */
- kTSI_ElecOscPrescaler_8div = 3U, /*!< Electrode oscillator frequency divided by 8 */
- kTSI_ElecOscPrescaler_16div = 4U, /*!< Electrode oscillator frequency divided by 16 */
- kTSI_ElecOscPrescaler_32div = 5U, /*!< Electrode oscillator frequency divided by 32 */
- kTSI_ElecOscPrescaler_64div = 6U, /*!< Electrode oscillator frequency divided by 64 */
- kTSI_ElecOscPrescaler_128div = 7U /*!< Electrode oscillator frequency divided by 128 */
-} tsi_electrode_osc_prescaler_t;
-
-/*!
- * @brief TSI low power mode clock source.
- */
-typedef enum _tsi_low_power_clock_source
-{
- kTSI_LowPowerClockSource_LPOCLK = 0U, /*!< LPOCLK is selected */
- kTSI_LowPowerClockSource_VLPOSCCLK = 1U /*!< VLPOSCCLK is selected */
-} tsi_low_power_clock_source_t;
-
-/*!
- * @brief TSI low power scan intervals.
- *
- * These constants define the TSI low power scan intervals in a TSI instance.
- */
-typedef enum _tsi_low_power_scan_interval
-{
- kTSI_LowPowerInterval_1ms = 0U, /*!< 1 ms scan interval */
- kTSI_LowPowerInterval_5ms = 1U, /*!< 5 ms scan interval */
- kTSI_LowPowerInterval_10ms = 2U, /*!< 10 ms scan interval */
- kTSI_LowPowerInterval_15ms = 3U, /*!< 15 ms scan interval */
- kTSI_LowPowerInterval_20ms = 4U, /*!< 20 ms scan interval */
- kTSI_LowPowerInterval_30ms = 5U, /*!< 30 ms scan interval */
- kTSI_LowPowerInterval_40ms = 6U, /*!< 40 ms scan interval */
- kTSI_LowPowerInterval_50ms = 7U, /*!< 50 ms scan interval */
- kTSI_LowPowerInterval_75ms = 8U, /*!< 75 ms scan interval */
- kTSI_LowPowerInterval_100ms = 9U, /*!< 100 ms scan interval */
- kTSI_LowPowerInterval_125ms = 10U, /*!< 125 ms scan interval */
- kTSI_LowPowerInterval_150ms = 11U, /*!< 150 ms scan interval */
- kTSI_LowPowerInterval_200ms = 12U, /*!< 200 ms scan interval */
- kTSI_LowPowerInterval_300ms = 13U, /*!< 300 ms scan interval */
- kTSI_LowPowerInterval_400ms = 14U, /*!< 400 ms scan interval */
- kTSI_LowPowerInterval_500ms = 15U /*!< 500 ms scan interval */
-} tsi_low_power_scan_interval_t;
-
-/*!
- * @brief TSI Reference oscillator charge current select.
- *
- * These constants define the TSI Reference oscillator charge current select in a TSI instance.
- */
-typedef enum _tsi_reference_osc_charge_current
-{
- kTSI_RefOscChargeCurrent_2uA = 0U, /*!< Reference oscillator charge current is 2 µA */
- kTSI_RefOscChargeCurrent_4uA = 1U, /*!< Reference oscillator charge current is 4 µA */
- kTSI_RefOscChargeCurrent_6uA = 2U, /*!< Reference oscillator charge current is 6 µA */
- kTSI_RefOscChargeCurrent_8uA = 3U, /*!< Reference oscillator charge current is 8 µA */
- kTSI_RefOscChargeCurrent_10uA = 4U, /*!< Reference oscillator charge current is 10 µA */
- kTSI_RefOscChargeCurrent_12uA = 5U, /*!< Reference oscillator charge current is 12 µA */
- kTSI_RefOscChargeCurrent_14uA = 6U, /*!< Reference oscillator charge current is 14 µA */
- kTSI_RefOscChargeCurrent_16uA = 7U, /*!< Reference oscillator charge current is 16 µA */
- kTSI_RefOscChargeCurrent_18uA = 8U, /*!< Reference oscillator charge current is 18 µA */
- kTSI_RefOscChargeCurrent_20uA = 9U, /*!< Reference oscillator charge current is 20 µA */
- kTSI_RefOscChargeCurrent_22uA = 10U, /*!< Reference oscillator charge current is 22 µA */
- kTSI_RefOscChargeCurrent_24uA = 11U, /*!< Reference oscillator charge current is 24 µA */
- kTSI_RefOscChargeCurrent_26uA = 12U, /*!< Reference oscillator charge current is 26 µA */
- kTSI_RefOscChargeCurrent_28uA = 13U, /*!< Reference oscillator charge current is 28 µA */
- kTSI_RefOscChargeCurrent_30uA = 14U, /*!< Reference oscillator charge current is 30 µA */
- kTSI_RefOscChargeCurrent_32uA = 15U /*!< Reference oscillator charge current is 32 µA */
-} tsi_reference_osc_charge_current_t;
-
-/*!
- * @brief TSI External oscillator charge current select.
- *
- * These constants define the TSI External oscillator charge current select in a TSI instance.
- */
-typedef enum _tsi_external_osc_charge_current
-{
- kTSI_ExtOscChargeCurrent_2uA = 0U, /*!< External oscillator charge current is 2 µA */
- kTSI_ExtOscChargeCurrent_4uA = 1U, /*!< External oscillator charge current is 4 µA */
- kTSI_ExtOscChargeCurrent_6uA = 2U, /*!< External oscillator charge current is 6 µA */
- kTSI_ExtOscChargeCurrent_8uA = 3U, /*!< External oscillator charge current is 8 µA */
- kTSI_ExtOscChargeCurrent_10uA = 4U, /*!< External oscillator charge current is 10 µA */
- kTSI_ExtOscChargeCurrent_12uA = 5U, /*!< External oscillator charge current is 12 µA */
- kTSI_ExtOscChargeCurrent_14uA = 6U, /*!< External oscillator charge current is 14 µA */
- kTSI_ExtOscChargeCurrent_16uA = 7U, /*!< External oscillator charge current is 16 µA */
- kTSI_ExtOscChargeCurrent_18uA = 8U, /*!< External oscillator charge current is 18 µA */
- kTSI_ExtOscChargeCurrent_20uA = 9U, /*!< External oscillator charge current is 20 µA */
- kTSI_ExtOscChargeCurrent_22uA = 10U, /*!< External oscillator charge current is 22 µA */
- kTSI_ExtOscChargeCurrent_24uA = 11U, /*!< External oscillator charge current is 24 µA */
- kTSI_ExtOscChargeCurrent_26uA = 12U, /*!< External oscillator charge current is 26 µA */
- kTSI_ExtOscChargeCurrent_28uA = 13U, /*!< External oscillator charge current is 28 µA */
- kTSI_ExtOscChargeCurrent_30uA = 14U, /*!< External oscillator charge current is 30 µA */
- kTSI_ExtOscChargeCurrent_32uA = 15U /*!< External oscillator charge current is 32 µA */
-} tsi_external_osc_charge_current_t;
-
-/*!
- * @brief TSI Active mode clock source.
- *
- * These constants define the active mode clock source in a TSI instance.
- */
-typedef enum _tsi_active_mode_clock_source
-{
- kTSI_ActiveClkSource_LPOSCCLK = 0U, /*!< Active mode clock source is set to LPOOSC Clock */
- kTSI_ActiveClkSource_MCGIRCLK = 1U, /*!< Active mode clock source is set to MCG Internal reference clock */
- kTSI_ActiveClkSource_OSCERCLK = 2U /*!< Active mode clock source is set to System oscillator output */
-} tsi_active_mode_clock_source_t;
-
-/*!
- * @brief TSI active mode prescaler.
- *
- * These constants define the TSI active mode prescaler in a TSI instance.
- */
-typedef enum _tsi_active_mode_prescaler
-{
- kTSI_ActiveModePrescaler_1div = 0U, /*!< Input clock source divided by 1 */
- kTSI_ActiveModePrescaler_2div = 1U, /*!< Input clock source divided by 2 */
- kTSI_ActiveModePrescaler_4div = 2U, /*!< Input clock source divided by 4 */
- kTSI_ActiveModePrescaler_8div = 3U, /*!< Input clock source divided by 8 */
- kTSI_ActiveModePrescaler_16div = 4U, /*!< Input clock source divided by 16 */
- kTSI_ActiveModePrescaler_32div = 5U, /*!< Input clock source divided by 32 */
- kTSI_ActiveModePrescaler_64div = 6U, /*!< Input clock source divided by 64 */
- kTSI_ActiveModePrescaler_128div = 7U /*!< Input clock source divided by 128 */
-} tsi_active_mode_prescaler_t;
-
-/*! @brief TSI status flags. */
-typedef enum _tsi_status_flags
-{
- kTSI_EndOfScanFlag = TSI_GENCS_EOSF_MASK, /*!< End-Of-Scan flag */
- kTSI_OutOfRangeFlag = TSI_GENCS_OUTRGF_MASK, /*!< Out-Of-Range flag */
- kTSI_ExternalElectrodeErrorFlag = TSI_GENCS_EXTERF_MASK, /*!< External electrode error flag */
- kTSI_OverrunErrorFlag = TSI_GENCS_OVRF_MASK /*!< Overrun error flag */
-} tsi_status_flags_t;
-
-/*! @brief TSI feature interrupt source.*/
-typedef enum _tsi_interrupt_enable
-{
- kTSI_GlobalInterruptEnable = 1U, /*!< TSI module global interrupt */
- kTSI_OutOfRangeInterruptEnable = 2U, /*!< Out-Of-Range interrupt */
- kTSI_EndOfScanInterruptEnable = 4U, /*!< End-Of-Scan interrupt */
- kTSI_ErrorInterrruptEnable = 8U /*!< Error interrupt */
-} tsi_interrupt_enable_t;
-
-/*! @brief TSI calibration data storage. */
-typedef struct _tsi_calibration_data
-{
- uint16_t calibratedData[FSL_FEATURE_TSI_CHANNEL_COUNT]; /*!< TSI calibration data storage buffer */
-} tsi_calibration_data_t;
-
-/*!
- * @brief TSI configuration structure.
- *
- * This structure contains the settings for the most common TSI configurations including
- * the TSI module charge currents, number of scans, thresholds, and so on.
- */
-typedef struct _tsi_config
-{
- uint16_t thresh; /*!< High threshold. */
- uint16_t thresl; /*!< Low threshold. */
- tsi_low_power_clock_source_t lpclks; /*!< Low power clock. */
- tsi_low_power_scan_interval_t lpscnitv; /*!< Low power scan interval. */
- tsi_active_mode_clock_source_t amclks; /*!< Active mode clock source. */
- tsi_active_mode_prescaler_t ampsc; /*!< Active mode prescaler. */
- tsi_electrode_osc_prescaler_t ps; /*!< Electrode Oscillator Prescaler */
- tsi_external_osc_charge_current_t extchrg; /*!< External Oscillator charge current */
- tsi_reference_osc_charge_current_t refchrg; /*!< Reference Oscillator charge current */
- tsi_n_consecutive_scans_t nscn; /*!< Number of scans. */
-} tsi_config_t;
-
-/*******************************************************************************
- * API
- ******************************************************************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*!
- * @brief Initializes hardware.
- *
- * @details Initializes the peripheral to the targeted state specified by the parameter configuration,
- * such as initialize and set prescalers, number of scans, clocks, delta voltage
- * capacitance trimmer, reference, and electrode charge current and threshold.
- *
- * @param base TSI peripheral base address.
- * @param config Pointer to the TSI peripheral configuration structure.
- * @return none
- */
-void TSI_Init(TSI_Type *base, const tsi_config_t *config);
-
-/*!
- * @brief De-initializes hardware.
- *
- * @details De-initializes the peripheral to default state.
- *
- * @param base TSI peripheral base address.
- * @return none
- */
-void TSI_Deinit(TSI_Type *base);
-
-/*!
- * @brief Gets TSI normal mode user configuration structure.
- * This interface sets the userConfig structure to a default value. The configuration structure only
- * includes the settings for the whole TSI.
- * The user configure is set to these values:
- * @code
- userConfig.lpclks = kTSI_LowPowerClockSource_LPOCLK;
- userConfig.lpscnitv = kTSI_LowPowerInterval_100ms;
- userConfig.amclks = kTSI_ActiveClkSource_LPOSCCLK;
- userConfig.ampsc = kTSI_ActiveModePrescaler_8div;
- userConfig.ps = kTSI_ElecOscPrescaler_2div;
- userConfig.extchrg = kTSI_ExtOscChargeCurrent_10uA;
- userConfig.refchrg = kTSI_RefOscChargeCurrent_10uA;
- userConfig.nscn = kTSI_ConsecutiveScansNumber_8time;
- userConfig.thresh = 0U;
- userConfig.thresl = 0U;
- @endcode
- *
- * @param userConfig Pointer to the TSI user configuration structure.
- */
-void TSI_GetNormalModeDefaultConfig(tsi_config_t *userConfig);
-
-/*!
- * @brief Gets the TSI low power mode default user configuration structure.
- * This interface sets userConfig structure to a default value. The configuration structure only
- * includes the settings for the whole TSI.
- * The user configure is set to these values:
- * @code
- userConfig.lpclks = kTSI_LowPowerClockSource_LPOCLK;
- userConfig.lpscnitv = kTSI_LowPowerInterval_100ms;
- userConfig.amclks = kTSI_ActiveClkSource_LPOSCCLK;
- userConfig.ampsc = kTSI_ActiveModePrescaler_64div;
- userConfig.ps = kTSI_ElecOscPrescaler_1div;
- userConfig.extchrg = kTSI_ExtOscChargeCurrent_2uA;
- userConfig.refchrg = kTSI_RefOscChargeCurrent_32uA;
- userConfig.nscn = kTSI_ConsecutiveScansNumber_26time;
- userConfig.thresh = 15000U;
- userConfig.thresl = 1000U;
- @endcode
- *
- * @param userConfig Pointer to the TSI user configuration structure.
- */
-void TSI_GetLowPowerModeDefaultConfig(tsi_config_t *userConfig);
-
-/*!
- * @brief Hardware calibration.
- *
- * @details Calibrates the peripheral to fetch the initial counter value of the enabled electrodes.
- * This API is mostly used at the initial application setup. Call this function after the \ref TSI_Init API
- * and use the calibrated counter values to set up applications
- * (such as to determine under which counter value a touch event occurs).
- *
- * @note This API is called in normal power modes.
- * @note For K60 series, the calibrated baseline counter value CANNOT be used in low power modes. To obtain
- * the calibrated counter values in low power modes, see K60 Mask Set Errata for Mask 5N22D.
- * @param base TSI peripheral base address.
- * @param calBuff Data buffer that store the calibrated counter value.
- * @return none
- *
- */
-void TSI_Calibrate(TSI_Type *base, tsi_calibration_data_t *calBuff);
-
-/*!
- * @brief Enables the TSI interrupt requests.
- * @param base TSI peripheral base address.
- * @param mask interrupt source
- * The parameter can be a combination of the following source if defined:
- * @arg kTSI_GlobalInterruptEnable
- * @arg kTSI_EndOfScanInterruptEnable
- * @arg kTSI_OutOfRangeInterruptEnable
- * @arg kTSI_ErrorInterrruptEnable
- */
-void TSI_EnableInterrupts(TSI_Type *base, uint32_t mask);
-
-/*!
- * @brief Disables the TSI interrupt requests.
- * @param base TSI peripheral base address.
- * @param mask interrupt source
- * The parameter can be a combination of the following source if defined:
- * @arg kTSI_GlobalInterruptEnable
- * @arg kTSI_EndOfScanInterruptEnable
- * @arg kTSI_OutOfRangeInterruptEnable
- * @arg kTSI_ErrorInterrruptEnable
- */
-void TSI_DisableInterrupts(TSI_Type *base, uint32_t mask);
-
-/*!
-* @brief Gets the interrupt flags.
-* This function get TSI interrupt flags.
-*
-* @param base TSI peripheral base address.
-* @return The mask of these status flag bits.
-*/
-static inline uint32_t TSI_GetStatusFlags(TSI_Type *base)
-{
- return (base->GENCS &
- (kTSI_EndOfScanFlag | kTSI_OutOfRangeFlag | kTSI_ExternalElectrodeErrorFlag | kTSI_OverrunErrorFlag));
-}
-
-/*!
- * @brief Clears the interrupt flags.
- *
- * This function clears the TSI interrupt flags.
- * @note The automatically cleared flags can't be cleared by this function.
- *
- * @param base TSI peripheral base address.
- * @param mask the status flags to clear.
- */
-void TSI_ClearStatusFlags(TSI_Type *base, uint32_t mask);
-
-/*!
-* @brief Gets the TSI scan trigger mode.
-*
-* @param base TSI peripheral base address.
-* @return Scan trigger mode.
-*/
-static inline uint32_t TSI_GetScanTriggerMode(TSI_Type *base)
-{
- return (base->GENCS & TSI_GENCS_STM_MASK);
-}
-
-/*!
-* @brief Gets the scan in progress flag.
-*
-* @param base TSI peripheral base address.
-* @return True - if scan is in progress.
-* False - if scan is not in progress.
-*/
-static inline bool TSI_IsScanInProgress(TSI_Type *base)
-{
- return (base->GENCS & TSI_GENCS_SCNIP_MASK);
-}
-
-/*!
-* @brief Sets the electrode oscillator prescaler.
-*
-* @param base TSI peripheral base address.
-* @param prescaler Prescaler value.
-* @return none.
-*/
-static inline void TSI_SetElectrodeOSCPrescaler(TSI_Type *base, tsi_electrode_osc_prescaler_t prescaler)
-{
- base->GENCS = (base->GENCS & ~(TSI_GENCS_PS_MASK | ALL_FLAGS_MASK)) | (TSI_GENCS_PS(prescaler));
-}
-
-/*!
-* @brief Sets the number of scans (NSCN).
-*
-* @param base TSI peripheral base address.
-* @param number Number of scans.
-* @return none.
-*/
-static inline void TSI_SetNumberOfScans(TSI_Type *base, tsi_n_consecutive_scans_t number)
-{
- base->GENCS = (base->GENCS & ~(TSI_GENCS_NSCN_MASK | ALL_FLAGS_MASK)) | (TSI_GENCS_NSCN(number));
-}
-
-/*!
-* @brief Enables/disables the TSI module.
-*
-* @param base TSI peripheral base address.
-* @param enable Choose whether to enable TSI module.
-* - true Enable module;
-* - false Disable module;
-* @return none.
-*/
-static inline void TSI_EnableModule(TSI_Type *base, bool enable)
-{
- if (enable)
- {
- base->GENCS = (base->GENCS & ~ALL_FLAGS_MASK) | TSI_GENCS_TSIEN_MASK; /* Enable module */
- }
- else
- {
- base->GENCS = (base->GENCS & ~ALL_FLAGS_MASK) & (~TSI_GENCS_TSIEN_MASK); /* Disable module */
- }
-}
-
-/*!
-* @brief Enables/disables the TSI module in low power stop mode.
-*
-* @param base TSI peripheral base address.
-* @param enable Choose whether to enable TSI module in low power modes.
-* - true Enable module in low power modes;
-* - false Disable module in low power modes;
-* @return none.
-*/
-static inline void TSI_EnableLowPower(TSI_Type *base, bool enable)
-{
- if (enable)
- {
- base->GENCS = (base->GENCS & ~ALL_FLAGS_MASK) | TSI_GENCS_STPE_MASK; /* Enable module in low power stop mode */
- }
- else
- {
- base->GENCS = (base->GENCS & ~ALL_FLAGS_MASK) & (~TSI_GENCS_STPE_MASK); /* Disable module in low power stop mode */
- }
-}
-
-/*!
-* @brief Enables/disables the periodical (hardware) trigger scan.
-*
-* @param base TSI peripheral base address.
-* @param enable Choose whether to enable periodical trigger scan.
-* - true Enable periodical trigger scan;
-* - false Enable software trigger scan;
-* @return none.
-*/
-static inline void TSI_EnablePeriodicalScan(TSI_Type *base, bool enable)
-{
- if (enable)
- {
- base->GENCS = (base->GENCS & ~ALL_FLAGS_MASK) | TSI_GENCS_STM_MASK; /* Enable period trigger scan */
- }
- else
- {
- base->GENCS = (base->GENCS & ~ALL_FLAGS_MASK) & (~TSI_GENCS_STM_MASK); /* Enable software trigger scan */
- }
-}
-
-/*!
-* @brief Starts a measurement (trigger a new measurement).
-*
-* @param base TSI peripheral base address.
-* @return none.
-*/
-static inline void TSI_StartSoftwareTrigger(TSI_Type *base)
-{
- base->GENCS = (base->GENCS & ~ALL_FLAGS_MASK) | TSI_GENCS_SWTS_MASK;
-}
-
-/*!
-* @brief Sets a low power scan interval.
-*
-* @param base TSI peripheral base address.
-* @param interval Interval for low power scan.
-* @return none.
-*/
-static inline void TSI_SetLowPowerScanInterval(TSI_Type *base, tsi_low_power_scan_interval_t interval)
-{
- base->GENCS = (base->GENCS & ~(TSI_GENCS_LPSCNITV_MASK | ALL_FLAGS_MASK)) | (TSI_GENCS_LPSCNITV(interval));
-}
-
-/*!
-* @brief Sets a low power clock.
-*
-* @param base TSI peripheral base address.
-* @param clock Low power clock selection.
-*/
-static inline void TSI_SetLowPowerClock(TSI_Type *base, uint32_t clock)
-{
- base->GENCS = (base->GENCS & ~(TSI_GENCS_LPCLKS_MASK | ALL_FLAGS_MASK)) | (TSI_GENCS_LPCLKS(clock));
-}
-
-/*!
-* @brief Sets the reference oscillator charge current.
-*
-* @param base TSI peripheral base address.
-* @param current The reference oscillator charge current.
-* @return none.
-*/
-static inline void TSI_SetReferenceChargeCurrent(TSI_Type *base, tsi_reference_osc_charge_current_t current)
-{
- base->SCANC = ((base->SCANC) & ~TSI_SCANC_REFCHRG_MASK) | (TSI_SCANC_REFCHRG(current));
-}
-
-/*!
-* @brief Sets the electrode charge current.
-*
-* @param base TSI peripheral base address.
-* @param current The external electrode charge current.
-* @return none.
-*/
-static inline void TSI_SetElectrodeChargeCurrent(TSI_Type *base, tsi_external_osc_charge_current_t current)
-{
- base->SCANC = ((base->SCANC) & ~TSI_SCANC_EXTCHRG_MASK) | (TSI_SCANC_EXTCHRG(current));
-}
-
-/*!
-* @brief Sets the scan modulo value.
-*
-* @param base TSI peripheral base address.
-* @param modulo Scan modulo value.
-* @return none.
-*/
-static inline void TSI_SetScanModulo(TSI_Type *base, uint32_t modulo)
-{
- base->SCANC = ((base->SCANC) & ~TSI_SCANC_SMOD_MASK) | (TSI_SCANC_SMOD(modulo));
-}
-
-/*!
-* @brief Sets the active mode source.
-*
-* @param base TSI peripheral base address.
-* @param source Active mode clock source (LPOSCCLK, MCGIRCLK, OSCERCLK).
-* @return none.
-*/
-static inline void TSI_SetActiveModeSource(TSI_Type *base, uint32_t source)
-{
- base->SCANC = ((base->SCANC) & ~TSI_SCANC_AMCLKS_MASK) | (TSI_SCANC_AMCLKS(source));
-}
-
-/*!
-* @brief Sets the active mode prescaler.
-*
-* @param base TSI peripheral base address.
-* @param prescaler Prescaler value.
-* @return none.
-*/
-static inline void TSI_SetActiveModePrescaler(TSI_Type *base, tsi_active_mode_prescaler_t prescaler)
-{
- base->SCANC = ((base->SCANC) & ~TSI_SCANC_AMPSC_MASK) | (TSI_SCANC_AMPSC(prescaler));
-}
-
-/*!
-* @brief Sets the low power channel.
-* Only one channel can be enabled in low power mode.
-*
-* @param base TSI peripheral base address.
-* @param channel Channel number.
-* @return none.
-*/
-static inline void TSI_SetLowPowerChannel(TSI_Type *base, uint16_t channel)
-{
- assert(channel < FSL_FEATURE_TSI_CHANNEL_COUNT);
-
- base->PEN = ((base->PEN) & ~TSI_PEN_LPSP_MASK) | (TSI_PEN_LPSP(channel));
-}
-
-/*!
- * @brief Gets the enabled channel in low power modes.
- * @note Only one channel can be enabled in low power mode.
- *
- * @param base TSI peripheral base address.
- * @return Channel number.
- */
-static inline uint32_t TSI_GetLowPowerChannel(TSI_Type *base)
-{
- return ((base->PEN & TSI_PEN_LPSP_MASK) >> TSI_PEN_LPSP_SHIFT);
-}
-
-/*!
-* @brief Enables/disables a channel.
-*
-* @param base TSI peripheral base address.
-* @param channel Channel to be enabled.
-* @param enable Choose whether to enable specific channel.
-* - true Enable the specific channel;
-* - false Disable the specific channel;
-* @return none.
-*/
-static inline void TSI_EnableChannel(TSI_Type *base, uint16_t channel, bool enable)
-{
- assert(channel < FSL_FEATURE_TSI_CHANNEL_COUNT);
-
- if (enable)
- {
- base->PEN |= (1U << channel); /* Enable this specific channel */
- }
- else
- {
- base->PEN &= ~(1U << channel); /* Disable this specific channel */
- }
-}
-
-/*!
-* @brief Enables/disables channels.
-* The function enables or disables channels by mask. It can enable/disable all channels at once.
-*
-* @param base TSI peripheral base address.
-* @param channelsMask Channels mask that indicate channels that are to be enabled/disabled.
-* @param enable Choose to enable or disable the specified channels.
-* - true Enable the specified channels;
-* - false Disable the specified channels;
-* @return none.
-*/
-static inline void TSI_EnableChannels(TSI_Type *base, uint16_t channelsMask, bool enable)
-{
- if (enable)
- {
- base->PEN |= channelsMask; /* Enable these specified channels */
- }
- else
- {
- base->PEN &= ~(0x0000FFFFU & (uint32_t)channelsMask); /* Disable these specified channels */
- }
-}
-
-/*!
- * @brief Returns if a channel is enabled.
- *
- * @param base TSI peripheral base address.
- * @param channel Channel to be checked.
- *
- * @return true - if the channel is enabled;
- * false - if the channel is disabled;
- */
-static inline bool TSI_IsChannelEnabled(TSI_Type *base, uint16_t channel)
-{
- assert(channel < FSL_FEATURE_TSI_CHANNEL_COUNT);
-
- return ((base->PEN) & (1U << channel));
-}
-
-/*!
-* @brief Returns the mask of enabled channels.
-*
-* @param base TSI peripheral base address.
-* @return Channels mask that indicates currently enabled channels.
-*/
-static inline uint16_t TSI_GetEnabledChannels(TSI_Type *base)
-{
- return (uint16_t)(base->PEN & 0x0000FFFFU);
-}
-
-/*!
-* @brief Gets the wake up channel counter for low-power mode usage.
-*
-* @param base TSI peripheral base address.
-* @return Wake up counter value.
-*/
-static inline uint16_t TSI_GetWakeUpChannelCounter(TSI_Type *base)
-{
- return (uint16_t)base->WUCNTR;
-}
-
-/*!
-* @brief Gets the TSI conversion counter of a specific channel in normal mode.
-* @note This API can only be used in normal active modes.
-*
-* @param base TSI peripheral base address.
-* @param channel Index of the specific TSI channel.
-*
-* @return The counter value of the specific channel.
-*/
-static inline uint16_t TSI_GetNormalModeCounter(TSI_Type *base, uint16_t channel)
-{
- assert(channel < FSL_FEATURE_TSI_CHANNEL_COUNT);
-
- uint16_t *counter = (uint16_t *)((uint32_t)(&(((base)->CNTR1))) + (channel * 2U));
- return (uint16_t)(*counter);
-}
-
-/*!
-* @brief Sets a low threshold.
-*
-* @param base TSI peripheral base address.
-* @param low_threshold Low counter threshold.
-* @return none.
-*/
-static inline void TSI_SetLowThreshold(TSI_Type *base, uint16_t low_threshold)
-{
- base->THRESHOLD = ((base->THRESHOLD) & ~TSI_THRESHOLD_LTHH_MASK) | (TSI_THRESHOLD_LTHH(low_threshold));
-}
-
-/*!
-* @brief Sets a high threshold.
-*
-* @param base TSI peripheral base address.
-* @param high_threshold High counter threshold.
-* @return none.
-*/
-static inline void TSI_SetHighThreshold(TSI_Type *base, uint16_t high_threshold)
-{
- base->THRESHOLD = ((base->THRESHOLD) & ~TSI_THRESHOLD_HTHH_MASK) | (TSI_THRESHOLD_HTHH(high_threshold));
-}
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-/*! @}*/
-
-#endif /* _FSL_TSI_V2_H_*/