Input: st1232 - expose firmware version via sysfs

Allow user space programs to read the firmware version and revision of
the touch controller from the sysfs.

Suggested-by: Khalid Talash <ktalash@topcon.com>
Signed-off-by: Michael Tretter <m.tretter@pengutronix.de>
Link: https://patch.msgid.link/20260123-input-st1232-firmware-version-v1-2-32df7eefdafe@pengutronix.de
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
Michael Tretter
2026-02-17 22:53:08 -08:00
committed by Dmitry Torokhov
parent 004703baa5
commit ffcdb6856a

View File

@@ -69,6 +69,34 @@ struct st1232_ts_data {
u32 fw_revision;
};
static ssize_t fw_version_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct i2c_client *client = to_i2c_client(dev);
struct st1232_ts_data *st1232_ts = i2c_get_clientdata(client);
return sysfs_emit(buf, "%u\n", st1232_ts->fw_version);
}
static ssize_t fw_revision_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct i2c_client *client = to_i2c_client(dev);
struct st1232_ts_data *st1232_ts = i2c_get_clientdata(client);
return sysfs_emit(buf, "%08x\n", st1232_ts->fw_revision);
}
static DEVICE_ATTR_RO(fw_version);
static DEVICE_ATTR_RO(fw_revision);
static struct attribute *st1232_attrs[] = {
&dev_attr_fw_version.attr,
&dev_attr_fw_revision.attr,
NULL,
};
ATTRIBUTE_GROUPS(st1232);
static int st1232_ts_read_data(struct st1232_ts_data *ts, u8 reg,
unsigned int n)
{
@@ -444,6 +472,7 @@ static struct i2c_driver st1232_ts_driver = {
.driver = {
.name = ST1232_TS_NAME,
.of_match_table = st1232_ts_dt_ids,
.dev_groups = st1232_groups,
.probe_type = PROBE_PREFER_ASYNCHRONOUS,
.pm = pm_sleep_ptr(&st1232_ts_pm_ops),
},