mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 19:43:40 +02:00
Input: edt-ft5x06 - use per-client debugfs directory
The I2C core now provides a debugfs entry for each client. Let this driver use it instead of the custom directory in debugfs root. Further improvements by this change: support of multiple instances. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Link: https://lore.kernel.org/r/20250318091904.22468-1-wsa+renesas@sang-engineering.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
6a71a6679f
commit
68743c500c
|
|
@ -29,8 +29,25 @@ The driver allows configuration of the touch screen via a set of sysfs files:
|
||||||
|
|
||||||
|
|
||||||
For debugging purposes the driver provides a few files in the debug
|
For debugging purposes the driver provides a few files in the debug
|
||||||
filesystem (if available in the kernel). In /sys/kernel/debug/edt_ft5x06
|
filesystem (if available in the kernel). They are located in:
|
||||||
you'll find the following files:
|
|
||||||
|
/sys/kernel/debug/i2c/<i2c-bus>/<i2c-device>/
|
||||||
|
|
||||||
|
If you don't know the bus and device numbers, you can look them up with this
|
||||||
|
command:
|
||||||
|
|
||||||
|
$ ls -l /sys/bus/i2c/drivers/edt_ft5x06
|
||||||
|
|
||||||
|
The dereference of the symlink will contain the needed information. You will
|
||||||
|
need the last two elements of its path:
|
||||||
|
|
||||||
|
0-0038 -> ../../../../devices/platform/soc/fcfee800.i2c/i2c-0/0-0038
|
||||||
|
|
||||||
|
So in this case, the location for the debug files is:
|
||||||
|
|
||||||
|
/sys/kernel/debug/i2c/i2c-0/0-0038/
|
||||||
|
|
||||||
|
There, you'll find the following files:
|
||||||
|
|
||||||
num_x, num_y:
|
num_x, num_y:
|
||||||
(readonly) contains the number of sensor fields in X- and
|
(readonly) contains the number of sensor fields in X- and
|
||||||
|
|
|
||||||
|
|
@ -120,7 +120,6 @@ struct edt_ft5x06_ts_data {
|
||||||
struct regmap *regmap;
|
struct regmap *regmap;
|
||||||
|
|
||||||
#if defined(CONFIG_DEBUG_FS)
|
#if defined(CONFIG_DEBUG_FS)
|
||||||
struct dentry *debug_dir;
|
|
||||||
u8 *raw_buffer;
|
u8 *raw_buffer;
|
||||||
size_t raw_bufsize;
|
size_t raw_bufsize;
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -815,23 +814,21 @@ static const struct file_operations debugfs_raw_data_fops = {
|
||||||
.read = edt_ft5x06_debugfs_raw_data_read,
|
.read = edt_ft5x06_debugfs_raw_data_read,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void edt_ft5x06_ts_prepare_debugfs(struct edt_ft5x06_ts_data *tsdata,
|
static void edt_ft5x06_ts_prepare_debugfs(struct edt_ft5x06_ts_data *tsdata)
|
||||||
const char *debugfs_name)
|
|
||||||
{
|
{
|
||||||
tsdata->debug_dir = debugfs_create_dir(debugfs_name, NULL);
|
struct dentry *debug_dir = tsdata->client->debugfs;
|
||||||
|
|
||||||
debugfs_create_u16("num_x", S_IRUSR, tsdata->debug_dir, &tsdata->num_x);
|
debugfs_create_u16("num_x", S_IRUSR, debug_dir, &tsdata->num_x);
|
||||||
debugfs_create_u16("num_y", S_IRUSR, tsdata->debug_dir, &tsdata->num_y);
|
debugfs_create_u16("num_y", S_IRUSR, debug_dir, &tsdata->num_y);
|
||||||
|
|
||||||
debugfs_create_file("mode", S_IRUSR | S_IWUSR,
|
debugfs_create_file("mode", S_IRUSR | S_IWUSR,
|
||||||
tsdata->debug_dir, tsdata, &debugfs_mode_fops);
|
debug_dir, tsdata, &debugfs_mode_fops);
|
||||||
debugfs_create_file("raw_data", S_IRUSR,
|
debugfs_create_file("raw_data", S_IRUSR,
|
||||||
tsdata->debug_dir, tsdata, &debugfs_raw_data_fops);
|
debug_dir, tsdata, &debugfs_raw_data_fops);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void edt_ft5x06_ts_teardown_debugfs(struct edt_ft5x06_ts_data *tsdata)
|
static void edt_ft5x06_ts_teardown_debugfs(struct edt_ft5x06_ts_data *tsdata)
|
||||||
{
|
{
|
||||||
debugfs_remove_recursive(tsdata->debug_dir);
|
|
||||||
kfree(tsdata->raw_buffer);
|
kfree(tsdata->raw_buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -842,8 +839,7 @@ static int edt_ft5x06_factory_mode(struct edt_ft5x06_ts_data *tsdata)
|
||||||
return -ENOSYS;
|
return -ENOSYS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void edt_ft5x06_ts_prepare_debugfs(struct edt_ft5x06_ts_data *tsdata,
|
static void edt_ft5x06_ts_prepare_debugfs(struct edt_ft5x06_ts_data *tsdata)
|
||||||
const char *debugfs_name)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1349,7 +1345,7 @@ static int edt_ft5x06_ts_probe(struct i2c_client *client)
|
||||||
if (error)
|
if (error)
|
||||||
return error;
|
return error;
|
||||||
|
|
||||||
edt_ft5x06_ts_prepare_debugfs(tsdata, dev_driver_string(&client->dev));
|
edt_ft5x06_ts_prepare_debugfs(tsdata);
|
||||||
|
|
||||||
dev_dbg(&client->dev,
|
dev_dbg(&client->dev,
|
||||||
"EDT FT5x06 initialized: IRQ %d, WAKE pin %d, Reset pin %d.\n",
|
"EDT FT5x06 initialized: IRQ %d, WAKE pin %d, Reset pin %d.\n",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user