devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v6 0/3] Add Himax hx83112b touchscreen driver
@ 2022-10-24 13:59 Job Noorman
  2022-10-24 13:59 ` [PATCH v6 1/3] dt-bindings: touchscreen: add Himax hx83112b bindings Job Noorman
  2022-10-24 13:59 ` [PATCH v6 3/3] arm64: dts: qcom: sdm632: fairphone-fp3: add touchscreen Job Noorman
  0 siblings, 2 replies; 5+ messages in thread
From: Job Noorman @ 2022-10-24 13:59 UTC (permalink / raw)
  To: Job Noorman, Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski,
	Andy Gross, Bjorn Andersson, Konrad Dybcio, Henrik Rydberg
  Cc: Luca Weiss, linux-input, devicetree, linux-kernel, linux-arm-msm

Hi all,

This series adds support for the Himax hx83112b. The hx83112b supports 10
point multitouch with hardware tracking of touch points. It is the
touchschreen used by the Fairphone 3.

Note that a datasheet was unavailable for this device, so it was built
based on the Android driver that was tagged as GPLv2. This series is a
complete rewrite, though, and the code bears no resemblence to the original
implementation.

It is expected that this driver can be made to work on other hx83xxx
devices, especially the hx83112a used in the Fairphone 4. However, since we
have been unable to verify this, this driver only declares compatibility
with the hx83112b and uses very specific file names.

Changes since v5 (based on Jeff LaBundy's 3rd round of comments):
- Consistently reuse local variable dev in himax_probe()

Changes since v4 (based on Jeff LaBundy's 2nd round of comments):
- Kconfig: depend on I2C and select REGMAP_I2C
- Don't suppress dev_err() on EPROBE_DEFER
- Some minor coding style updates

Changes since v3 (based on Dmitry Torokhov's comments):
- Use gpiod_set_value_cansleep (instead of gpiod_set_value) during probe
- Inline some small helper functions
- Use DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr()
- Use PTR_ERR_OR_ZERO instead of IS_ERR+PTR_ERR
- Some minor coding style updates (e.g., use C-style comments)

Changes since v2 (based on Jeff LaBundy's comments):
- Kconfig: depend on REGMAP_I2C instead of I2C
- Don't use dev_err_probe()
- Return IRQ_NONE on failed register reads to prevent possible interrupt
  storm
- Add small delay after de-asserting reset pin
- Some minor coding style updates
- dt-bindings: make touchscreen-size-{x,y} required

Changes since v1:
- Fix sparse warnings. Reported-by: kernel test robot <lkp@intel.com>.
- Fix dt_binding_check.

Best regards,
Job

Previous versions:
- v5: https://lore.kernel.org/lkml/20221023163032.144150-1-job@noorman.info/
- v4: https://lore.kernel.org/lkml/20221017100409.189293-1-job@noorman.info/
- v3: https://lore.kernel.org/lkml/20221016102756.40345-1-job@noorman.info/
- v2: https://lore.kernel.org/lkml/20221012202341.295351-1-job@noorman.info/
- v1: https://lore.kernel.org/lkml/20221011190729.14747-1-job@noorman.info/

Job Noorman (3):
  dt-bindings: touchscreen: add Himax hx83112b bindings
  Input: add driver for Himax hx83112b touchscreen devices
  arm64: dts: qcom: sdm632: fairphone-fp3: add touchscreen

 .../input/touchscreen/himax,hx83112b.yaml     |  63 +++
 MAINTAINERS                                   |   7 +
 .../boot/dts/qcom/sdm632-fairphone-fp3.dts    |  14 +
 drivers/input/touchscreen/Kconfig             |  12 +
 drivers/input/touchscreen/Makefile            |   1 +
 drivers/input/touchscreen/himax_hx83112b.c    | 361 ++++++++++++++++++
 6 files changed, 458 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml
 create mode 100644 drivers/input/touchscreen/himax_hx83112b.c


base-commit: 8b96465c93a8c0f85ead5b3f8d4305beac97899e
-- 
2.38.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v6 1/3] dt-bindings: touchscreen: add Himax hx83112b bindings
  2022-10-24 13:59 [PATCH v6 0/3] Add Himax hx83112b touchscreen driver Job Noorman
@ 2022-10-24 13:59 ` Job Noorman
  2022-10-24 13:59 ` [PATCH v6 3/3] arm64: dts: qcom: sdm632: fairphone-fp3: add touchscreen Job Noorman
  1 sibling, 0 replies; 5+ messages in thread
From: Job Noorman @ 2022-10-24 13:59 UTC (permalink / raw)
  To: Job Noorman, Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski
  Cc: Luca Weiss, Rob Herring, linux-input, devicetree, linux-kernel

This patch adds device tree bindings for Himax 83112b touchscreen
devices.

Signed-off-by: Job Noorman <job@noorman.info>
Reviewed-by: Rob Herring <robh@kernel.org>
---
 .../input/touchscreen/himax,hx83112b.yaml     | 63 +++++++++++++++++++
 MAINTAINERS                                   |  6 ++
 2 files changed, 69 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml

diff --git a/Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml b/Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml
new file mode 100644
index 000000000000..be2ba185c086
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/touchscreen/himax,hx83112b.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Himax hx83112b touchscreen controller bindings
+
+maintainers:
+  - Job Noorman <job@noorman.info>
+
+allOf:
+  - $ref: touchscreen.yaml#
+
+properties:
+  compatible:
+    enum:
+      - himax,hx83112b
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  reset-gpios:
+    maxItems: 1
+
+  touchscreen-inverted-x: true
+  touchscreen-inverted-y: true
+  touchscreen-size-x: true
+  touchscreen-size-y: true
+  touchscreen-swapped-x-y: true
+
+additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - reset-gpios
+  - touchscreen-size-x
+  - touchscreen-size-y
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/gpio/gpio.h>
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+      touchscreen@48 {
+        compatible = "himax,hx83112b";
+        reg = <0x48>;
+        interrupt-parent = <&tlmm>;
+        interrupts = <65 IRQ_TYPE_LEVEL_LOW>;
+        touchscreen-size-x = <1080>;
+        touchscreen-size-y = <2160>;
+        reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
+      };
+    };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index cf0f18502372..469ab6382906 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9162,6 +9162,12 @@ W:	http://www.highpoint-tech.com
 F:	Documentation/scsi/hptiop.rst
 F:	drivers/scsi/hptiop.c
 
+HIMAX HX83112B TOUCHSCREEN SUPPORT
+M:	Job Noorman <job@noorman.info>
+L:	linux-input@vger.kernel.org
+S:	Maintained
+F:	Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml
+
 HIPPI
 M:	Jes Sorensen <jes@trained-monkey.org>
 L:	linux-hippi@sunsite.dk
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v6 3/3] arm64: dts: qcom: sdm632: fairphone-fp3: add touchscreen
  2022-10-24 13:59 [PATCH v6 0/3] Add Himax hx83112b touchscreen driver Job Noorman
  2022-10-24 13:59 ` [PATCH v6 1/3] dt-bindings: touchscreen: add Himax hx83112b bindings Job Noorman
@ 2022-10-24 13:59 ` Job Noorman
  2022-10-28 21:44   ` Bjorn Andersson
  1 sibling, 1 reply; 5+ messages in thread
From: Job Noorman @ 2022-10-24 13:59 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski
  Cc: Luca Weiss, Job Noorman, Krzysztof Kozlowski, linux-arm-msm,
	devicetree, linux-kernel

Add Himax hx83112b touchscreen to the FP3 DT.

Signed-off-by: Job Noorman <job@noorman.info>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts b/arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts
index 891e314bc782..2920504461d3 100644
--- a/arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts
+++ b/arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts
@@ -49,6 +49,20 @@ &hsusb_phy {
 	vdda-phy-dpdm-supply = <&pm8953_l13>;
 };
 
+&i2c_3 {
+	status = "okay";
+
+	touchscreen@48 {
+		compatible = "himax,hx83112b";
+		reg = <0x48>;
+		interrupt-parent = <&tlmm>;
+		interrupts = <65 IRQ_TYPE_LEVEL_LOW>;
+		touchscreen-size-x = <1080>;
+		touchscreen-size-y = <2160>;
+		reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
+	};
+};
+
 &pm8953_resin {
 	status = "okay";
 	linux,code = <KEY_VOLUMEDOWN>;
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v6 3/3] arm64: dts: qcom: sdm632: fairphone-fp3: add touchscreen
  2022-10-24 13:59 ` [PATCH v6 3/3] arm64: dts: qcom: sdm632: fairphone-fp3: add touchscreen Job Noorman
@ 2022-10-28 21:44   ` Bjorn Andersson
  2022-10-29 11:33     ` Job Noorman
  0 siblings, 1 reply; 5+ messages in thread
From: Bjorn Andersson @ 2022-10-28 21:44 UTC (permalink / raw)
  To: Job Noorman
  Cc: Andy Gross, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Luca Weiss, Krzysztof Kozlowski, linux-arm-msm, devicetree,
	linux-kernel

On Mon, Oct 24, 2022 at 03:59:59PM +0200, Job Noorman wrote:
> Add Himax hx83112b touchscreen to the FP3 DT.
> 
> Signed-off-by: Job Noorman <job@noorman.info>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Please include at least all the mailing lists as Cc on all your patches
in the series - I'm not subscribed to linux-input, so I don't have patch
1 or patch 2 in my inbox.

Thanks,
Bjorn

> ---
>  arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts b/arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts
> index 891e314bc782..2920504461d3 100644
> --- a/arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts
> +++ b/arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts
> @@ -49,6 +49,20 @@ &hsusb_phy {
>  	vdda-phy-dpdm-supply = <&pm8953_l13>;
>  };
>  
> +&i2c_3 {
> +	status = "okay";
> +
> +	touchscreen@48 {
> +		compatible = "himax,hx83112b";
> +		reg = <0x48>;
> +		interrupt-parent = <&tlmm>;
> +		interrupts = <65 IRQ_TYPE_LEVEL_LOW>;
> +		touchscreen-size-x = <1080>;
> +		touchscreen-size-y = <2160>;
> +		reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
> +	};
> +};
> +
>  &pm8953_resin {
>  	status = "okay";
>  	linux,code = <KEY_VOLUMEDOWN>;
> -- 
> 2.38.1
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v6 3/3] arm64: dts: qcom: sdm632: fairphone-fp3: add touchscreen
  2022-10-28 21:44   ` Bjorn Andersson
@ 2022-10-29 11:33     ` Job Noorman
  0 siblings, 0 replies; 5+ messages in thread
From: Job Noorman @ 2022-10-29 11:33 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Andy Gross, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Luca Weiss, Krzysztof Kozlowski, linux-arm-msm, devicetree,
	linux-kernel

Hi Bjorn,

On Fri Oct 28, 2022 at 11:44 PM CEST, Bjorn Andersson wrote:
> Please include at least all the mailing lists as Cc on all your patches
> in the series - I'm not subscribed to linux-input, so I don't have patch
> 1 or patch 2 in my inbox.

No problem, I will resend with all mailing lists in Cc for all patches!

Since this is the first patch series I submit to the kernel, I wonder if
you could elaborate a bit on what the correct process is to select
recipients?

My current git send-email workflow is as follows:
- --to-cmd="get_maintainer.pl ... --nol"
- --cc-cmd="get_maintainer.pl ... --nom"
- Cover letter: the same commands but run on all patches in the series

If I understand you correctly, your advice would be to change only the
second part of this workflow to also run the command on _all_ patches in
the series. Is this correct?

Best regards,
Job

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-10-29 11:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-24 13:59 [PATCH v6 0/3] Add Himax hx83112b touchscreen driver Job Noorman
2022-10-24 13:59 ` [PATCH v6 1/3] dt-bindings: touchscreen: add Himax hx83112b bindings Job Noorman
2022-10-24 13:59 ` [PATCH v6 3/3] arm64: dts: qcom: sdm632: fairphone-fp3: add touchscreen Job Noorman
2022-10-28 21:44   ` Bjorn Andersson
2022-10-29 11:33     ` Job Noorman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).