Thread (24 messages) 24 messages, 4 authors, 2018-06-10

Re: [PATCH v7 0/9] Add support for SAMA5D2 touchscreen

From: Jonathan Cameron <hidden>
Date: 2018-06-04 10:11:59
Also in: linux-arm-kernel, linux-iio, linux-input, lkml


On 4 June 2018 07:15:57 BST, Eugen Hristev [off-list ref] wrote:

On 22.05.2018 20:57, Jonathan Cameron wrote:
quoted
On Tue, 22 May 2018 10:52:30 +0300
Eugen Hristev [off-list ref] wrote:
quoted
Hello,

This patch series is a rework of my previous series named:
[PATCH 00/14] iio: triggers: add consumer support

This is the version 7 of the series, and addresses the received
feedback
quoted
quoted
on the v2 series named:
[PATCH v2 00/10]  Add support for SAMA5D2 touchscreen
and the v3 series named
[PATCH v3 00/11]  Add support for SAMA5D2 touchscreen
and the v4 series named
[PATCH v4 0/9]  Add support for SAMA5D2 touchscreen
and fixes one bug found in series named
[PATCH v5 0/9]  Add support for SAMA5D2 touchscreen
and addresses comments in series named
[PATCH v6 0/9]  Add support for SAMA5D2 touchscreen

This series applies on top of fixes-togreg branch of iio.git,
specifically on top of commit:
"f0c8d1f" : iio: adc: at91-sama5d2_adc:
  fix channel configuration for differential channels

Jonathan, if you need me to rebase this on top of testing, let me
know.
quoted
quoted
Changes in previous versions are presented at the end of the cover
letter below.
quoted
quoted
Thanks everyone for the feedback. Below is the original v2 cover
letter:
quoted
quoted
In few words, this is the implementation of splitting the
functionality
quoted
quoted
of the IP block ADC device in SAMA5D2 SoC from ADC with touchscreen
support. In order to avoid having a MFD device, two separate
drivers that would work on same register base and split the IRQ,etc,
as advised on the mailing list, I created a consumer driver for the
channels, that will connect to the ADC as described in the device
tree.
quoted
quoted
I have collected feedback from everyone and here is the result:
I have added a new generic resistive touchscreen driver, which acts
as a iio consumer for the given channels and will create an input
device and report the events. It uses a callback buffer to register
to the IIO device and waits for data to be pushed.
Inside the IIO device, I have kept a similar approach with the first
version
quoted
quoted
of the series, except that now the driver can take multiple buffers,
and
quoted
quoted
will configure the touchscreen part of the hardware device if the
specific
quoted
quoted
channels are requested.

The SAMA5D2 ADC driver registers three new channels: two for the
position on the X and Y axis, and one for the touch pressure.
When channels are requested, it will check if the touchscreen
channel mask
quoted
quoted
includes the requested channels (it is possible that the consumer
driver
quoted
quoted
will not request pressure for example). If it's the case, it will
work
quoted
quoted
in touchscreen mode, and will refuse to do usual analog-digital
conversion,
quoted
quoted
because we have a single trigger and the touchscreen needs it.
When the scan mask will include only old channels, the driver will
function
quoted
quoted
in the same way as before. If the scan mask somehow is a mix of the
two (the
quoted
quoted
masks intersect), the driver will refuse to work whatsoever (cannot
have both
quoted
quoted
in the same time).
The driver allows reading raw data for the new channels, if claim
direct
quoted
quoted
mode works: no touchscreen driver requested anything. The new
channels can
quoted
quoted
act like the old ones. However, when requesting these channels, the
usual
quoted
quoted
trigger will not work and will not be enabled. The touchscreen
channels
quoted
quoted
require special trigger and irq configuration: pen detect, no pen
detect
quoted
quoted
and a periodic trigger to sample the touchscreen position and
pressure.
quoted
quoted
If the user attempts to use another trigger while there is a buffer
that already requested the touchscreen channels (thus the trigger),
the
quoted
quoted
driver will refuse to comply.

In order to have defines for the channel numbers, I added a bindings
include
quoted
quoted
file that goes on a separate commit :
dt-bindings: iio: adc: at91-sama5d2_adc: add channel specific
consumer info
quoted
quoted
This should go in the same tree with the following commits :
   ARM: dts: at91: sama5d2: add channel cells for ADC device
   ARM: dts: at91: sama5d2: Add resistive touch device

as build will break because these commits depend on the binding one
which creates the included header file.
V5 update: After discussing with Alexandre Belloni on Mailing list,
the two
quoted
quoted
DTS patches are to be taken in the next version after bindings reach
mainline.
quoted
quoted
Changes in v7:
  - Addressed some feedback from Dmitry, explained in input driver
patch
quoted
quoted
changelog.
  - Added Acked-by Dmitry.

Changes in v6:
  - Fixed a crash in ADC driver , explained in driver patch
changelog.
quoted
quoted
  - changed a dev_err to dev_dbg in input driver.
  - added Reviewed-by Rob Herring.

Changes in v5:
  - renamed property touchscreen-threshold-pressure to
touchscreen-min-pressure
quoted
quoted
  - added one return in touchscreen driver

Changes in v4:
  - removed patch for inkern module get/set kref
  - addressed feedback on both the ADC and the touchscreen driver.
each
quoted
quoted
patch has a history inside the patch file for the specific changes.
  - patch that fixes the channel fix
[PATCH v3 01/11] iio: adc: at91-sama5d2_adc:
  fix channel configuration for differential channels
was accepted in fixes-togreg branch thus removed from this series.
  - added Reviewed-by for the bindings by Rob Herring

Changes in v3:
  - changed input driver name according to feedback and reworked in
commits
quoted
quoted
to adapt to binding changes and new name.
  - moved channel index fix in at91-sama5d2_adc at the beginning of
the series
quoted
quoted
(PATCH 01/11)
  - created a new optional binding for the touchscreen as a separate
commit
quoted
quoted
and added it to the series :
  [PATCH v3 04/11] dt-bindings: input: touchscreen: add pressure
  threshold touchscreen property
  - changed at91-sama5d2_adc driver patch to address the comments.
Exact changes
quoted
quoted
are in the patch file for the driver source file.

Eugen Hristev (9):
   MAINTAINERS: add generic resistive touchscreen adc
   iio: Add channel for Position Relative
   dt-bindings: input: touchscreen: add minimum pressure touchscreen
     property
   dt-bindings: input: touchscreen: resistive-adc-touch: create
bindings
quoted
quoted
   iio: adc: at91-sama5d2_adc: add support for position and pressure
     channels
   input: touchscreen: resistive-adc-touch: add generic resistive
ADC
quoted
quoted
     touchscreen
   dt-bindings: iio: adc: at91-sama5d2_adc: add channel specific
consumer
quoted
quoted
     info
   ARM: dts: at91: sama5d2: add channel cells for ADC device
   ARM: dts: at91: sama5d2: Add resistive touch device

  Documentation/ABI/testing/sysfs-bus-iio            |  12 +
  .../bindings/iio/adc/at91-sama5d2_adc.txt          |   9 +
  .../input/touchscreen/resistive-adc-touch.txt      |  30 +
  .../bindings/input/touchscreen/touchscreen.txt     |   3 +
  MAINTAINERS                                        |   6 +
  arch/arm/boot/dts/sama5d2.dtsi                     |  12 +
  drivers/iio/adc/at91-sama5d2_adc.c                 | 609
+++++++++++++++++++--
quoted
quoted
  drivers/iio/industrialio-core.c                    |   1 +
  drivers/input/touchscreen/Kconfig                  |  13 +
  drivers/input/touchscreen/Makefile                 |   1 +
  drivers/input/touchscreen/resistive-adc-touch.c    | 204 +++++++
  include/dt-bindings/iio/adc/at91-sama5d2_adc.h     |  16 +
  include/uapi/linux/iio/types.h                     |   1 +
  tools/iio/iio_event_monitor.c                      |   2 +
  14 files changed, 861 insertions(+), 58 deletions(-)
  create mode 100644
Documentation/devicetree/bindings/input/touchscreen/resistive-adc-touch.txt
quoted
quoted
  create mode 100644 drivers/input/touchscreen/resistive-adc-touch.c
  create mode 100644 include/dt-bindings/iio/adc/at91-sama5d2_adc.h
Hi All,

I'm happy to take this, but there is a slight issue that we have a
fix working
quoted
it's way in which this is dependent on.

I'll see if we can get this sorted before the merge window, but we
may be
quoted
cutting it fine.

Jonathan
Hello Jonathan,

I can see the dependency fix made it to 4.17. What is the plan for this

series? Getting into this merge window ?
Sorry, no. We were to tight on time. Will get it into linux-next in a few weeks, ready for the next merge window.

Jonathan
Thanks,
Eugen
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help