[input-next,1/4] dt-bindings: input: Convert mpr121 binding to json-schema
diff mbox series

Message ID 1567424417-3914-2-git-send-email-michal.vokac@ysoft.com
State New
Headers show
Series
  • Add polling mode to the MPR121 touchkey
Related show

Commit Message

Michal Vokáč Sept. 2, 2019, 11:40 a.m. UTC
Convert the mpr121 binding to DT schema format using json-schema.

Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
---
Hi Rob,

I will appreciate your help converting this binding. Currently
the scheme is not valid and the error output of dt_binding_check
is not really helpful.

Also, who shoud be the maintainer of this binding?
I put Dmitry in there as he is the input subsystem maintainer but
I am not sure it is correct.

Thank you,
Michal

 .../bindings/input/fsl,mpr121-touchkey.yaml        | 64 ++++++++++++++++++++++
 .../devicetree/bindings/input/mpr121-touchkey.txt  | 30 ----------
 2 files changed, 64 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 Sept. 3, 2019, 6:56 a.m. UTC | #1
On Mon, Sep 02, 2019 at 01:40:14PM +0200, Michal Vokáč wrote:
> Convert the mpr121 binding to DT schema format using json-schema.
> 
> Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
> ---
> Hi Rob,
> 
> I will appreciate your help converting this binding. Currently
> the scheme is not valid and the error output of dt_binding_check
> is not really helpful.

What's the error? I don't see anything obvious.

> 
> Also, who shoud be the maintainer of this binding?
> I put Dmitry in there as he is the input subsystem maintainer but
> I am not sure it is correct.

My preference is the author or driver maintainer.

>  .../bindings/input/fsl,mpr121-touchkey.yaml        | 64 ++++++++++++++++++++++
>  .../devicetree/bindings/input/mpr121-touchkey.txt  | 30 ----------
>  2 files changed, 64 insertions(+), 30 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml
>  delete mode 100644 Documentation/devicetree/bindings/input/mpr121-touchkey.txt
Michal Vokáč Sept. 17, 2019, 2:16 p.m. UTC | #2
On 03. 09. 19 8:56, Rob Herring wrote:
> On Mon, Sep 02, 2019 at 01:40:14PM +0200, Michal Vokáč wrote:
>> Convert the mpr121 binding to DT schema format using json-schema.
>>
>> Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
>> ---
>> Hi Rob,
>>
>> I will appreciate your help converting this binding. Currently
>> the scheme is not valid and the error output of dt_binding_check
>> is not really helpful.
> 
> What's the error? I don't see anything obvious.

After some trial & error attempts I found few issues:

  - Wrong placement of description for wakeup-source. Solved.
  - Missing coma between <KEY_4>, <KEY_5> values in the example. Solved.
  - DTC complained about invalid reg property length in the example.
    Solved by placing the mpr121 subnode into i2c {}; node and adding
    #address-cells and #size-cells properties.
  - The linux,keycodes property also requires type definition. Unresolved.

    What type should be used? Neither uint32-array nor uint32-matrix work.
    The linux,keycodes list is not correctly validated against the maxItems
    value. When I set maxItems less then the number of keycodes, it does not
    complain.

>> Also, who shoud be the maintainer of this binding?
>> I put Dmitry in there as he is the input subsystem maintainer but
>> I am not sure it is correct.
> 
> My preference is the author or driver maintainer.

Then Dmitry seems to be the best match here I think.

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

Patch
diff mbox series

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..c463c1c81755
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/fsl,mpr121-touchkey.yaml
@@ -0,0 +1,64 @@ 
+# 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
+
+properties:
+  compatible:
+    const: fsl,mpr121-touchkey
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  vdd-supply:
+    maxItems: 1
+
+  linux,keycodes:
+    description:
+      Specifies an array of numeric keycode values to be used for reporting
+      button presses. The array can contain up to 12 entries.
+    minItems: 1
+    maxItems: 12
+
+  wakeup-source: Use any event on keypad as wakeup event.
+    type: boolean
+
+  autorepeat:
+    description: Enable autorepeat when key is pressed and held down.
+    type: boolean
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - vdd-supply
+  - linux,keycodes
+
+examples:
+  - |
+    #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>;
+    };
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>;
-	};