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