Message ID | 20210402161627.2546145-3-giulio.benetti@benettiengineering.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Input: add Hycon HY46XX Touchscreen controller | expand |
On Fri, 02 Apr 2021 18:16:26 +0200, Giulio Benetti wrote: > 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 > --- > .../input/touchscreen/hycon,hy46xx.yaml | 120 ++++++++++++++++++ > MAINTAINERS | 6 + > 2 files changed, 126 insertions(+) > create mode 100644 Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.yaml > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: dtschema/dtc warnings/errors: Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.example.dt.yaml:0:0: /example-0/i2c/hycon-hy4633@1c: failed to match any schema with compatible: ['hycon,hy4633'] See https://patchwork.ozlabs.org/patch/1461797 This check can fail if there are any dependencies. The base for a patch series is generally the most recent rc1. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit.
In the binding: > +properties: > + compatible: > + enum: > + - hycon,hycon-hy4613 > + - hycon,hycon-hy4614 > + - hycon,hycon-hy4621 > + - hycon,hycon-hy4623 > + - hycon,hycon-hy4633 > + - hycon,hycon-hy4635 In the example: > + hycon-hy4633@1c { > + compatible = "hycon,hy4633"; > + reg = <0x1c>; > + interrupt-parent = <&gpio2>; > + interrupts = <5 IRQ_TYPE_EDGE_FALLING>; > + reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>; > + }; Rob's devicetree lint bot detected the mismatch in compatible string here. I personally think 'hycon,hy4633' looks better than 'hycon,hycon-hy4633', because it isn't so redundant. Best regards, Jonathan Neuschäfer
Hi Jonathan, On 4/6/21 3:37 PM, Jonathan Neuschäfer wrote: > In the binding: >> +properties: >> + compatible: >> + enum: >> + - hycon,hycon-hy4613 >> + - hycon,hycon-hy4614 >> + - hycon,hycon-hy4621 >> + - hycon,hycon-hy4623 >> + - hycon,hycon-hy4633 >> + - hycon,hycon-hy4635 > > In the example: >> + hycon-hy4633@1c { >> + compatible = "hycon,hy4633"; >> + reg = <0x1c>; >> + interrupt-parent = <&gpio2>; >> + interrupts = <5 IRQ_TYPE_EDGE_FALLING>; >> + reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>; >> + }; > > > Rob's devicetree lint bot detected the mismatch in compatible string > here. > > I personally think 'hycon,hy4633' looks better than 'hycon,hycon-hy4633', > because it isn't so redundant. > Thank you, I've realized it after submitting patches and waited for other comments. I've already fixed it the way you've pointed. Kind regards
Hello Rob, All, On 4/6/21 3:24 PM, Rob Herring wrote: > On Fri, 02 Apr 2021 18:16:26 +0200, Giulio Benetti wrote: >> 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 >> --- >> .../input/touchscreen/hycon,hy46xx.yaml | 120 ++++++++++++++++++ >> MAINTAINERS | 6 + >> 2 files changed, 126 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.yaml >> > > My bot found errors running 'make dt_binding_check' on your patch: > > yamllint warnings/errors: > > dtschema/dtc warnings/errors: > Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.example.dt.yaml:0:0: /example-0/i2c/hycon-hy4633@1c: failed to match any schema with compatible: ['hycon,hy4633'] > > See https://patchwork.ozlabs.org/patch/1461797 > > This check can fail if there are any dependencies. The base for a patch > series is generally the most recent rc1. > > If you already ran 'make dt_binding_check' and didn't see the above > error(s), then make sure 'yamllint' is installed and dt-schema is up to > date: I've just send corrected patches. Anyway I'd like to understand how to make dt_binding_check works correctly. I've installed yamllint and 'make dt_binding_check' works but it still doesn't show that error up on compatible string. yamllint I have is version 1.20.0 > pip3 install dtschema --upgrade I've already tried with that too and dtschema version is: 1.3.8 I've read that dtc must be compiled with YAML output enabled and it seems to be so, since when I issue 'make dt_binding_check' from my file: hycon,hy46xx.yaml(with compatible string wrong "hycon,hy4633") these files are generated: hycon,hy46xx.example.dts ``` /dts-v1/; /plugin/; // silence any missing phandle references /{ compatible = "foo"; model = "foo"; interrupt-parent = <&foo>; #address-cells = <1>; #size-cells = <1>; example-0 { #address-cells = <1>; #size-cells = <1>; #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>; }; }; }; }; ``` AND hycon,hy46xx.example.dt.yaml ``` --- - compatible: ["foo"] model: ["foo"] interrupt-parent: [[!phandle 0xffffffff]] '#address-cells': [[0x1]] '#size-cells': [[0x1]] example-0: '#address-cells': [[0x1]] '#size-cells': [[0x1]] i2c: '#address-cells': [[0x1]] '#size-cells': [[0x0]] hycon-hy4633@1c: compatible: ["hycon,hy4633"] reg: [[0x1c]] interrupt-parent: [[!phandle 0xffffffff]] interrupts: [[0x5, 0x2]] reset-gpios: [[!phandle 0xffffffff, 0x6, 0x1]] __fixups__: foo: ["/:interrupt-parent:0"] gpio2: ["/example-0/i2c/hycon-hy4633@1c:interrupt-parent:0", "/example-0/i2c/hycon-hy4633@1c:reset-gpios:0"] ... ``` So I can't reproduce the problem, can you point me some documentation that I didn't see before? Thank in advance Best regards
On Wed, Apr 7, 2021 at 12:57 PM Giulio Benetti <giulio.benetti@benettiengineering.com> wrote: > > Hello Rob, All, > > On 4/6/21 3:24 PM, Rob Herring wrote: > > On Fri, 02 Apr 2021 18:16:26 +0200, Giulio Benetti wrote: > >> 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 > >> --- > >> .../input/touchscreen/hycon,hy46xx.yaml | 120 ++++++++++++++++++ > >> MAINTAINERS | 6 + > >> 2 files changed, 126 insertions(+) > >> create mode 100644 Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.yaml > >> > > > > My bot found errors running 'make dt_binding_check' on your patch: > > > > yamllint warnings/errors: > > > > dtschema/dtc warnings/errors: > > Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.example.dt.yaml:0:0: /example-0/i2c/hycon-hy4633@1c: failed to match any schema with compatible: ['hycon,hy4633'] > > > > See https://patchwork.ozlabs.org/patch/1461797 > > > > This check can fail if there are any dependencies. The base for a patch > > series is generally the most recent rc1. > > > > If you already ran 'make dt_binding_check' and didn't see the above > > error(s), then make sure 'yamllint' is installed and dt-schema is up to > > date: > > I've just send corrected patches. > > Anyway I'd like to understand how to make dt_binding_check works correctly. > > I've installed yamllint and 'make dt_binding_check' works but it still > doesn't show that error up on compatible string. > > yamllint I have is version 1.20.0 > > > pip3 install dtschema --upgrade > > I've already tried with that too and dtschema version is: > 1.3.8 Huh? dtschema versions are YYYY.MM. > I've read that dtc must be compiled with YAML output enabled and it > seems to be so, since when I issue 'make dt_binding_check' from my file: > hycon,hy46xx.yaml(with compatible string wrong "hycon,hy4633") It's a new check queued for 5.13 in linux-next. See commit c59773d204cc ("kbuild: Enable DT undocumented compatible checks"). I've updated the bot email with this, but after I sent this one. Rob
On 4/7/21 8:56 PM, Rob Herring wrote: > On Wed, Apr 7, 2021 at 12:57 PM Giulio Benetti > <giulio.benetti@benettiengineering.com> wrote: >> >> Hello Rob, All, >> >> On 4/6/21 3:24 PM, Rob Herring wrote: >>> On Fri, 02 Apr 2021 18:16:26 +0200, Giulio Benetti wrote: >>>> 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 >>>> --- >>>> .../input/touchscreen/hycon,hy46xx.yaml | 120 ++++++++++++++++++ >>>> MAINTAINERS | 6 + >>>> 2 files changed, 126 insertions(+) >>>> create mode 100644 Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.yaml >>>> >>> >>> My bot found errors running 'make dt_binding_check' on your patch: >>> >>> yamllint warnings/errors: >>> >>> dtschema/dtc warnings/errors: >>> Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.example.dt.yaml:0:0: /example-0/i2c/hycon-hy4633@1c: failed to match any schema with compatible: ['hycon,hy4633'] >>> >>> See https://patchwork.ozlabs.org/patch/1461797 >>> >>> This check can fail if there are any dependencies. The base for a patch >>> series is generally the most recent rc1. >>> >>> If you already ran 'make dt_binding_check' and didn't see the above >>> error(s), then make sure 'yamllint' is installed and dt-schema is up to >>> date: >> >> I've just send corrected patches. >> >> Anyway I'd like to understand how to make dt_binding_check works correctly. >> >> I've installed yamllint and 'make dt_binding_check' works but it still >> doesn't show that error up on compatible string. >> >> yamllint I have is version 1.20.0 >> >>> pip3 install dtschema --upgrade >> >> I've already tried with that too and dtschema version is: >> 1.3.8 > > Huh? dtschema versions are YYYY.MM. Sorry, it is 2021.3 >> I've read that dtc must be compiled with YAML output enabled and it >> seems to be so, since when I issue 'make dt_binding_check' from my file: >> hycon,hy46xx.yaml(with compatible string wrong "hycon,hy4633") > > It's a new check queued for 5.13 in linux-next. See commit > c59773d204cc ("kbuild: Enable DT undocumented compatible checks"). > > I've updated the bot email with this, but after I sent this one. Ah ok, thank you, I'll apply it in my Repos. Best regards
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..dddc6e3e654f --- /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-hy4635 + + 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. + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 255 + + hycon,power-noise-enable: + 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. + $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 { + 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 6e91994b8d3b..5e9cc7e610ce 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8242,6 +8242,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
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 --- .../input/touchscreen/hycon,hy46xx.yaml | 120 ++++++++++++++++++ MAINTAINERS | 6 + 2 files changed, 126 insertions(+) create mode 100644 Documentation/devicetree/bindings/input/touchscreen/hycon,hy46xx.yaml