summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWendly Li <wendlyli@google.com>2023-04-21 11:28:12 +0000
committerWendly Li <wendlyli@google.com>2023-04-25 09:30:03 +0000
commitccfceebe1ed117b11eade0368cf67a796eed82c1 (patch)
tree125830b4611ee5d334175d77d49f730ab7e53034
parent744a775a8fe2184657fd3a3fa637715d3e1d40f0 (diff)
downloadcommon-ccfceebe1ed117b11eade0368cf67a796eed82c1.tar.gz
touch/gti: add sysfs node for offload id (w/ 0400 permission)
Bug: 243079285 Test: Build pass and sysfs access successful Change-Id: I97eaf7d417ee221887880781f3da970d599a77cd Signed-off-by: Wendly Li <wendlyli@google.com>
-rw-r--r--goog_touch_interface.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/goog_touch_interface.c b/goog_touch_interface.c
index b2d35b0..5f2597c 100644
--- a/goog_touch_interface.c
+++ b/goog_touch_interface.c
@@ -363,6 +363,8 @@ static ssize_t offload_enabled_show(struct device *dev,
struct device_attribute *attr, char *buf);
static ssize_t offload_enabled_store(struct device *dev,
struct device_attribute *attr, const char *buf, size_t size);
+static ssize_t offload_id_show(struct device *dev,
+ struct device_attribute *attr, char *buf);
static ssize_t panel_id_show(struct device *dev,
struct device_attribute *attr, char *buf);
static ssize_t ping_show(struct device *dev,
@@ -406,7 +408,8 @@ static DEVICE_ATTR_RO(fw_ver);
static DEVICE_ATTR_RW(irq_enabled);
static DEVICE_ATTR_RW(mf_mode);
static DEVICE_ATTR_RW(offload_enabled);
-static DEVICE_ATTR_RO(panel_id);
+static DEVICE_ATTR_ADMIN_RO(offload_id);
+static DEVICE_ATTR_ADMIN_RO(panel_id);
static DEVICE_ATTR_RO(ping);
static DEVICE_ATTR_RW(reset);
static DEVICE_ATTR_RW(scan_mode);
@@ -428,6 +431,7 @@ static struct attribute *goog_attributes[] = {
&dev_attr_irq_enabled.attr,
&dev_attr_mf_mode.attr,
&dev_attr_offload_enabled.attr,
+ &dev_attr_offload_id.attr,
&dev_attr_panel_id.attr,
&dev_attr_ping.attr,
&dev_attr_reset.attr,
@@ -855,6 +859,19 @@ static ssize_t offload_enabled_store(struct device *dev,
return size;
}
+static ssize_t offload_id_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ ssize_t buf_idx = 0;
+ struct goog_touch_interface *gti = dev_get_drvdata(dev);
+
+ buf_idx += scnprintf(buf + buf_idx, PAGE_SIZE - buf_idx, "result: %c%c%c%c\n",
+ gti->offload_id_byte[0], gti->offload_id_byte[1], gti->offload_id_byte[2],
+ gti->offload_id_byte[3]);
+ GOOG_INFO(gti, "%s", buf);
+ return buf_idx;
+}
+
static ssize_t panel_id_show(struct device *dev,
struct device_attribute *attr, char *buf)
{