#ifndef DEVICE_TOUCH_KEY_H
#define DEVICE_TOUCH_KEY_H

#include "typedef.h"
#include "asm/plcnt.h"

//计数参考时钟选择, 频率越高, 精度越高
enum touch_key_clk {
    TOUCH_KEY_OSC_CLK = 0,
    TOUCH_KEY_MUX_IN_CLK,  //外部输入, ,一般不用, 保留
    TOUCH_KEY_PLL_192M_CLK,
    TOUCH_KEY_PLL_240M_CLK,
};

struct touch_key_port {
    u8 port; 			//触摸按键IO
    u8 key_value; 		//按键返回值
};

struct touch_key_platform_data {
    u8 num; 	//触摸按键个数;
    u8 clock; 	//触摸按键选择时钟;
    u8 change_gain; 	//变化放大倍数
    s16 press_cfg;  	//按下判决门限
    s16 release_cfg0; 	//释放判决门限0
    s16 release_cfg1; 	//释放判决门限1
    const struct touch_key_port *port_list; //触摸按键列表
};

/* =========== touch key API ============= */
//触摸按键初始化
int touch_key_init(const struct touch_key_platform_data *touch_key_data);

//获取触摸按键键值
u8 touch_key_get_value(void);


#endif

