diff mbox series

[v2,2/5] dt-bindings: input: Convert mpr121 binding to json-schema

Message ID 1569940180-11417-3-git-send-email-michal.vokac@ysoft.com (mailing list archive)
State Superseded
Headers show
Series Add polling mode to the MPR121 touchkey | expand

Commit Message

Michal Vokáč Oct. 1, 2019, 2:29 p.m. UTC
Convert the mpr121 binding to DT schema format using json-schema.

Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
---
Changes since v1:
 - Extract the common input properties into the input.yaml schema.
 - Fix the wakeup-source description.
 - Fix the example to pass validation. Put the mpr121 device sub-node
   into a i2c {} node.

Rob, the linux,keycodes property is not valid as it is.
If I put the minItems and maxItems into the common schema, it is valid
and the min/max length check works fine. What could be wrong?

The error is not very specific..

$ make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml
  SCHEMA  Documentation/devicetree/bindings/processed-schema.yaml
/home/vokac/development/sources/linux-fslc/Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml: ignoring, error in schema 'linux,keycodes'
warning: no schema found in file: /home/vokac/development/sources/linux-fslc/Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml
/home/vokac/development/sources/linux-fslc/Documentation/devicetree/bindings/Makefile:33: recipe for target 'Documentation/devicetree/bindings/processed-schema.yaml' failed
make[3]: *** [Documentation/devicetree/bindings/processed-schema.yaml] Error 255
/home/vokac/development/sources/linux-fslc/Makefile:1264: recipe for target 'dt_binding_check' failed

 .../bindings/input/fsl,mpr121-touchkey.yaml        | 66 ++++++++++++++++++++++
 .../devicetree/bindings/input/mpr121-touchkey.txt  | 30 ----------
 2 files changed, 66 insertions(+), 30 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml
 delete mode 100644 Documentation/devicetree/bindings/input/mpr121-touchkey.txt

Comments

Rob Herring Oct. 3, 2019, 7:09 p.m. UTC | #1
On Tue, Oct 1, 2019 at 9:29 AM Michal Vokáč <michal.vokac@ysoft.com> wrote:
>
> Convert the mpr121 binding to DT schema format using json-schema.
>
> Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
> ---
> Changes since v1:
>  - Extract the common input properties into the input.yaml schema.
>  - Fix the wakeup-source description.
>  - Fix the example to pass validation. Put the mpr121 device sub-node
>    into a i2c {} node.
>
> Rob, the linux,keycodes property is not valid as it is.
> If I put the minItems and maxItems into the common schema, it is valid
> and the min/max length check works fine. What could be wrong?
>
> The error is not very specific..

That's a side effect of an 'allOf' somewhere in the meta-schema.

> $ make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml
>   SCHEMA  Documentation/devicetree/bindings/processed-schema.yaml
> /home/vokac/development/sources/linux-fslc/Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml: ignoring, error in schema 'linux,keycodes'
> warning: no schema found in file: /home/vokac/development/sources/linux-fslc/Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml
> /home/vokac/development/sources/linux-fslc/Documentation/devicetree/bindings/Makefile:33: recipe for target 'Documentation/devicetree/bindings/processed-schema.yaml' failed
> make[3]: *** [Documentation/devicetree/bindings/processed-schema.yaml] Error 255
> /home/vokac/development/sources/linux-fslc/Makefile:1264: recipe for target 'dt_binding_check' failed

I'm working on a fix for this. It's a problem in the meta-schema.

Rob
Michal Vokáč Oct. 4, 2019, 7:40 a.m. UTC | #2
On 03. 10. 19 21:09, Rob Herring wrote:
> On Tue, Oct 1, 2019 at 9:29 AM Michal Vokáč <michal.vokac@ysoft.com> wrote:
>>
>> Convert the mpr121 binding to DT schema format using json-schema.
>>
>> Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
>> ---
>> Changes since v1:
>>   - Extract the common input properties into the input.yaml schema.
>>   - Fix the wakeup-source description.
>>   - Fix the example to pass validation. Put the mpr121 device sub-node
>>     into a i2c {} node.
>>
>> Rob, the linux,keycodes property is not valid as it is.
>> If I put the minItems and maxItems into the common schema, it is valid
>> and the min/max length check works fine. What could be wrong?
>>
>> The error is not very specific..
> 
> That's a side effect of an 'allOf' somewhere in the meta-schema.
> 
>> $ make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml
>>    SCHEMA  Documentation/devicetree/bindings/processed-schema.yaml
>> /home/vokac/development/sources/linux-fslc/Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml: ignoring, error in schema 'linux,keycodes'
>> warning: no schema found in file: /home/vokac/development/sources/linux-fslc/Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml
>> /home/vokac/development/sources/linux-fslc/Documentation/devicetree/bindings/Makefile:33: recipe for target 'Documentation/devicetree/bindings/processed-schema.yaml' failed
>> make[3]: *** [Documentation/devicetree/bindings/processed-schema.yaml] Error 255
>> /home/vokac/development/sources/linux-fslc/Makefile:1264: recipe for target 'dt_binding_check' failed
> 
> I'm working on a fix for this. It's a problem in the meta-schema.

OK, thanks a lot!
Michal
Rob Herring Oct. 4, 2019, 1:32 p.m. UTC | #3
On Fri, Oct 4, 2019 at 2:40 AM Michal Vokáč <michal.vokac@ysoft.com> wrote:
>
> On 03. 10. 19 21:09, Rob Herring wrote:
> > On Tue, Oct 1, 2019 at 9:29 AM Michal Vokáč <michal.vokac@ysoft.com> wrote:
> >>
> >> Convert the mpr121 binding to DT schema format using json-schema.
> >>
> >> Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
> >> ---
> >> Changes since v1:
> >>   - Extract the common input properties into the input.yaml schema.
> >>   - Fix the wakeup-source description.
> >>   - Fix the example to pass validation. Put the mpr121 device sub-node
> >>     into a i2c {} node.
> >>
> >> Rob, the linux,keycodes property is not valid as it is.
> >> If I put the minItems and maxItems into the common schema, it is valid
> >> and the min/max length check works fine. What could be wrong?
> >>
> >> The error is not very specific..
> >
> > That's a side effect of an 'allOf' somewhere in the meta-schema.
> >
> >> $ make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml
> >>    SCHEMA  Documentation/devicetree/bindings/processed-schema.yaml
> >> /home/vokac/development/sources/linux-fslc/Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml: ignoring, error in schema 'linux,keycodes'
> >> warning: no schema found in file: /home/vokac/development/sources/linux-fslc/Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml
> >> /home/vokac/development/sources/linux-fslc/Documentation/devicetree/bindings/Makefile:33: recipe for target 'Documentation/devicetree/bindings/processed-schema.yaml' failed
> >> make[3]: *** [Documentation/devicetree/bindings/processed-schema.yaml] Error 255
> >> /home/vokac/development/sources/linux-fslc/Makefile:1264: recipe for target 'dt_binding_check' failed
> >
> > I'm working on a fix for this. It's a problem in the meta-schema.
>
> OK, thanks a lot!

I've committed an update to the meta-schema. Please update dtschema
and it should work for you.

Rob
Michal Vokáč Oct. 4, 2019, 1:51 p.m. UTC | #4
On 04. 10. 19 15:32, Rob Herring wrote:
> On Fri, Oct 4, 2019 at 2:40 AM Michal Vokáč <michal.vokac@ysoft.com> wrote:
>>
>> On 03. 10. 19 21:09, Rob Herring wrote:
>>> On Tue, Oct 1, 2019 at 9:29 AM Michal Vokáč <michal.vokac@ysoft.com> wrote:
>>>>
>>>> Convert the mpr121 binding to DT schema format using json-schema.
>>>>
>>>> Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
>>>> ---
>>>> Changes since v1:
>>>>    - Extract the common input properties into the input.yaml schema.
>>>>    - Fix the wakeup-source description.
>>>>    - Fix the example to pass validation. Put the mpr121 device sub-node
>>>>      into a i2c {} node.
>>>>
>>>> Rob, the linux,keycodes property is not valid as it is.
>>>> If I put the minItems and maxItems into the common schema, it is valid
>>>> and the min/max length check works fine. What could be wrong?
>>>>
>>>> The error is not very specific..
>>>
>>> That's a side effect of an 'allOf' somewhere in the meta-schema.
>>>
>>>> $ make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml
>>>>     SCHEMA  Documentation/devicetree/bindings/processed-schema.yaml
>>>> /home/vokac/development/sources/linux-fslc/Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml: ignoring, error in schema 'linux,keycodes'
>>>> warning: no schema found in file: /home/vokac/development/sources/linux-fslc/Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml
>>>> /home/vokac/development/sources/linux-fslc/Documentation/devicetree/bindings/Makefile:33: recipe for target 'Documentation/devicetree/bindings/processed-schema.yaml' failed
>>>> make[3]: *** [Documentation/devicetree/bindings/processed-schema.yaml] Error 255
>>>> /home/vokac/development/sources/linux-fslc/Makefile:1264: recipe for target 'dt_binding_check' failed
>>>
>>> I'm working on a fix for this. It's a problem in the meta-schema.
>>
>> OK, thanks a lot!
> 
> I've committed an update to the meta-schema. Please update dtschema
> and it should work for you.

Works fine now, thank you!
Michal
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml b/Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml
new file mode 100644
index 000000000000..c6fbcdf78556
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml
@@ -0,0 +1,66 @@ 
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/fsl,mpr121-touchkey.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale MPR121 capacitive touch sensor controller
+
+maintainers:
+  - Dmitry Torokhov <dmitry.torokhov@gmail.com>
+
+description: |
+  The MPR121 supports up to 12 completely independent electrodes/capacitance
+  sensing inputs in which 8 are multifunctional for LED driving and GPIO.
+  https://www.nxp.com/docs/en/data-sheet/MPR121.pdf
+
+allOf:
+  - $ref: input.yaml#
+
+properties:
+  compatible:
+    const: fsl,mpr121-touchkey
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  vdd-supply:
+    maxItems: 1
+
+  linux,keycodes:
+    minItems: 1
+    maxItems: 12
+
+  wakeup-source:
+    description: Use any event on keypad as wakeup event.
+    type: boolean
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - vdd-supply
+  - linux,keycodes
+
+examples:
+  - |
+    #include "dt-bindings/input/input.h"
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        mpr121@5a {
+            compatible = "fsl,mpr121-touchkey";
+            reg = <0x5a>;
+            interrupt-parent = <&gpio1>;
+            interrupts = <28 2>;
+            autorepeat;
+            vdd-supply = <&ldo4_reg>;
+            linux,keycodes = <KEY_0>, <KEY_1>, <KEY_2>, <KEY_3>,
+                             <KEY_4>, <KEY_5>, <KEY_6>, <KEY_7>,
+                             <KEY_8>, <KEY_9>, <KEY_A>, <KEY_B>;
+        };
+    };
diff --git a/Documentation/devicetree/bindings/input/mpr121-touchkey.txt b/Documentation/devicetree/bindings/input/mpr121-touchkey.txt
deleted file mode 100644
index b7c61ee5841b..000000000000
--- a/Documentation/devicetree/bindings/input/mpr121-touchkey.txt
+++ /dev/null
@@ -1,30 +0,0 @@ 
-* Freescale MPR121 Controllor
-
-Required Properties:
-- compatible:		Should be "fsl,mpr121-touchkey"
-- reg:			The I2C slave address of the device.
-- interrupts:		The interrupt number to the cpu.
-- vdd-supply:		Phandle to the Vdd power supply.
-- linux,keycodes:	Specifies an array of numeric keycode values to
-			be used for reporting button presses. The array can
-			contain up to 12 entries.
-
-Optional Properties:
-- wakeup-source:	Use any event on keypad as wakeup event.
-- autorepeat:		Enable autorepeat feature.
-
-Example:
-
-#include "dt-bindings/input/input.h"
-
-	touchkey: mpr121@5a {
-		compatible = "fsl,mpr121-touchkey";
-		reg = <0x5a>;
-		interrupt-parent = <&gpio1>;
-		interrupts = <28 2>;
-		autorepeat;
-		vdd-supply = <&ldo4_reg>;
-		linux,keycodes = <KEY_0>, <KEY_1>, <KEY_2>, <KEY_3>,
-				<KEY_4> <KEY_5>, <KEY_6>, <KEY_7>,
-				<KEY_8>, <KEY_9>, <KEY_A>, <KEY_B>;
-	};