Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux...
[linux/fpc-iii.git] / Documentation / devicetree / bindings / mfd / tc3589x.txt
blob23fc2f21f5a467bdf5ae4bb42655d0e7c2bda5f8
1 * Toshiba TC3589x multi-purpose expander
3 The Toshiba TC3589x series are I2C-based MFD devices which may expose the
4 following built-in devices: gpio, keypad, rotator (vibrator), PWM (for
5 e.g. LEDs or vibrators) The included models are:
7 - TC35890
8 - TC35892
9 - TC35893
10 - TC35894
11 - TC35895
12 - TC35896
14 Required properties:
15  - compatible : must be "toshiba,tc35890", "toshiba,tc35892", "toshiba,tc35893",
16    "toshiba,tc35894", "toshiba,tc35895" or "toshiba,tc35896"
17  - reg : I2C address of the device
18  - interrupt-parent : specifies which IRQ controller we're connected to
19  - interrupts : the interrupt on the parent the controller is connected to
20  - interrupt-controller : marks the device node as an interrupt controller
21  - #interrupt-cells : should be <1>, the first cell is the IRQ offset on this
22    TC3589x interrupt controller.
24 Optional nodes:
26 - GPIO
27   This GPIO module inside the TC3589x has 24 (TC35890, TC35892) or 20
28   (other models) GPIO lines.
29  - compatible : must be "toshiba,tc3589x-gpio"
30  - interrupts : interrupt on the parent, which must be the tc3589x MFD device
31  - interrupt-controller : marks the device node as an interrupt controller
32  - #interrupt-cells : should be <2>, the first cell is the IRQ offset on this
33    TC3589x GPIO interrupt controller, the second cell is the interrupt flags
34    in accordance with <dt-bindings/interrupt-controller/irq.h>. The following
35    flags are valid:
36    - IRQ_TYPE_LEVEL_LOW
37    - IRQ_TYPE_LEVEL_HIGH
38    - IRQ_TYPE_EDGE_RISING
39    - IRQ_TYPE_EDGE_FALLING
40    - IRQ_TYPE_EDGE_BOTH
41  - gpio-controller : marks the device node as a GPIO controller
42  - #gpio-cells : should be <2>, the first cell is the GPIO offset on this
43    GPIO controller, the second cell is the flags.
45 - Keypad
46   This keypad is the same on all variants, supporting up to 96 different
47   keys. The linux-specific properties are modeled on those already existing
48   in other input drivers.
49  - compatible : must be "toshiba,tc3589x-keypad"
50  - debounce-delay-ms : debounce interval in milliseconds
51  - keypad,num-rows : number of rows in the matrix, see
52    bindings/input/matrix-keymap.txt
53  - keypad,num-columns : number of columns in the matrix, see
54    bindings/input/matrix-keymap.txt
55  - linux,keymap: the definition can be found in
56    bindings/input/matrix-keymap.txt
57  - linux,no-autorepeat: do no enable autorepeat feature.
58  - wakeup-source: use any event on keypad as wakeup event.
59                   (Legacy property supported: "linux,wakeup")
61 Example:
63 tc35893@44 {
64         compatible = "toshiba,tc35893";
65         reg = <0x44>;
66         interrupt-parent = <&gpio6>;
67         interrupts = <26 IRQ_TYPE_EDGE_RISING>;
69         interrupt-controller;
70         #interrupt-cells = <1>;
72         tc3589x_gpio {
73                 compatible = "toshiba,tc3589x-gpio";
74                 interrupts = <0>;
76                 interrupt-controller;
77                 #interrupt-cells = <2>;
78                 gpio-controller;
79                 #gpio-cells = <2>;
80         };
81         tc3589x_keypad {
82                 compatible = "toshiba,tc3589x-keypad";
83                 interrupts = <6>;
84                 debounce-delay-ms = <4>;
85                 keypad,num-columns = <8>;
86                 keypad,num-rows = <8>;
87                 linux,no-autorepeat;
88                 linux,keymap = <0x0301006b
89                                 0x04010066
90                                 0x06040072
91                                 0x040200d7
92                                 0x0303006a
93                                 0x0205000e
94                                 0x0607008b
95                                 0x0500001c
96                                 0x0403000b
97                                 0x03040034
98                                 0x05020067
99                                 0x0305006c
100                                 0x040500e7
101                                 0x0005009e
102                                 0x06020073
103                                 0x01030039
104                                 0x07060069
105                                 0x050500d9>;
106                 wakeup-source;
107         };