Commit 3055a6cf authored by Eugen Hristev's avatar Eugen Hristev Committed by Jonathan Cameron

iio: Add channel for Position Relative

Add new channel type for relative position on a pad.

These type of analog sensor offers the position of a pen
on a touchpad, and is represented as a voltage, which can be
converted to a position on X and Y axis on the pad.
The channel will hand the relative position on the pad in both directions.

The channel can then be consumed by a touchscreen driver or
read as-is for a raw indication of the touchpen on a touchpad.
Signed-off-by: default avatarEugen Hristev <eugen.hristev@microchip.com>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent d22cd4dd
...@@ -197,6 +197,18 @@ Description: ...@@ -197,6 +197,18 @@ Description:
Angle of rotation. Units after application of scale and offset Angle of rotation. Units after application of scale and offset
are radians. are radians.
What: /sys/bus/iio/devices/iio:deviceX/in_positionrelative_x_raw
What: /sys/bus/iio/devices/iio:deviceX/in_positionrelative_y_raw
KernelVersion: 4.18
Contact: linux-iio@vger.kernel.org
Description:
Relative position in direction x or y on a pad (may be
arbitrarily assigned but should match other such assignments on
device).
Units after application of scale and offset are milli percents
from the pad's size in both directions. Should be calibrated by
the consumer.
What: /sys/bus/iio/devices/iio:deviceX/in_anglvel_x_raw What: /sys/bus/iio/devices/iio:deviceX/in_anglvel_x_raw
What: /sys/bus/iio/devices/iio:deviceX/in_anglvel_y_raw What: /sys/bus/iio/devices/iio:deviceX/in_anglvel_y_raw
What: /sys/bus/iio/devices/iio:deviceX/in_anglvel_z_raw What: /sys/bus/iio/devices/iio:deviceX/in_anglvel_z_raw
......
...@@ -85,6 +85,7 @@ static const char * const iio_chan_type_name_spec[] = { ...@@ -85,6 +85,7 @@ static const char * const iio_chan_type_name_spec[] = {
[IIO_COUNT] = "count", [IIO_COUNT] = "count",
[IIO_INDEX] = "index", [IIO_INDEX] = "index",
[IIO_GRAVITY] = "gravity", [IIO_GRAVITY] = "gravity",
[IIO_POSITIONRELATIVE] = "positionrelative",
}; };
static const char * const iio_modifier_names[] = { static const char * const iio_modifier_names[] = {
......
...@@ -44,6 +44,7 @@ enum iio_chan_type { ...@@ -44,6 +44,7 @@ enum iio_chan_type {
IIO_COUNT, IIO_COUNT,
IIO_INDEX, IIO_INDEX,
IIO_GRAVITY, IIO_GRAVITY,
IIO_POSITIONRELATIVE,
}; };
enum iio_modifier { enum iio_modifier {
......
...@@ -58,6 +58,7 @@ static const char * const iio_chan_type_name_spec[] = { ...@@ -58,6 +58,7 @@ static const char * const iio_chan_type_name_spec[] = {
[IIO_PH] = "ph", [IIO_PH] = "ph",
[IIO_UVINDEX] = "uvindex", [IIO_UVINDEX] = "uvindex",
[IIO_GRAVITY] = "gravity", [IIO_GRAVITY] = "gravity",
[IIO_POSITIONRELATIVE] = "positionrelative",
}; };
static const char * const iio_ev_type_text[] = { static const char * const iio_ev_type_text[] = {
...@@ -151,6 +152,7 @@ static bool event_is_known(struct iio_event_data *event) ...@@ -151,6 +152,7 @@ static bool event_is_known(struct iio_event_data *event)
case IIO_PH: case IIO_PH:
case IIO_UVINDEX: case IIO_UVINDEX:
case IIO_GRAVITY: case IIO_GRAVITY:
case IIO_POSITIONRELATIVE:
break; break;
default: default:
return false; return false;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment