[PATCH 0/3] auxdisplay: ht16k33: Improvement, fix, and json-schema conversion

STALE2016d

9 messages, 3 authors, 2021-01-25 · open the first message on its own page

[PATCH 0/3] auxdisplay: ht16k33: Improvement, fix, and json-schema conversion

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2021-01-18 12:41:06

	Hi Robin, Rob, Miguel,

This patch series contains various updates for the Holtek HT16K33 LED
controller with keyscan DT bindings and driver:
  1. Make the keypad function optional, from an old patch by Robin that seem to
     have fallen through the cracks,
  2. Fix the default brightness range,
  3. Convert DT bindings to json-schema.

Thanks!

Geert Uytterhoeven (2):
  dt-bindings: auxdisplay: ht16k33: Fix default-brightness-level range
  dt-bindings: auxdisplay: ht16k33: Convert to json-schema

Robin van der Gracht (1):
  dt-bindings: auxdisplay: ht16k33: Keyscan function should be optional

 .../bindings/auxdisplay/holtek,ht16k33.yaml   | 77 +++++++++++++++++++
 .../devicetree/bindings/display/ht16k33.txt   | 40 ----------
 MAINTAINERS                                   |  2 +-
 drivers/auxdisplay/ht16k33.c                  | 14 ++--
 4 files changed, 84 insertions(+), 49 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml
 delete mode 100644 Documentation/devicetree/bindings/display/ht16k33.txt

-- 
2.25.1

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

[PATCH 1/3] dt-bindings: auxdisplay: ht16k33: Keyscan function should be optional

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2021-01-18 12:42:58

From: Robin van der Gracht <robin@protonic.nl>

Keyscan should be optional to support simple LED matrix displays (output
only).

Reported-by: Michael Kaplan <redacted>
Signed-off-by: Robin van der Gracht <robin@protonic.nl>
[geert: Rebased]
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
 .../devicetree/bindings/display/ht16k33.txt        | 11 +++++++----
 drivers/auxdisplay/ht16k33.c                       | 14 ++++++--------
 2 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/Documentation/devicetree/bindings/display/ht16k33.txt b/Documentation/devicetree/bindings/display/ht16k33.txt
index d5a8b070b46779a4..3d602f5b9eb6bb74 100644
--- a/Documentation/devicetree/bindings/display/ht16k33.txt
+++ b/Documentation/devicetree/bindings/display/ht16k33.txt
@@ -4,16 +4,19 @@ Holtek ht16k33 RAM mapping 16*8 LED controller driver with keyscan
 Required properties:
 - compatible:		"holtek,ht16k33"
 - reg:			I2C slave address of the chip.
-- interrupts:		Interrupt specification for the key pressed interrupt.
 - refresh-rate-hz:	Display update interval in HZ.
-- debounce-delay-ms:	Debouncing interval time in milliseconds.
-- linux,keymap: 	The keymap for keys as described in the binding
-			document (devicetree/bindings/input/matrix-keymap.txt).
 
 Optional properties:
 - linux,no-autorepeat:	Disable keyrepeat.
 - default-brightness-level: Initial brightness level [0-15] (default: 15).
 
+- Keypad
+ Supply the 'interrupts' property to enable the keyscan feature.
+ - interrupts:		Interrupt specification for the key pressed interrupt.
+ - debounce-delay-ms:	Debouncing interval time in milliseconds.
+ - linux,keymap: 	The keymap for keys as described in the binding
+			document (devicetree/bindings/input/matrix-keymap.txt).
+
 Example:
 
 &i2c1 {
diff --git a/drivers/auxdisplay/ht16k33.c b/drivers/auxdisplay/ht16k33.c
index d951d54b26f5239b..444f3b1019e3d425 100644
--- a/drivers/auxdisplay/ht16k33.c
+++ b/drivers/auxdisplay/ht16k33.c
@@ -402,11 +402,6 @@ static int ht16k33_probe(struct i2c_client *client,
 		return -EIO;
 	}
 
-	if (client->irq <= 0) {
-		dev_err(&client->dev, "No IRQ specified\n");
-		return -EINVAL;
-	}
-
 	priv = devm_kzalloc(&client->dev, sizeof(*priv), GFP_KERNEL);
 	if (!priv)
 		return -ENOMEM;
@@ -459,9 +454,12 @@ static int ht16k33_probe(struct i2c_client *client,
 	if (err)
 		goto err_fbdev_info;
 
-	err = ht16k33_keypad_probe(client, &priv->keypad);
-	if (err)
-		goto err_fbdev_unregister;
+	/* Keypad */
+	if (client->irq > 0) {
+		err = ht16k33_keypad_probe(client, &priv->keypad);
+		if (err)
+			goto err_fbdev_unregister;
+	}
 
 	/* Backlight */
 	memset(&bl_props, 0, sizeof(struct backlight_properties));
-- 
2.25.1

[PATCH 3/3] dt-bindings: auxdisplay: ht16k33: Convert to json-schema

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2021-01-18 12:43:33

Convert the Holtek HT16K33 LED controller with keyscan Device Tree
binding documentation to json-schema.

Move the file from display to auxdisplay.
Update the example:
  - Sort properties in order of documentation,
  - Group tuples using angle brackets to improve human readability and
    enable automatic validation.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
 .../bindings/auxdisplay/holtek,ht16k33.yaml   | 77 +++++++++++++++++++
 .../devicetree/bindings/display/ht16k33.txt   | 43 -----------
 MAINTAINERS                                   |  2 +-
 3 files changed, 78 insertions(+), 44 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml
 delete mode 100644 Documentation/devicetree/bindings/display/ht16k33.txt
diff --git a/Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml b/Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml
new file mode 100644
index 0000000000000000..64ffff460026040f
--- /dev/null
+++ b/Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml
@@ -0,0 +1,77 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/auxdisplay/holtek,ht16k33.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Holtek HT16K33 RAM mapping 16*8 LED controller with keyscan
+
+maintainers:
+  - Robin van der Gracht <robin@protonic.nl>
+
+allOf:
+  - $ref: "/schemas/input/matrix-keymap.yaml#"
+
+properties:
+  compatible:
+    const: holtek,ht16k33
+
+  reg:
+    maxItems: 1
+
+  refresh-rate-hz:
+    maxItems: 1
+    description: Display update interval in Hertz
+
+  interrupts:
+    maxItems: 1
+
+  debounce-delay-ms:
+    maxItems: 1
+    description: Debouncing interval time in milliseconds
+
+  linux,keymap: true
+
+  linux,no-autorepeat:
+    description: Disable keyrepeat
+
+  default-brightness-level:
+    minimum: 1
+    maximum: 16
+    default: 16
+    description: Initial brightness level
+
+required:
+  - compatible
+  - reg
+  - refresh-rate-hz
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/input/input.h>
+    i2c1 {
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            ht16k33: ht16k33@70 {
+                    compatible = "holtek,ht16k33";
+                    reg = <0x70>;
+                    refresh-rate-hz = <20>;
+                    interrupt-parent = <&gpio4>;
+                    interrupts = <5 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>;
+                    debounce-delay-ms = <50>;
+                    linux,keymap = <MATRIX_KEY(2, 0, KEY_F6)>,
+                                   <MATRIX_KEY(3, 0, KEY_F8)>,
+                                   <MATRIX_KEY(4, 0, KEY_F10)>,
+                                   <MATRIX_KEY(5, 0, KEY_F4)>,
+                                   <MATRIX_KEY(6, 0, KEY_F2)>,
+                                   <MATRIX_KEY(2, 1, KEY_F5)>,
+                                   <MATRIX_KEY(3, 1, KEY_F7)>,
+                                   <MATRIX_KEY(4, 1, KEY_F9)>,
+                                   <MATRIX_KEY(5, 1, KEY_F3)>,
+                                   <MATRIX_KEY(6, 1, KEY_F1)>;
+            };
+      };
diff --git a/Documentation/devicetree/bindings/display/ht16k33.txt b/Documentation/devicetree/bindings/display/ht16k33.txt
deleted file mode 100644
index ec43776970164921..0000000000000000
--- a/Documentation/devicetree/bindings/display/ht16k33.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-Holtek ht16k33 RAM mapping 16*8 LED controller driver with keyscan
--------------------------------------------------------------------------------
-
-Required properties:
-- compatible:		"holtek,ht16k33"
-- reg:			I2C slave address of the chip.
-- refresh-rate-hz:	Display update interval in HZ.
-
-Optional properties:
-- linux,no-autorepeat:	Disable keyrepeat.
-- default-brightness-level: Initial brightness level [1-16] (default: 16).
-
-- Keypad
- Supply the 'interrupts' property to enable the keyscan feature.
- - interrupts:		Interrupt specification for the key pressed interrupt.
- - debounce-delay-ms:	Debouncing interval time in milliseconds.
- - linux,keymap: 	The keymap for keys as described in the binding
-			document (devicetree/bindings/input/matrix-keymap.txt).
-
-Example:
-
-&i2c1 {
-	ht16k33: ht16k33@70 {
-		compatible = "holtek,ht16k33";
-		reg = <0x70>;
-		refresh-rate-hz = <20>;
-		debounce-delay-ms = <50>;
-		interrupt-parent = <&gpio4>;
-		interrupts = <5 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>;
-		linux,keymap = <
-			MATRIX_KEY(2, 0, KEY_F6)
-			MATRIX_KEY(3, 0, KEY_F8)
-			MATRIX_KEY(4, 0, KEY_F10)
-			MATRIX_KEY(5, 0, KEY_F4)
-			MATRIX_KEY(6, 0, KEY_F2)
-			MATRIX_KEY(2, 1, KEY_F5)
-			MATRIX_KEY(3, 1, KEY_F7)
-			MATRIX_KEY(4, 1, KEY_F9)
-			MATRIX_KEY(5, 1, KEY_F3)
-			MATRIX_KEY(6, 1, KEY_F1)
-		>;
-	};
-};
diff --git a/MAINTAINERS b/MAINTAINERS
index cc1e6a5ee6e67357..aeb209ad82496d06 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -8160,7 +8160,7 @@ F:	net/hsr/
 HT16K33 LED CONTROLLER DRIVER
 M:	Robin van der Gracht <robin@protonic.nl>
 S:	Maintained
-F:	Documentation/devicetree/bindings/display/ht16k33.txt
+F:	Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml
 F:	drivers/auxdisplay/ht16k33.c
 
 HTCPEN TOUCHSCREEN DRIVER
-- 
2.25.1

[PATCH 2/3] dt-bindings: auxdisplay: ht16k33: Fix default-brightness-level range

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2021-01-18 12:55:25

V4 changed the range from 0..15 to 1..16 in the driver, to match the
dimming set hardware register, but forgot to update the DT binding
documentation.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
v3: https://lore.kernel.org/linux-devicetree/1455788642-4289-1-git-send-email-robin@protonic.nl/
v4: https://lore.kernel.org/linux-devicetree/ae23cf26135a586440419aaa764f3a70de913c4a.1458140954.git.robin@protonic.nl/
---
 Documentation/devicetree/bindings/display/ht16k33.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/display/ht16k33.txt b/Documentation/devicetree/bindings/display/ht16k33.txt
index 3d602f5b9eb6bb74..ec43776970164921 100644
--- a/Documentation/devicetree/bindings/display/ht16k33.txt
+++ b/Documentation/devicetree/bindings/display/ht16k33.txt
@@ -8,7 +8,7 @@ Required properties:
 
 Optional properties:
 - linux,no-autorepeat:	Disable keyrepeat.
-- default-brightness-level: Initial brightness level [0-15] (default: 15).
+- default-brightness-level: Initial brightness level [1-16] (default: 16).
 
 - Keypad
  Supply the 'interrupts' property to enable the keyscan feature.
-- 
2.25.1

Re: [PATCH 0/3] auxdisplay: ht16k33: Improvement, fix, and json-schema conversion

From: robin <robin@protonic.nl>
Date: 2021-01-18 13:47:49

Hi Geert,

Thank you for (re-)submitting your patches!

On 2021-01-18 13:35, Geert Uytterhoeven wrote:
Hi Robin, Rob, Miguel,

This patch series contains various updates for the Holtek HT16K33 LED
controller with keyscan DT bindings and driver:
  1. Make the keypad function optional, from an old patch by Robin that 
seem to
     have fallen through the cracks,
Thanks for digging this up. Not sure why this was dropped. I still think 
it's usefull.
  2. Fix the default brightness range,
Seems to match MIN/MAX_BRIGHTNESS now.
Acked-by: Robin van der Gracht <robin@protonic.nl>

Robin

Re: [PATCH 0/3] auxdisplay: ht16k33: Improvement, fix, and json-schema conversion

From: Miguel Ojeda <hidden>
Date: 2021-01-23 12:48:55

On Mon, Jan 18, 2021 at 2:36 PM robin [off-list ref] wrote:
Thanks for digging this up. Not sure why this was dropped. I still think
it's usefull.
Not intentional -- probably slipped, sorry.

Cheers,
Miguel

Re: [PATCH 1/3] dt-bindings: auxdisplay: ht16k33: Keyscan function should be optional

From: Miguel Ojeda <hidden>
Date: 2021-01-25 21:22:30

On Mon, Jan 18, 2021 at 1:35 PM Geert Uytterhoeven [off-list ref] wrote:
From: Robin van der Gracht <robin@protonic.nl>

Keyscan should be optional to support simple LED matrix displays (output
only).
Applied to -next, thanks!

Cheers,
Miguel

Re: [PATCH 2/3] dt-bindings: auxdisplay: ht16k33: Fix default-brightness-level range

From: Miguel Ojeda <hidden>
Date: 2021-01-25 21:24:02

On Mon, Jan 18, 2021 at 1:35 PM Geert Uytterhoeven [off-list ref] wrote:
V4 changed the range from 0..15 to 1..16 in the driver, to match the
dimming set hardware register, but forgot to update the DT binding
documentation.
Applied to -next, thanks!

Cheers,
Miguel

Re: [PATCH 3/3] dt-bindings: auxdisplay: ht16k33: Convert to json-schema

From: Miguel Ojeda <hidden>
Date: 2021-01-25 21:27:32

On Mon, Jan 18, 2021 at 1:35 PM Geert Uytterhoeven [off-list ref] wrote:
Convert the Holtek HT16K33 LED controller with keyscan Device Tree
binding documentation to json-schema.
Applied to -next, thanks!

Cheers,
Miguel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help