Commit | Line | Data |
---|---|---|
bc804360 LW |
1 | * Toshiba TC3589x multi-purpose expander |
2 | ||
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: | |
6 | ||
7 | - TC35890 | |
8 | - TC35892 | |
9 | - TC35893 | |
10 | - TC35894 | |
11 | - TC35895 | |
12 | - TC35896 | |
13 | ||
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. | |
23 | ||
24 | Optional nodes: | |
25 | ||
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. | |
44 | ||
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. | |
e571c73e | 58 | - wakeup-source: use any event on keypad as wakeup event. |
71a0151c | 59 | (Legacy property supported: "linux,wakeup") |
bc804360 LW |
60 | |
61 | Example: | |
62 | ||
63 | tc35893@44 { | |
64 | compatible = "toshiba,tc35893"; | |
65 | reg = <0x44>; | |
66 | interrupt-parent = <&gpio6>; | |
67 | interrupts = <26 IRQ_TYPE_EDGE_RISING>; | |
68 | ||
69 | interrupt-controller; | |
70 | #interrupt-cells = <1>; | |
71 | ||
72 | tc3589x_gpio { | |
73 | compatible = "toshiba,tc3589x-gpio"; | |
74 | interrupts = <0>; | |
75 | ||
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; | |
bc804360 LW |
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>; | |
e571c73e | 106 | wakeup-source; |
bc804360 LW |
107 | }; |
108 | }; |