touchkey4 2.0.0.0
touchkey4.h File Reference

This file contains API for Touch Key 4 Click driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_i2c_master.h"

Go to the source code of this file.

Data Structures

struct  touchkey4_t
 Click ctx object definition. More...
 
struct  touchkey4_cfg_t
 Click configuration structure definition. More...
 

Macros

#define TOUCHKEY4_MAP_MIKROBUS(cfg, mikrobus)
 
#define TOUCHKEY4_RETVAL   uint8_t
 
#define TOUCHKEY4_OK   0x00
 
#define TOUCHKEY4_INIT_ERROR   0xFF
 
#define TOUCHKEY4_MAIN_CONTROL_REG   0x00
 
#define TOUCHKEY4_GEN_STATUS_REG   0x02
 
#define TOUCHKEY4_SENS_IN_STATUS_REG   0x03
 
#define TOUCHKEY4_NOISE_FLAG_REG   0x0A
 
#define TOUCHKEY4_SENS_IN1_DELTA_CNT_REG   0x10
 
#define TOUCHKEY4_SENS_IN2_DELTA_CNT_REG   0x11
 
#define TOUCHKEY4_SENS_IN3_DELTA_CNT_REG   0x12
 
#define TOUCHKEY4_SENSITIVITY_CON_REG   0x1F
 
#define TOUCHKEY4_CONFIG_REG   0x20
 
#define TOUCHKEY4_SENS_IN_EN_REG   0x21
 
#define TOUCHKEY4_SENS_IN_CONFIG_REG   0x22
 
#define TOUCHKEY4_SENS_IN_CONFIG2_REG   0x23
 
#define TOUCHKEY4_AVRG_AND_SAMPL_CONFIG_REG   0x24
 
#define TOUCHKEY4_CALIB_ACTIVATE_REG   0x26
 
#define TOUCHKEY4_INTERR_EN_REG   0x27
 
#define TOUCHKEY4_REPEAT_RATE_EN_REG   0x28
 
#define TOUCHKEY4_SIGNAL_GUARD_EN_REG   0x29
 
#define TOUCHKEY4_MULTIPLE_TOUCH_CONFIG_REG   0x2A
 
#define TOUCHKEY4_MULTIPLE_TOUCH_PATTERN_CONFIG_REG   0x2B
 
#define TOUCHKEY4_MULTIPLE_TOUCH_PATTERN_REG   0x2D
 
#define TOUCHKEY4_BASE_CNT_LIMIT_REG   0x2E
 
#define TOUCHKEY4_RECALIB_CONFIG_REG   0x2F
 
#define TOUCHKEY4_SENS_IN1_THRESHOLD_REG   0x30
 
#define TOUCHKEY4_SENS_IN2_THRESHOLD_REG   0x31
 
#define TOUCHKEY4_SENS_IN3_THRESHOLD_REG   0x32
 
#define TOUCHKEY4_SENS_IN_NOISE_THRESHOLD_REG   0x38
 
#define TOUCHKEY4_STANDBY_CHANN_REG   0x40
 
#define TOUCHKEY4_STANDBY_CONFIG_REG   0x41
 
#define TOUCHKEY4_STANDBY_SENSITIVITY_REG   0x42
 
#define TOUCHKEY4_STANDBY_THRESHOLD_REG   0x43
 
#define TOUCHKEY4_CONFIG2_REG   0x44
 
#define TOUCHKEY4_SENS_IN1_BASE_CNT_REG   0x50
 
#define TOUCHKEY4_SENS_IN2_BASE_CNT_REG   0x51
 
#define TOUCHKEY4_SENS_IN3_BASE_CNT_REG   0x52
 
#define TOUCHKEY4_POWER_BUTTON_REG   0x60
 
#define TOUCHKEY4_POWER_BUTTON_CONFIG_REG   0x61
 
#define TOUCHKEY4_CALIB_SENSITIVITY_CONFIG_REG   0x80
 
#define TOUCHKEY4_SENS_IN1_CALIB_REG   0xB1
 
#define TOUCHKEY4_SENS_IN2_CALIB_REG   0xB2
 
#define TOUCHKEY4_SENS_IN3_CALIB_REG   0xB3
 
#define TOUCHKEY4_SENS_IN_CALIB_LSB1_REG   0xB9
 
#define TOUCHKEY4_PRODUCT_ID_REG   0xFD
 
#define TOUCHKEY4_MANUFACT_ID_REG   0xFE
 
#define TOUCHKEY4_REVISION_REG   0xFF
 
#define TOUCHKEY4_SENSITIVITY_MULTIPLIER_128X   0x00
 
#define TOUCHKEY4_SENSITIVITY_MULTIPLIER_64X   0x10
 
#define TOUCHKEY4_SENSITIVITY_MULTIPLIER_32X   0x20
 
#define TOUCHKEY4_SENSITIVITY_MULTIPLIER_16X   0x30
 
#define TOUCHKEY4_SENSITIVITY_MULTIPLIER_8X   0x40
 
#define TOUCHKEY4_SENSITIVITY_MULTIPLIER_4X   0x50
 
#define TOUCHKEY4_SENSITIVITY_MULTIPLIER_2X   0x60
 
#define TOUCHKEY4_SENSITIVITY_MULTIPLIER_1X   0x70
 
#define TOUCHKEY4_DATA_SCALING_FACTOR_1X   0x00
 
#define TOUCHKEY4_DATA_SCALING_FACTOR_2X   0x01
 
#define TOUCHKEY4_DATA_SCALING_FACTOR_4X   0x02
 
#define TOUCHKEY4_DATA_SCALING_FACTOR_8X   0x03
 
#define TOUCHKEY4_DATA_SCALING_FACTOR_16X   0x04
 
#define TOUCHKEY4_DATA_SCALING_FACTOR_32X   0x05
 
#define TOUCHKEY4_DATA_SCALING_FACTOR_64X   0x06
 
#define TOUCHKEY4_DATA_SCALING_FACTOR_128X   0x07
 
#define TOUCHKEY4_DATA_SCALING_FACTOR_256X   0x08
 
#define TOUCHKEY4_TIMEOUT_DIS   0x00
 
#define TOUCHKEY4_TIMEOUT_EN   0x80
 
#define TOUCHKEY4_DIG_NOISE_THRESHOLD_EN   0x00
 
#define TOUCHKEY4_DIG_NOISE_THRESHOLD_DIS   0x20
 
#define TOUCHKEY4_AN_NOISE_FILTER_EN   0x00
 
#define TOUCHKEY4_AN_NOISE_FILTER_DIS   0x10
 
#define TOUCHKEY4_MAX_DUR_RECALIB_DIS   0x00
 
#define TOUCHKEY4_MAX_DUR_RECALIB_EN   0x08
 
#define TOUCHKEY4_AN_CALIB_NO_RETRY   0x00
 
#define TOUCHKEY4_AN_CALIB_RETRY   0x40
 
#define TOUCHKEY4_POWER_CONSUMPTION_REDUCE_EN   0x00
 
#define TOUCHKEY4_POWER_CONSUMPTION_REDUCE_DIS   0x20
 
#define TOUCHKEY4_BASE_CNT_OUT_LIMIT_INTERR_DIS   0x00
 
#define TOUCHKEY4_BASE_CNT_OUT_LIMIT_INTERR_EN   0x10
 
#define TOUCHKEY4_SHOW_LOW_FREQ_NOISE   0x00
 
#define TOUCHKEY4_NOT_SHOW_LOW_FREQ_NOISE   0x08
 
#define TOUCHKEY4_RF_NOISE_FILTER_EN   0x00
 
#define TOUCHKEY4_RF_NOISE_FILTER_DIS   0x04
 
#define TOUCHKEY4_AN_CALIB_FAIL_INTERR_DIS   0x00
 
#define TOUCHKEY4_AN_CALIB_FAIL_INTERR_EN   0x02
 
#define TOUCHKEY4_DETECT_RELEASE_EN   0x00
 
#define TOUCHKEY4_DETECT_RELEASE_DIS   0x01
 
#define TOUCHKEY4_560MILISEC_BEFORE_RECALIB   0x00
 
#define TOUCHKEY4_840MILISEC_BEFORE_RECALIB   0x10
 
#define TOUCHKEY4_1120MILISEC_BEFORE_RECALIB   0x20
 
#define TOUCHKEY4_1400MILISEC_BEFORE_RECALIB   0x30
 
#define TOUCHKEY4_1680MILISEC_BEFORE_RECALIB   0x40
 
#define TOUCHKEY4_2240MILISEC_BEFORE_RECALIB   0x50
 
#define TOUCHKEY4_2800MILISEC_BEFORE_RECALIB   0x60
 
#define TOUCHKEY4_3360MILISEC_BEFORE_RECALIB   0x70
 
#define TOUCHKEY4_3920MILISEC_BEFORE_RECALIB   0x80
 
#define TOUCHKEY4_4480MILISEC_BEFORE_RECALIB   0x90
 
#define TOUCHKEY4_5600MILISEC_BEFORE_RECALIB   0xA0
 
#define TOUCHKEY4_6720MILISEC_BEFORE_RECALIB   0xB0
 
#define TOUCHKEY4_7840MILISEC_BEFORE_RECALIB   0xC0
 
#define TOUCHKEY4_8906MILISEC_BEFORE_RECALIB   0xD0
 
#define TOUCHKEY4_10080MILISEC_BEFORE_RECALIB   0xE0
 
#define TOUCHKEY4_11200MILISEC_BEFORE_RECALIB   0xF0
 
#define TOUCHKEY4_INTERR_REPEAT_RATE_35MILISEC   0x00
 
#define TOUCHKEY4_INTERR_REPEAT_RATE_70MILISEC   0x01
 
#define TOUCHKEY4_INTERR_REPEAT_RATE_105MILISEC   0x02
 
#define TOUCHKEY4_INTERR_REPEAT_RATE_140MILISEC   0x03
 
#define TOUCHKEY4_INTERR_REPEAT_RATE_175MILISEC   0x04
 
#define TOUCHKEY4_INTERR_REPEAT_RATE_210MILISEC   0x05
 
#define TOUCHKEY4_INTERR_REPEAT_RATE_245MILISEC   0x06
 
#define TOUCHKEY4_INTERR_REPEAT_RATE_280MILISEC   0x07
 
#define TOUCHKEY4_INTERR_REPEAT_RATE_315MILISEC   0x08
 
#define TOUCHKEY4_INTERR_REPEAT_RATE_350MILISEC   0x09
 
#define TOUCHKEY4_INTERR_REPEAT_RATE_385MILISEC   0x0A
 
#define TOUCHKEY4_INTERR_REPEAT_RATE_420MILISEC   0x0B
 
#define TOUCHKEY4_INTERR_REPEAT_RATE_455MILISEC   0x0C
 
#define TOUCHKEY4_INTERR_REPEAT_RATE_490MILISEC   0x0D
 
#define TOUCHKEY4_INTERR_REPEAT_RATE_525MILISEC   0x0E
 
#define TOUCHKEY4_INTERR_REPEAT_RATE_560MILISEC   0x0F
 
#define TOUCHKEY4_PRESS_AND_HOLD_EVENT_AFTER_35MILISEC   0x00
 
#define TOUCHKEY4_PRESS_AND_HOLD_EVENT_AFTER_70MILISEC   0x01
 
#define TOUCHKEY4_PRESS_AND_HOLD_EVENT_AFTER_105MILISEC   0x02
 
#define TOUCHKEY4_PRESS_AND_HOLD_EVENT_AFTER_140MILISEC   0x03
 
#define TOUCHKEY4_PRESS_AND_HOLD_EVENT_AFTER_175MILISEC   0x04
 
#define TOUCHKEY4_PRESS_AND_HOLD_EVENT_AFTER_210MILISEC   0x05
 
#define TOUCHKEY4_PRESS_AND_HOLD_EVENT_AFTER_245MILISEC   0x06
 
#define TOUCHKEY4_PRESS_AND_HOLD_EVENT_AFTER_280MILISEC   0x07
 
#define TOUCHKEY4_PRESS_AND_HOLD_EVENT_AFTER_315MILISEC   0x08
 
#define TOUCHKEY4_PRESS_AND_HOLD_EVENT_AFTER_350MILISEC   0x09
 
#define TOUCHKEY4_PRESS_AND_HOLD_EVENT_AFTER_385MILISEC   0x0A
 
#define TOUCHKEY4_PRESS_AND_HOLD_EVENT_AFTER_420MILISEC   0x0B
 
#define TOUCHKEY4_PRESS_AND_HOLD_EVENT_AFTER_455MILISEC   0x0C
 
#define TOUCHKEY4_PRESS_AND_HOLD_EVENT_AFTER_490MILISEC   0x0D
 
#define TOUCHKEY4_PRESS_AND_HOLD_EVENT_AFTER_525MILISEC   0x0E
 
#define TOUCHKEY4_PRESS_AND_HOLD_EVENT_AFTER_560MILISEC   0x0F
 
#define TOUCHKEY4_1_SAMPLE   0x00
 
#define TOUCHKEY4_2_SAMPLES   0x10
 
#define TOUCHKEY4_4_SAMPLES   0x20
 
#define TOUCHKEY4_8_SAMPLES   0x30
 
#define TOUCHKEY4_16_SAMPLES   0x40
 
#define TOUCHKEY4_32_SAMPLES   0x50
 
#define TOUCHKEY4_64_SAMPLES   0x60
 
#define TOUCHKEY4_128_SAMPLES   0x70
 
#define TOUCHKEY4_SAMPLE_TIME_320MICROSEC   0x00
 
#define TOUCHKEY4_SAMPLE_TIME_640MICROSEC   0x04
 
#define TOUCHKEY4_SAMPLE_TIME_1280MICROSEC   0x08
 
#define TOUCHKEY4_SAMPLE_TIME_2560MICROSEC   0x0C
 
#define TOUCHKEY4_CYCLE_TIME_35MILISEC   0x00
 
#define TOUCHKEY4_CYCLE_TIME_70MILISEC   0x01
 
#define TOUCHKEY4_CYCLE_TIME_105MILISEC   0x02
 
#define TOUCHKEY4_CYCLE_TIME_140MILISEC   0x03
 
#define TOUCHKEY4_ALL_INPUTS_CALIB_DIS   0x00
 
#define TOUCHKEY4_INPUT1_CALIB_EN   0x01
 
#define TOUCHKEY4_INPUT2_CALIB_EN   0x02
 
#define TOUCHKEY4_INPUT3_CALIB_EN   0x04
 
#define TOUCHKEY4_ALL_INPUTS_INTERR_DIS   0x00
 
#define TOUCHKEY4_INPUT1_INTERR_EN   0x01
 
#define TOUCHKEY4_INPUT2_INTERR_EN   0x02
 
#define TOUCHKEY4_INPUT3_INTERR_EN   0x04
 
#define TOUCHKEY4_REPEAT_RATE_DIS   0x00
 
#define TOUCHKEY4_INPUT1_REPEAT_RATE_EN   0x01
 
#define TOUCHKEY4_INPUT2_REPEAT_RATE_EN   0x02
 
#define TOUCHKEY4_INPUT3_REPEAT_RATE_EN   0x04
 
#define TOUCHKEY4_SIGNAL_GUARD_DIS   0x00
 
#define TOUCHKEY4_INPUT1_SIGNAL_GUARD_EN   0x01
 
#define TOUCHKEY4_INPUT3_SIGNAL_GUARD_EN   0x04
 
#define TOUCHKEY4_MULTIPLE_BLOCK_DIS   0x00
 
#define TOUCHKEY4_MULTIPLE_BLOCK_EN   0x80
 
#define TOUCHKEY4_SIMUL_TOUCH_NUM_1   0x00
 
#define TOUCHKEY4_SIMUL_TOUCH_NUM_2   0x04
 
#define TOUCHKEY4_SIMUL_TOUCH_NUM_3   0x08
 
#define TOUCHKEY4_MULTIPLE_THRESHOLD_12_PERCENTS   0x00
 
#define TOUCHKEY4_MULTIPLE_THRESHOLD_25_PERCENTS   0x04
 
#define TOUCHKEY4_MULTIPLE_THRESHOLD_37_PERCENTS   0x08
 
#define TOUCHKEY4_MULTIPLE_THRESHOLD_100_PERCENTS   0x0C
 
#define TOUCHKEY4_MLTP_TOUCH_PATTERN   0x00
 
#define TOUCHKEY4_PATTERN_RECOGNITION   0x02
 
#define TOUCHKEY4_MLTP_EVENT_ALERT_DIS   0x00
 
#define TOUCHKEY4_MLTP_EVENT_ALERT_EN   0x01
 
#define TOUCHKEY4_MLTP_TOUCH_PATTERN_INPUTS_DIS   0x00
 
#define TOUCHKEY4_MLTP_TOUCH_PATTERN_INPUT1_EN   0x01
 
#define TOUCHKEY4_MLTP_TOUCH_PATTERN_INPUT2_EN   0x02
 
#define TOUCHKEY4_MLTP_TOUCH_PATTERN_INPUT3_EN   0x04
 
#define TOUCHKEY4_INPUTS_THRESHOLD_UPDT_INDIVIDUALY   0x00
 
#define TOUCHKEY4_INPUT1_THRESHOLD_OVERWRITE   0x80
 
#define TOUCHKEY4_ACC_INTER_DATA_CLEAR   0x00
 
#define TOUCHKEY4_ACC_INTER_DATA_NOT_CLEAR   0x40
 
#define TOUCHKEY4_CONS_NEG_DELTA_CNT_CLEAR   0x00
 
#define TOUCHKEY4_CONS_NEG_DELTA_CNT_NOT_CLEAR   0x20
 
#define TOUCHKEY4_CONS_NEG_DELTA_CNT_8   0x00
 
#define TOUCHKEY4_CONS_NEG_DELTA_CNT_16   0x08
 
#define TOUCHKEY4_CONS_NEG_DELTA_CNT_32   0x10
 
#define TOUCHKEY4_CONS_NEG_DELTA_CNT_DIS   0x18
 
#define TOUCHKEY4_REC_SAMPLES_16_UPDT_TIME_16   0x00
 
#define TOUCHKEY4_REC_SAMPLES_32_UPDT_TIME_32   0x01
 
#define TOUCHKEY4_REC_SAMPLES_64_UPDT_TIME_64   0x02
 
#define TOUCHKEY4_REC_SAMPLES_128_UPDT_TIME_128   0x03
 
#define TOUCHKEY4_REC_SAMPLES_256_UPDT_TIME_256   0x04
 
#define TOUCHKEY4_REC_SAMPLES_256_UPDT_TIME_1024   0x05
 
#define TOUCHKEY4_REC_SAMPLES_256_UPDT_TIME_2048   0x06
 
#define TOUCHKEY4_REC_SAMPLES_256_UPDT_TIME_4096   0x07
 
#define TOUCHKEY4_AVERAGE_BASED   0x00
 
#define TOUCHKEY4_SUMMATION_BASED   0x80
 
#define TOUCHKEY4_STBY_SENSE_MULTIPLIER_128X   0x00
 
#define TOUCHKEY4_STBY_SENSE_MULTIPLIER_64X   0x01
 
#define TOUCHKEY4_STBY_SENSE_MULTIPLIER_32X   0x02
 
#define TOUCHKEY4_STBY_SENSE_MULTIPLIER_16X   0x03
 
#define TOUCHKEY4_STBY_SENSE_MULTIPLIER_8X   0x04
 
#define TOUCHKEY4_STBY_SENSE_MULTIPLIER_4X   0x05
 
#define TOUCHKEY4_STBY_SENSE_MULTIPLIER_2X   0x06
 
#define TOUCHKEY4_STBY_SENSE_MULTIPLIER_1X   0x07
 
#define TOUCHKEY4_INPUT1_POWER_BUTTON   0x00
 
#define TOUCHKEY4_INPUT2_POWER_BUTTON   0x01
 
#define TOUCHKEY4_INPUT3_POWER_BUTTON   0x02
 
#define TOUCHKEY4_STBY_POWER_BUTTON_DIS   0x00
 
#define TOUCHKEY4_STBY_POWER_BUTTON_EN   0x40
 
#define TOUCHKEY4_PWR_BUTT_TOUCH_HOLD_280MILISEC   0x00
 
#define TOUCHKEY4_PWR_BUTT_TOUCH_HOLD_560MILISEC   0x11
 
#define TOUCHKEY4_PWR_BUTT_TOUCH_HOLD_1120MILISEC   0x22
 
#define TOUCHKEY4_PWR_BUTT_TOUCH_HOLD_2240MILISEC   0x33
 
#define TOUCHKEY4_ACT_POWER_BUTTON_DIS   0x00
 
#define TOUCHKEY4_ACT_POWER_BUTTON_EN   0x04
 
#define TOUCHKEY4_GAIN_1   0x01
 
#define TOUCHKEY4_GAIN_2   0x02
 
#define TOUCHKEY4_GAIN_4   0x04
 
#define TOUCHKEY4_GAIN_8   0x08
 
#define TOUCHKEY4_SENS_INPUT_DIS   0x00
 
#define TOUCHKEY4_SENS_INPUT_EN   0x01
 
#define TOUCHKEY4_COMBO_SENS_IN_ACT_EN   0x03
 
#define TOUCHKEY4_COMBO_SENS_IN_STBY_EN   0x01
 
#define TOUCHKEY4_COMBO_SENS_IN_BOTH_MODES_EN   0x05
 
#define TOUCHKEY4_SLAVE_ADDRESS   0x28
 

Functions

void touchkey4_cfg_setup (touchkey4_cfg_t *cfg)
 Config Object Initialization function.
 
TOUCHKEY4_RETVAL touchkey4_init (touchkey4_t *ctx, touchkey4_cfg_t *cfg)
 Initialization function.
 
void touchkey4_default_cfg (touchkey4_t *ctx)
 Click Default Configuration function.
 
void touchkey4_write_reg (touchkey4_t *ctx, const uint8_t register_address, const uint8_t transfer_data)
 Generic Write function.
 
void touchkey4_read_reg (touchkey4_t *ctx, const uint8_t register_address, uint8_t *data_out, const uint8_t n_bytes)
 Generic Read function.
 
uint8_t touchkey4_receive_byte (touchkey4_t *ctx, const uint8_t register_address)
 Read byte function.
 
void touchkey4_detect_touch (touchkey4_t *ctx, uint8_t *input_sens)
 Touch Detect function.
 
void touchkey4_set_active_mode (touchkey4_t *ctx, const uint8_t analog_gain, const uint8_t en_input1, const uint8_t en_input2, const uint8_t en_input3)
 Active Mode Set function.
 
void touchkey4_set_standby_mode (touchkey4_t *ctx, const uint8_t analog_gain, const uint8_t en_input1, const uint8_t en_input2, const uint8_t en_input3)
 Standby Mode Set function.
 
void touchkey4_set_combo_mode (touchkey4_t *ctx, const uint8_t analog_gain, const uint8_t en_input1, const uint8_t en_input2, const uint8_t en_input3)
 Combo Mode Set function.
 
void touchkey4_set_deep_sleep_mode (touchkey4_t *ctx)
 DeepSleep Mode Set function.
 
uint8_t touchkey4_check_interrupt (touchkey4_t *ctx)
 Interrupt Check function.
 

Detailed Description

This file contains API for Touch Key 4 Click driver.