123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- --- a/drivers/input/touchscreen/edt-ft5x06.c 2017-09-26 15:27:56.685769326 +0200
- +++ b/drivers/input/touchscreen/edt-ft5x06.c 2017-09-25 08:00:57.530768619 +0200
- @@ -639,6 +639,111 @@
- return 0;
- }
-
- +
- +static int edt_ft5x06_debugfs_threshold_get(void *data, u64 *threshold)
- +{
- + struct edt_ft5x06_ts_data *tsdata = data;
- +
- + *threshold = (u64)(tsdata->threshold);
- +
- + return 0;
- +};
- +
- +static int edt_ft5x06_debugfs_threshold_set(void *data, u64 threshold)
- +{
- + struct edt_ft5x06_ts_data *tsdata = data;
- + struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
- + int retval = 0;
- +
- +/* if (param > ??????)
- + return -ERANGE;
- +*/
- + mutex_lock(&tsdata->mutex);
- +
- + tsdata->threshold = (int)(threshold);
- + edt_ft5x06_register_write(tsdata, reg_addr->reg_threshold,
- + tsdata->threshold);
- + tsdata->threshold = edt_ft5x06_register_read(tsdata,
- + reg_addr->reg_threshold);
- +
- + mutex_unlock(&tsdata->mutex);
- +
- + return retval;
- +};
- +
- +DEFINE_SIMPLE_ATTRIBUTE(debugfs_threshold_fops, edt_ft5x06_debugfs_threshold_get,
- + edt_ft5x06_debugfs_threshold_set, "%llu\n");
- +
- +
- +static int edt_ft5x06_debugfs_gain_get(void *data, u64 *gain)
- +{
- + struct edt_ft5x06_ts_data *tsdata = data;
- +
- + *gain = (u64)(tsdata->gain);
- +
- + return 0;
- +};
- +
- +static int edt_ft5x06_debugfs_gain_set(void *data, u64 gain)
- +{
- + struct edt_ft5x06_ts_data *tsdata = data;
- + struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
- + int retval = 0;
- +
- +/* if (param > ??????)
- + return -ERANGE;
- +*/
- + mutex_lock(&tsdata->mutex);
- +
- + tsdata->gain = (int)(gain);
- + edt_ft5x06_register_write(tsdata, reg_addr->reg_gain,
- + tsdata->gain);
- + tsdata->gain = edt_ft5x06_register_read(tsdata,
- + reg_addr->reg_gain);
- +
- + mutex_unlock(&tsdata->mutex);
- +
- + return retval;
- +};
- +
- +DEFINE_SIMPLE_ATTRIBUTE(debugfs_gain_fops, edt_ft5x06_debugfs_gain_get,
- + edt_ft5x06_debugfs_gain_set, "%llu\n");
- +
- +
- +static int edt_ft5x06_debugfs_offset_get(void *data, u64 *offset)
- +{
- + struct edt_ft5x06_ts_data *tsdata = data;
- +
- + *offset = (u64)(tsdata->offset);
- +
- + return 0;
- +};
- +
- +static int edt_ft5x06_debugfs_offset_set(void *data, u64 offset)
- +{
- + struct edt_ft5x06_ts_data *tsdata = data;
- + struct edt_reg_addr *reg_addr = &tsdata->reg_addr;
- + int retval = 0;
- +
- +/* if (param > ??????)
- + return -ERANGE;
- +*/
- + mutex_lock(&tsdata->mutex);
- +
- + tsdata->offset = (int)(offset);
- + edt_ft5x06_register_write(tsdata, reg_addr->reg_offset,
- + tsdata->offset);
- + tsdata->offset = edt_ft5x06_register_read(tsdata,
- + reg_addr->reg_offset);
- +
- + mutex_unlock(&tsdata->mutex);
- +
- + return retval;
- +};
- +
- +DEFINE_SIMPLE_ATTRIBUTE(debugfs_offset_fops, edt_ft5x06_debugfs_offset_get,
- + edt_ft5x06_debugfs_offset_set, "%llu\n");
- +
- static int edt_ft5x06_debugfs_mode_get(void *data, u64 *mode)
- {
- struct edt_ft5x06_ts_data *tsdata = data;
- @@ -766,10 +871,19 @@
-
- debugfs_create_u16("num_x", S_IRUSR, tsdata->debug_dir, &tsdata->num_x);
- debugfs_create_u16("num_y", S_IRUSR, tsdata->debug_dir, &tsdata->num_y);
- +
- +/*
- debugfs_create_u32("threshold", S_IRUSR, tsdata->debug_dir, &tsdata->threshold);
- debugfs_create_u32("gain", S_IRUSR, tsdata->debug_dir, &tsdata->gain);
- debugfs_create_u32("offset", S_IRUSR, tsdata->debug_dir, &tsdata->offset);
- +*/
-
- + debugfs_create_file("threshold", S_IRUSR | S_IWUSR,
- + tsdata->debug_dir, tsdata, &debugfs_threshold_fops);
- + debugfs_create_file("gain", S_IRUSR | S_IWUSR,
- + tsdata->debug_dir, tsdata, &debugfs_gain_fops);
- + debugfs_create_file("offset", S_IRUSR | S_IWUSR,
- + tsdata->debug_dir, tsdata, &debugfs_offset_fops);
-
- debugfs_create_file("mode", S_IRUSR | S_IWUSR,
- tsdata->debug_dir, tsdata, &debugfs_mode_fops);
|