forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
3.2 KiB
107 lines
3.2 KiB
* Toshiba TC3589x multi-purpose expander |
|
|
|
The Toshiba TC3589x series are I2C-based MFD devices which may expose the |
|
following built-in devices: gpio, keypad, rotator (vibrator), PWM (for |
|
e.g. LEDs or vibrators) The included models are: |
|
|
|
- TC35890 |
|
- TC35892 |
|
- TC35893 |
|
- TC35894 |
|
- TC35895 |
|
- TC35896 |
|
|
|
Required properties: |
|
- compatible : must be "toshiba,tc35890", "toshiba,tc35892", "toshiba,tc35893", |
|
"toshiba,tc35894", "toshiba,tc35895" or "toshiba,tc35896" |
|
- reg : I2C address of the device |
|
- interrupts : the interrupt on the parent the controller is connected to |
|
- interrupt-controller : marks the device node as an interrupt controller |
|
- #interrupt-cells : should be <1>, the first cell is the IRQ offset on this |
|
TC3589x interrupt controller. |
|
|
|
Optional nodes: |
|
|
|
- GPIO |
|
This GPIO module inside the TC3589x has 24 (TC35890, TC35892) or 20 |
|
(other models) GPIO lines. |
|
- compatible : must be "toshiba,tc3589x-gpio" |
|
- interrupts : interrupt on the parent, which must be the tc3589x MFD device |
|
- interrupt-controller : marks the device node as an interrupt controller |
|
- #interrupt-cells : should be <2>, the first cell is the IRQ offset on this |
|
TC3589x GPIO interrupt controller, the second cell is the interrupt flags |
|
in accordance with <dt-bindings/interrupt-controller/irq.h>. The following |
|
flags are valid: |
|
- IRQ_TYPE_LEVEL_LOW |
|
- IRQ_TYPE_LEVEL_HIGH |
|
- IRQ_TYPE_EDGE_RISING |
|
- IRQ_TYPE_EDGE_FALLING |
|
- IRQ_TYPE_EDGE_BOTH |
|
- gpio-controller : marks the device node as a GPIO controller |
|
- #gpio-cells : should be <2>, the first cell is the GPIO offset on this |
|
GPIO controller, the second cell is the flags. |
|
|
|
- Keypad |
|
This keypad is the same on all variants, supporting up to 96 different |
|
keys. The linux-specific properties are modeled on those already existing |
|
in other input drivers. |
|
- compatible : must be "toshiba,tc3589x-keypad" |
|
- debounce-delay-ms : debounce interval in milliseconds |
|
- keypad,num-rows : number of rows in the matrix, see |
|
bindings/input/matrix-keymap.txt |
|
- keypad,num-columns : number of columns in the matrix, see |
|
bindings/input/matrix-keymap.txt |
|
- linux,keymap: the definition can be found in |
|
bindings/input/matrix-keymap.txt |
|
- linux,no-autorepeat: do no enable autorepeat feature. |
|
- wakeup-source: use any event on keypad as wakeup event. |
|
(Legacy property supported: "linux,wakeup") |
|
|
|
Example: |
|
|
|
tc35893@44 { |
|
compatible = "toshiba,tc35893"; |
|
reg = <0x44>; |
|
interrupt-parent = <&gpio6>; |
|
interrupts = <26 IRQ_TYPE_EDGE_RISING>; |
|
|
|
interrupt-controller; |
|
#interrupt-cells = <1>; |
|
|
|
tc3589x_gpio { |
|
compatible = "toshiba,tc3589x-gpio"; |
|
interrupts = <0>; |
|
|
|
interrupt-controller; |
|
#interrupt-cells = <2>; |
|
gpio-controller; |
|
#gpio-cells = <2>; |
|
}; |
|
tc3589x_keypad { |
|
compatible = "toshiba,tc3589x-keypad"; |
|
interrupts = <6>; |
|
debounce-delay-ms = <4>; |
|
keypad,num-columns = <8>; |
|
keypad,num-rows = <8>; |
|
linux,no-autorepeat; |
|
linux,keymap = <0x0301006b |
|
0x04010066 |
|
0x06040072 |
|
0x040200d7 |
|
0x0303006a |
|
0x0205000e |
|
0x0607008b |
|
0x0500001c |
|
0x0403000b |
|
0x03040034 |
|
0x05020067 |
|
0x0305006c |
|
0x040500e7 |
|
0x0005009e |
|
0x06020073 |
|
0x01030039 |
|
0x07060069 |
|
0x050500d9>; |
|
wakeup-source; |
|
}; |
|
};
|
|
|