Re: [PATCH 2/3] dt-bindings: touchscreen: Add HY46XX bindings

From: Giulio Benetti
Date: Thu Apr 01 2021 - 14:52:46 EST


Hello Rob, All,

Il 06/03/2021 20:41, Rob Herring ha scritto:
On Fri, Mar 05, 2021 at 05:38:33PM +0100, Giulio Benetti wrote:
From: Giulio Benetti <giulio.benetti@xxxxxxxxxxxxxxxx>

This adds device tree bindings for the Hycon HY46XX touchscreen series.

Signed-off-by: Giulio Benetti <giulio.benetti@xxxxxxxxxxxxxxxx>
---
.../input/touchscreen/hycon,hy46xx.yaml | 130 ++++++++++++++++++
MAINTAINERS | 6 +
2 files changed, 136 insertions(+)
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.yaml

diff --git a/Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.yaml b/Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.yaml
new file mode 100644
index 000000000000..cddd5e5bae92
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.yaml
@@ -0,0 +1,130 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/touchscreen/hycon-hy46xx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: hyconon HY46XX series touchscreen controller Bindings
+
+description: |
+ There are 6 variants of the chip for various touch panel sizes and coverl len material
+ Glass: 0.3mm--4.0mm
+ PET/PMMA: 0.2mm--2.0mm
+ HY4613(B)-N048 < 6"
+ HY4614(B)-N068 7" .. 10.1"
+ HY4621-NS32 < 5"
+ HY4623-NS48 5.1" .. 7"
+ Glass: 0.3mm--8.0mm
+ PET/PMMA: 0.2mm--4.0mm
+ HY4633(B)-N048 < 6"
+ HY4635(B)-N048 < 7" .. 10.1"
+
+maintainers:
+ - Giulio Benetti <giulio.benetti@xxxxxxxxxxxxxxxx>
+
+allOf:
+ - $ref: touchscreen.yaml#
+
+properties:
+ compatible:
+ enum:
+ - hycon,hycon-hy4613
+ - hycon,hycon-hy4614
+ - hycon,hycon-hy4621
+ - hycon,hycon-hy4623
+ - hycon,hycon-hy4633
+ - hycon,hycon-hy4635
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ reset-gpios:
+ maxItems: 1
+
+ vcc-supply: true
+
+ threshold:

Needs a vendor prefix here and all the custom properties.

Sorry but I can't understand this ^^^, I've checked a lot of other yaml
files but couldn't find something related to this. Can you help me by
pointing me an example?


One of the touchscreen properties doesn't already address this?

+ description: Allows setting the sensitivity in the range from 0 to 255.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 0
+ maximum: 255
+
+ proximity-sensor-switch:

Why a switch rather than enable or disable?

I've changed its name into enable.


+ description: Allows enabling or disabling the Proximity Sensor.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 0
+ maximum: 1

Is this a hardware config or something a user would want to change at
runtime? The latter shouldn't be in DT.

It's a hardware config that enable the 11th touch point, but I didn't
handle it inside the driver, so it's better that I remove it for the
moment.

What does not present mean? Unless there is a need for keeping the
default setting, then this could be boolean instead.

I've changed all "enable" to boolean and rely on default of the
controller.

Does this sound ok for you so I can send a v2 patchset?

Thank you
Best regards
--
Giulio Benetti
CTO

MICRONOVA SRL
Sede: Via A. Niedda 3 - 35010 Vigonza (PD)
Tel. 049/8931563 - Fax 049/8931346
Cod.Fiscale - P.IVA 02663420285
Capitale Sociale € 26.000 i.v.
Iscritta al Reg. Imprese di Padova N. 02663420285
Numero R.E.A. 258642

Same questions for the rest of the properties.
+
+ glove-enable:
+ description: Allows enabling or disabling glove setting.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 0
+ maximum: 1
+
+ report-speed:
+ description: Allows setting the report speed(i.e 0x64 => 100Hz).
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 0
+ maximum: 255
+
+ power-noise-enable:
+ description: Allows enabling or disabling power noise filter.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 0
+ maximum: 1
+
+ filter-data:
+ description: Allows setting the filtering data before reporting touch
+ in the range from 0 to 5.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 0
+ maximum: 5
+
+ gain:
+ description: Allows setting the sensitivity distance in the range from 0 to 5.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 0
+ maximum: 5
+
+ edge-offset:
+ description: Allows setting the edge compensation in the range from 0 to 16.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 0
+ maximum: 16
+
+ touchscreen-size-x: true
+ touchscreen-size-y: true
+ touchscreen-fuzz-x: true
+ touchscreen-fuzz-y: true
+ touchscreen-inverted-x: true
+ touchscreen-inverted-y: true
+ touchscreen-swapped-x-y: true
+ interrupt-controller: true
+
+additionalProperties: false
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ hycon-hy4633@1c {
+ compatible = "hycon,hy4633";
+ reg = <0x1c>;
+ interrupt-parent = <&gpio2>;
+ interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
+ reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index d92f85ca831d..3f83daf6b2bf 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -8245,6 +8245,12 @@ S: Maintained
F: mm/hwpoison-inject.c
F: mm/memory-failure.c
+HYCON HY46XX TOUCHSCREEN SUPPORT
+M: Giulio Benetti <giulio.benetti@xxxxxxxxxxxxxxxx>
+L: linux-input@xxxxxxxxxxxxxxx
+S: Maintained
+F: Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.yaml
+
HYGON PROCESSOR SUPPORT
M: Pu Wen <puwen@xxxxxxxx>
L: linux-kernel@xxxxxxxxxxxxxxx
--
2.25.1