Re: [PATCH v4 2/3] dt-bindings: touchscreen: Add HY46XX bindings
From: Giulio Benetti <giulio.benetti@benettiengineering.com>
Date: 2021-04-11 11:37:12
Also in:
linux-devicetree, lkml
On 4/8/21 10:21 PM, Rob Herring wrote:
On Wed, Apr 07, 2021 at 07:49:08PM +0200, Giulio Benetti wrote:quoted
This adds device tree bindings for the Hycon HY46XX touchscreen series. Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> --- V1->V2: As suggested by Rob Herring: * fixed $id: address * added "hycon," in front of every custom property * changed all possible property to boolean type * removed proximity-sensor-switch property since it's not handled in driver V2->V3: As suggested by Jonathan Neuschäfer: * fixed some typo * fixed description indentation * improved boolean properties descriptions * improved hycon,report-speed description V3->V4: * fixed binding compatible string in example as suggested by Jonathan Neuschäfer --- .../input/touchscreen/hycon,hy46xx.yaml | 120 ++++++++++++++++++ MAINTAINERS | 6 + 2 files changed, 126 insertions(+) create mode 100644 Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.yamldiff --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..8860613a12ad --- /dev/null +++ b/Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.yaml@@ -0,0 +1,120 @@ +# 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: Hycon HY46XX series touchscreen controller bindings + +description: | + There are 6 variants of the chip for various touch panel sizes and cover lens 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@benettiengineering.com> + +allOf: + - $ref: touchscreen.yaml# + +properties: + compatible: + enum: + - hycon,hycon-hy4613 + - hycon,hycon-hy4614 + - hycon,hycon-hy4621 + - hycon,hycon-hy4623 + - hycon,hycon-hy4633 + - hycon,hycon-hy4635As suggested earlier, drop the 2nd 'hycon'.
Ok
quoted
+ + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + reset-gpios: + maxItems: 1 + + vcc-supply: true + + hycon,threshold: + description: Allows setting the sensitivity in the range from 0 to 255. + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 255 + + hycon,glove-enable: + type: boolean + description: Allows enabling glove setting. + + hycon,report-speed: + description: Allows setting the report speed in Hertz.If in Hertz, use standard unit suffix.quoted
+ $ref: /schemas/types.yaml#/definitions/uint32And then you can drop this.
Ok
quoted
+ minimum: 00Hz doesn't seem to useful?
You're right, I've also checked and with 0Hz controller correctly does nothing. I've also tried seeting 1Hz and it actually works, but at 1Hz, so I keep 1Hz as minimum.
quoted
+ maximum: 255 + + hycon,power-noise-enable:hycon,noise-filter-enable No one wants to enable power noise. :)
:-) Yeah
quoted
+ type: boolean + description: Allows enabling power noise filter. + + hycon,filter-data: + description: Allows setting the filtering data before reporting touch + in the range from 0 to 5.This is averaging samples? Sounds like something common perhaps.
maybe you mean touchscreen-average-samples property, but this is not the
case.In datasheet they state "Before report coordinate throw away the
data number, setting range:0--5" and I've tried sweep-setting it 1-5
and what I get with filter-data set to 5 is that touchscreen answers
after like 0.5 seconds but keep reporting as fast as set report-speed,
so to me it throws away the first samples because it considers them
"bad" samples when one is first touching the panel. So I'm going to
modify the description as:
description: Allows setting how many samples throw before reporting
touch in the range from 0 to 5.
quoted
+ $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 5 + + hycon,gain: + description: Allows setting the sensitivity distance in the range from 0 to 5. + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 5 + + hycon,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 {touchscreen@1c
Ok
quoted
+ compatible = "hycon,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 c80ad735b384..d022ff09e609 100644 --- a/MAINTAINERS +++ b/MAINTAINERS@@ -8243,6 +8243,12 @@ S: Maintained F: mm/hwpoison-inject.c F: mm/memory-failure.c +HYCON HY46XX TOUCHSCREEN SUPPORT +M: Giulio Benetti <giulio.benetti@benettiengineering.com> +L: linux-input@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.yaml + HYGON PROCESSOR SUPPORT M: Pu Wen <puwen@hygon.cn> L: linux-kernel@vger.kernel.org-- 2.25.1
Thank you Best regards -- Giulio Benetti Benetti Engineering sas