*
*/
+#include <linux/debugfs.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/delay.h>
u8 T9_reportid_max;
u8 T19_reportid;
u16 T44_address;
+
+ /* per-instance debugfs root */
+ struct dentry *dentry_dev;
};
+/* global root node of the atmel_mxt_ts debugfs directory. */
+static struct dentry *mxt_debugfs_root;
+
static int mxt_initialize(struct mxt_data *data);
static bool mxt_object_readable(unsigned int type)
.attrs = mxt_attrs,
};
+/*
+ **************************************************************
+ * debugfs interface
+ **************************************************************
+*/
+static int mxt_debugfs_init(struct mxt_data *mxt)
+{
+ struct device *dev = &mxt->client->dev;
+
+ if (!mxt_debugfs_root)
+ return -ENODEV;
+
+ mxt->dentry_dev = debugfs_create_dir(kobject_name(&dev->kobj),
+ mxt_debugfs_root);
+
+ if (!mxt->dentry_dev)
+ return -ENODEV;
+
+ return 0;
+}
+
static void mxt_start(struct mxt_data *data)
{
/* Touch enable */
if (error)
dev_warn(&client->dev, "error creating sysfs entries.\n");
+ error = mxt_debugfs_init(data);
+ if (error)
+ dev_warn(&client->dev, "error creating debugfs entries.\n");
+
return 0;
err_free_irq:
{
struct mxt_data *data = i2c_get_clientdata(client);
+ if (data->dentry_dev)
+ debugfs_remove_recursive(data->dentry_dev);
sysfs_remove_group(&client->dev.kobj, &mxt_attr_group);
free_irq(data->irq, data);
input_unregister_device(data->input_dev);
.id_table = mxt_id,
};
-module_i2c_driver(mxt_driver);
+static int __init mxt_init(void)
+{
+ /* Create a global debugfs root for all atmel_mxt_ts devices */
+ mxt_debugfs_root = debugfs_create_dir(mxt_driver.driver.name, NULL);
+ if (mxt_debugfs_root == ERR_PTR(-ENODEV))
+ mxt_debugfs_root = NULL;
+
+ return i2c_add_driver(&mxt_driver);
+}
+
+static void __exit mxt_exit(void)
+{
+ if (mxt_debugfs_root)
+ debugfs_remove_recursive(mxt_debugfs_root);
+
+ i2c_del_driver(&mxt_driver);
+}
+
+module_init(mxt_init);
+module_exit(mxt_exit);
/* Module information */
MODULE_AUTHOR("Joonyoung Shim <jy0922.shim@samsung.com>");