Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / gpio / gpio-uniphier.txt
1 UniPhier GPIO controller
2
3 Required properties:
4 - compatible: Should be "socionext,uniphier-gpio".
5 - reg: Specifies offset and length of the register set for the device.
6 - gpio-controller: Marks the device node as a GPIO controller.
7 - #gpio-cells: Should be 2.  The first cell is the pin number and the second
8   cell is used to specify optional parameters.
9 - interrupt-controller: Marks the device node as an interrupt controller.
10 - #interrupt-cells: Should be 2.  The first cell defines the interrupt number.
11   The second cell bits[3:0] is used to specify trigger type as follows:
12     1 = low-to-high edge triggered
13     2 = high-to-low edge triggered
14     4 = active high level-sensitive
15     8 = active low level-sensitive
16   Valid combinations are 1, 2, 3, 4, 8.
17 - ngpios: Specifies the number of GPIO lines.
18 - gpio-ranges: Mapping to pin controller pins (as described in gpio.txt)
19 - socionext,interrupt-ranges: Specifies an interrupt number mapping between
20   this GPIO controller and its interrupt parent, in the form of arbitrary
21   number of <child-interrupt-base parent-interrupt-base length> triplets.
22
23 Optional properties:
24 - gpio-ranges-group-names: Used for named gpio ranges (as described in gpio.txt)
25
26 Example:
27         gpio: gpio@55000000 {
28                 compatible = "socionext,uniphier-gpio";
29                 reg = <0x55000000 0x200>;
30                 interrupt-parent = <&aidet>;
31                 interrupt-controller;
32                 #interrupt-cells = <2>;
33                 gpio-controller;
34                 #gpio-cells = <2>;
35                 gpio-ranges = <&pinctrl 0 0 0>;
36                 gpio-ranges-group-names = "gpio_range";
37                 ngpios = <248>;
38                 socionext,interrupt-ranges = <0 48 16>, <16 154 5>, <21 217 3>;
39         };
40
41 Consumer Example:
42
43         sdhci0_pwrseq {
44                 compatible = "mmc-pwrseq-emmc";
45                 reset-gpios = <&gpio UNIPHIER_GPIO_PORT(29, 4) GPIO_ACTIVE_LOW>;
46         };
47
48 Please note UNIPHIER_GPIO_PORT(29, 4) represents PORT294 in the SoC document.
49 Unfortunately, only the one's place is octal in the port numbering.  (That is,
50 PORT 8, 9, 18, 19, 28, 29, ... are missing.)  UNIPHIER_GPIO_PORT() is a helper
51 macro to calculate 29 * 8 + 4.