@@ -49,7 +49,12 @@ properties:
interrupt-controller:
description:
This property applies if either keypad,num-rows lower than 8 or
- keypad,num-columns lower than 10.
+ keypad,num-columns lower than 10. This property is optional if
+ keypad,num-rows or keypad,num-columns are not specified since the
+ device then acts as gpio only, during which interrupts may or may
+ not be utilized. If specified however, interrupts must be also be
+ provided as all interrupt communication is handled via a single
+ interrupt line.
'#interrupt-cells':
const: 2
@@ -65,13 +70,30 @@ properties:
minItems: 1
maxItems: 2
+
+dependencies:
+ keypad,num-rows:
+ - linux,keymap
+ - keypad,num-columns
+ keypad,num-columns:
+ - linux,keymap
+ - keypad,num-rows
+ linux,keymap:
+ - keypad,num-rows
+ - keypad,num-columns
+ interrupt-controller:
+ - interrupts
+
+if:
+ required:
+ - linux,keymap
+then:
+ required:
+ - interrupts
+
required:
- compatible
- reg
- - interrupts
- - keypad,num-rows
- - keypad,num-columns
- - linux,keymap
unevaluatedProperties: false
@@ -108,4 +130,21 @@ examples:
>;
};
};
-...
+
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+ #include <dt-bindings/input/input.h>
+ #include <dt-bindings/gpio/gpio.h>
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ gpio@34 {
+ compatible = "adi,adp5588";
+ reg = <0x34>;
+
+ #gpio-cells = <2>;
+ gpio-controller;
+ };
+ };
+
+.