108 lines · plain
1* Toshiba TC3589x multi-purpose expander2 3The Toshiba TC3589x series are I2C-based MFD devices which may expose the4following built-in devices: gpio, keypad, rotator (vibrator), PWM (for5e.g. LEDs or vibrators) The included models are:6 7- TC358908- TC358929- TC3589310- TC3589411- TC3589512- TC3589613 14Required 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 device18 - interrupts : the interrupt on the parent the controller is connected to19 - interrupt-controller : marks the device node as an interrupt controller20 - #interrupt-cells : should be <1>, the first cell is the IRQ offset on this21 TC3589x interrupt controller.22 23Optional nodes:24 25- GPIO26 This GPIO module inside the TC3589x has 24 (TC35890, TC35892) or 2027 (other models) GPIO lines.28 - compatible : must be "toshiba,tc3589x-gpio"29 - interrupts : interrupt on the parent, which must be the tc3589x MFD device30 - interrupt-controller : marks the device node as an interrupt controller31 - #interrupt-cells : should be <2>, the first cell is the IRQ offset on this32 TC3589x GPIO interrupt controller, the second cell is the interrupt flags33 in accordance with <dt-bindings/interrupt-controller/irq.h>. The following34 flags are valid:35 - IRQ_TYPE_LEVEL_LOW36 - IRQ_TYPE_LEVEL_HIGH37 - IRQ_TYPE_EDGE_RISING38 - IRQ_TYPE_EDGE_FALLING39 - IRQ_TYPE_EDGE_BOTH40 - gpio-controller : marks the device node as a GPIO controller41 - #gpio-cells : should be <2>, the first cell is the GPIO offset on this42 GPIO controller, the second cell is the flags.43 44- Keypad45 This keypad is the same on all variants, supporting up to 96 different46 keys. The linux-specific properties are modeled on those already existing47 in other input drivers.48 - compatible : must be "toshiba,tc3589x-keypad"49 - debounce-delay-ms : debounce interval in milliseconds50 - keypad,num-rows : number of rows in the matrix, see51 bindings/input/matrix-keymap.txt52 - keypad,num-columns : number of columns in the matrix, see53 bindings/input/matrix-keymap.txt54 - linux,keymap: the definition can be found in55 bindings/input/matrix-keymap.txt56 - linux,no-autorepeat: do no enable autorepeat feature.57 - wakeup-source: use any event on keypad as wakeup event.58 (Legacy property supported: "linux,wakeup")59 60Example:61 62tc35893@44 {63 compatible = "toshiba,tc35893";64 reg = <0x44>;65 interrupt-parent = <&gpio6>;66 interrupts = <26 IRQ_TYPE_EDGE_RISING>;67 68 interrupt-controller;69 #interrupt-cells = <1>;70 71 tc3589x_gpio {72 compatible = "toshiba,tc3589x-gpio";73 interrupts = <0>;74 75 interrupt-controller;76 #interrupt-cells = <2>;77 gpio-controller;78 #gpio-cells = <2>;79 };80 tc3589x_keypad {81 compatible = "toshiba,tc3589x-keypad";82 interrupts = <6>;83 debounce-delay-ms = <4>;84 keypad,num-columns = <8>;85 keypad,num-rows = <8>;86 linux,no-autorepeat;87 linux,keymap = <0x0301006b88 0x0401006689 0x0604007290 0x040200d791 0x0303006a92 0x0205000e93 0x0607008b94 0x0500001c95 0x0403000b96 0x0304003497 0x0502006798 0x0305006c99 0x040500e7100 0x0005009e101 0x06020073102 0x01030039103 0x07060069104 0x050500d9>;105 wakeup-source;106 };107};108