On 15.04.2018 22:29, Jonathan Cameron wrote:
On Tue, 10 Apr 2018 11:57:49 +0300
Eugen Hristev <eugen.hristev@xxxxxxxxxxxxx> wrote:
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: Eugen Hristev <eugen.hristev@xxxxxxxxxxxxx>
---
Changes in v2:
- modified channel name to relative position as suggested.
- modified kernel version to 4.18 (presumable)
Documentation/ABI/testing/sysfs-bus-iio | 12 ++++++++++++
drivers/iio/industrialio-core.c | 1 +
include/uapi/linux/iio/types.h | 1 +
tools/iio/iio_event_monitor.c | 2 ++
4 files changed, 16 insertions(+)
diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio
index 6a5f34b..42a9287 100644
--- a/Documentation/ABI/testing/sysfs-bus-iio
+++ b/Documentation/ABI/testing/sysfs-bus-iio
@@ -190,6 +190,18 @@ Description:
but should match other such assignments on device).
Units after application of scale and offset are m/s^2.
+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@xxxxxxxxxxxxxxx
+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.
I know the milli percent comes form the humidity equivalent, but I wonder
if we are right to follow that. 10^-5 is a pretty random base unit (though
I got argued into it being a standard choice for humidity sensors IIRC...
What do people think? We could go with 1 for full range or just percent perhaps?
I'm not that fussed about staying consistent with humidity - we are unlikely
to end up with sensors doing both anytime soon so there shouldn't be
any confusion...
Jonathan
Hello Jonathan,
For my specific use case, percents are not enough, as this would mean
the resolution will be pretty low. If we have a touchpanel of a higher
resolution, having the position only ranged 0 to 100 is pretty bad.
Having millipercents means we can have a resolution up to 100,000 points
in range, which is fine for the hardware as of this moment.
Of course, specific drivers reporting these channels can define a
specific range if they desire (report just in the first percent if you
wish (0-1000) or so, which would mean a lower resolution.
Centi-percent would work fine as well I believe (0-10,000 range), but to
keep consistent with your suggestion regarding relative humidity, I
picked this larger scale.
In my specific case, since we have a 12 bit ADC, range is 0-4096 for
this value.
Calibrating these values to the actual size of the touchpanel is left
for the consumer to do (map 4096x4096 to the actual resolution)
If you have a better idea than milli-percents I can change it, no problem.
Eugen
+
[...]
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html