dt-bindings: auxdisplay: ht16k33: Keyscan function should be optional

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

Reported-by: Michael Kaplan <M.KAPLAN@evva.com>
Signed-off-by: Robin van der Gracht <robin@protonic.nl>
[geert: Rebased]
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Robin van der Gracht <robin@protonic.nl>
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
This commit is contained in:
Robin van der Gracht 2021-01-18 13:35:36 +01:00 committed by Miguel Ojeda
parent 6ee1d745b7
commit 164b677056
2 changed files with 13 additions and 12 deletions

View File

@ -4,16 +4,19 @@ Holtek ht16k33 RAM mapping 16*8 LED controller driver with keyscan
Required properties: Required properties:
- compatible: "holtek,ht16k33" - compatible: "holtek,ht16k33"
- reg: I2C slave address of the chip. - reg: I2C slave address of the chip.
- interrupts: Interrupt specification for the key pressed interrupt.
- refresh-rate-hz: Display update interval in HZ. - 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: Optional properties:
- linux,no-autorepeat: Disable keyrepeat. - linux,no-autorepeat: Disable keyrepeat.
- default-brightness-level: Initial brightness level [0-15] (default: 15). - 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: Example:
&i2c1 { &i2c1 {

View File

@ -402,11 +402,6 @@ static int ht16k33_probe(struct i2c_client *client,
return -EIO; 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); priv = devm_kzalloc(&client->dev, sizeof(*priv), GFP_KERNEL);
if (!priv) if (!priv)
return -ENOMEM; return -ENOMEM;
@ -459,9 +454,12 @@ static int ht16k33_probe(struct i2c_client *client,
if (err) if (err)
goto err_fbdev_info; goto err_fbdev_info;
err = ht16k33_keypad_probe(client, &priv->keypad); /* Keypad */
if (err) if (client->irq > 0) {
goto err_fbdev_unregister; err = ht16k33_keypad_probe(client, &priv->keypad);
if (err)
goto err_fbdev_unregister;
}
/* Backlight */ /* Backlight */
memset(&bl_props, 0, sizeof(struct backlight_properties)); memset(&bl_props, 0, sizeof(struct backlight_properties));