[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210118123538.564597-2-geert@linux-m68k.org>
Date: Mon, 18 Jan 2021 13:35:36 +0100
From: Geert Uytterhoeven <geert@...ux-m68k.org>
To: Robin van der Gracht <robin@...tonic.nl>,
Rob Herring <robh+dt@...nel.org>,
Miguel Ojeda Sandonis <miguel.ojeda.sandonis@...il.com>
Cc: devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
Michael Kaplan <M.KAPLAN@...a.com>,
Geert Uytterhoeven <geert@...ux-m68k.org>
Subject: [PATCH 1/3] dt-bindings: auxdisplay: ht16k33: Keyscan function should be optional
From: Robin van der Gracht <robin@...tonic.nl>
Keyscan should be optional to support simple LED matrix displays (output
only).
Reported-by: Michael Kaplan <M.KAPLAN@...a.com>
Signed-off-by: Robin van der Gracht <robin@...tonic.nl>
[geert: Rebased]
Signed-off-by: Geert Uytterhoeven <geert@...ux-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
Powered by blists - more mailing lists