diff mbox series

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

Message ID 1570083176-8231-3-git-send-email-michal.vokac@ysoft.com (mailing list archive)
State Accepted
Commit def10ec7992f037140f3bd9542d1242cfd2027d4
Headers show
Series Add polling mode to the MPR121 touchkey | expand

Commit Message

Michal Vokáč Oct. 3, 2019, 6:12 a.m. UTC
Convert the mpr121 binding to DT schema format using json-schema.

Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
---
Changes since v2:
 - None

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.

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. Rob, could you advice how to fix this please?

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,ke
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/p
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

Michal Vokáč Oct. 4, 2019, 1:58 p.m. UTC | #1
On 03. 10. 19 8:12, Michal Vokáč wrote:
> Convert the mpr121 binding to DT schema format using json-schema.
> 
> Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
> ---
> Changes since v2:
>   - None
> 
> 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.
> 
> 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. Rob, could you advice how to fix this please?

This error is no longer present - it is fixed in the latest version of
meta-schema. Thank you, Rob!

> 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,ke
> 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/p
> 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
Rob Herring (Arm) Oct. 10, 2019, 7:36 p.m. UTC | #2
On Thu,  3 Oct 2019 08:12:53 +0200, =?UTF-8?q?Michal=20Vok=C3=A1=C4=8D?= wrote:
> Convert the mpr121 binding to DT schema format using json-schema.
> 
> Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
> ---
> Changes since v2:
>  - None
> 
> 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.
> 
> 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. Rob, could you advice how to fix this please?
> 
> 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,ke
> 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/p
> 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
> 

Reviewed-by: Rob Herring <robh@kernel.org>
Dmitry Torokhov Oct. 16, 2019, 12:24 a.m. UTC | #3
On Thu, Oct 10, 2019 at 02:36:51PM -0500, Rob Herring wrote:
> On Thu,  3 Oct 2019 08:12:53 +0200, =?UTF-8?q?Michal=20Vok=C3=A1=C4=8D?= wrote:
> > Convert the mpr121 binding to DT schema format using json-schema.
> > 
> > Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
> > ---
> > Changes since v2:
> >  - None
> > 
> > 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.
> > 
> > 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. Rob, could you advice how to fix this please?
> > 
> > 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,ke
> > 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/p
> > 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
> > 
> 
> Reviewed-by: Rob Herring <robh@kernel.org>

Applied, thank you.
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>;
-	};