The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/mfd/tc3589x.txt

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    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  - interrupts : the interrupt on the parent the controller is connected to
   19  - interrupt-controller : marks the device node as an interrupt controller
   20  - #interrupt-cells : should be <1>, the first cell is the IRQ offset on this
   21    TC3589x interrupt controller.
   22 
   23 Optional nodes:
   24 
   25 - GPIO
   26   This GPIO module inside the TC3589x has 24 (TC35890, TC35892) or 20
   27   (other models) GPIO lines.
   28  - compatible : must be "toshiba,tc3589x-gpio"
   29  - interrupts : interrupt on the parent, which must be the tc3589x MFD device
   30  - interrupt-controller : marks the device node as an interrupt controller
   31  - #interrupt-cells : should be <2>, the first cell is the IRQ offset on this
   32    TC3589x GPIO interrupt controller, the second cell is the interrupt flags
   33    in accordance with <dt-bindings/interrupt-controller/irq.h>. The following
   34    flags are valid:
   35    - IRQ_TYPE_LEVEL_LOW
   36    - IRQ_TYPE_LEVEL_HIGH
   37    - IRQ_TYPE_EDGE_RISING
   38    - IRQ_TYPE_EDGE_FALLING
   39    - IRQ_TYPE_EDGE_BOTH
   40  - gpio-controller : marks the device node as a GPIO controller
   41  - #gpio-cells : should be <2>, the first cell is the GPIO offset on this
   42    GPIO controller, the second cell is the flags.
   43 
   44 - Keypad
   45   This keypad is the same on all variants, supporting up to 96 different
   46   keys. The linux-specific properties are modeled on those already existing
   47   in other input drivers.
   48  - compatible : must be "toshiba,tc3589x-keypad"
   49  - debounce-delay-ms : debounce interval in milliseconds
   50  - keypad,num-rows : number of rows in the matrix, see
   51    bindings/input/matrix-keymap.txt
   52  - keypad,num-columns : number of columns in the matrix, see
   53    bindings/input/matrix-keymap.txt
   54  - linux,keymap: the definition can be found in
   55    bindings/input/matrix-keymap.txt
   56  - 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 
   60 Example:
   61 
   62 tc35893@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 = <0x0301006b
   88                                 0x04010066
   89                                 0x06040072
   90                                 0x040200d7
   91                                 0x0303006a
   92                                 0x0205000e
   93                                 0x0607008b
   94                                 0x0500001c
   95                                 0x0403000b
   96                                 0x03040034
   97                                 0x05020067
   98                                 0x0305006c
   99                                 0x040500e7
  100                                 0x0005009e
  101                                 0x06020073
  102                                 0x01030039
  103                                 0x07060069
  104                                 0x050500d9>;
  105                 wakeup-source;
  106         };
  107 };

Cache object: 70d19174583d5f67eecb5756b5b75e51


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.