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