diff options
Diffstat (limited to 'Documentation/devicetree/bindings/gpio')
6 files changed, 253 insertions, 6 deletions
diff --git a/Documentation/devicetree/bindings/gpio/gpio-mm-lantiq.txt b/Documentation/devicetree/bindings/gpio/gpio-mm-lantiq.txt new file mode 100644 index 000000000000..f93d51478d5a --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-mm-lantiq.txt | |||
@@ -0,0 +1,38 @@ | |||
1 | Lantiq SoC External Bus memory mapped GPIO controller | ||
2 | |||
3 | By attaching hardware latches to the EBU it is possible to create output | ||
4 | only gpios. This driver configures a special memory address, which when | ||
5 | written to outputs 16 bit to the latches. | ||
6 | |||
7 | The node describing the memory mapped GPIOs needs to be a child of the node | ||
8 | describing the "lantiq,localbus". | ||
9 | |||
10 | Required properties: | ||
11 | - compatible : Should be "lantiq,gpio-mm-lantiq" | ||
12 | - reg : Address and length of the register set for the device | ||
13 | - #gpio-cells : Should be two. The first cell is the pin number and | ||
14 | the second cell is used to specify optional parameters (currently | ||
15 | unused). | ||
16 | - gpio-controller : Marks the device node as a gpio controller. | ||
17 | |||
18 | Optional properties: | ||
19 | - lantiq,shadow : The default value that we shall assume as already set on the | ||
20 | shift register cascade. | ||
21 | |||
22 | Example: | ||
23 | |||
24 | localbus@0 { | ||
25 | #address-cells = <2>; | ||
26 | #size-cells = <1>; | ||
27 | ranges = <0 0 0x0 0x3ffffff /* addrsel0 */ | ||
28 | 1 0 0x4000000 0x4000010>; /* addsel1 */ | ||
29 | compatible = "lantiq,localbus", "simple-bus"; | ||
30 | |||
31 | gpio_mm0: gpio@4000000 { | ||
32 | compatible = "lantiq,gpio-mm"; | ||
33 | reg = <1 0x0 0x10>; | ||
34 | gpio-controller; | ||
35 | #gpio-cells = <2>; | ||
36 | lantiq,shadow = <0x77f> | ||
37 | }; | ||
38 | } | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio-mxs.txt b/Documentation/devicetree/bindings/gpio/gpio-mxs.txt new file mode 100644 index 000000000000..0c35673f7a3e --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-mxs.txt | |||
@@ -0,0 +1,87 @@ | |||
1 | * Freescale MXS GPIO controller | ||
2 | |||
3 | The Freescale MXS GPIO controller is part of MXS PIN controller. The | ||
4 | GPIOs are organized in port/bank. Each port consists of 32 GPIOs. | ||
5 | |||
6 | As the GPIO controller is embedded in the PIN controller and all the | ||
7 | GPIO ports share the same IO space with PIN controller, the GPIO node | ||
8 | will be represented as sub-nodes of MXS pinctrl node. | ||
9 | |||
10 | Required properties for GPIO node: | ||
11 | - compatible : Should be "fsl,<soc>-gpio". The supported SoCs include | ||
12 | imx23 and imx28. | ||
13 | - interrupts : Should be the port interrupt shared by all 32 pins. | ||
14 | - gpio-controller : Marks the device node as a gpio controller. | ||
15 | - #gpio-cells : Should be two. The first cell is the pin number and | ||
16 | the second cell is used to specify optional parameters (currently | ||
17 | unused). | ||
18 | - interrupt-controller: Marks the device node as an interrupt controller. | ||
19 | - #interrupt-cells : Should be 2. The first cell is the GPIO number. | ||
20 | The second cell bits[3:0] is used to specify trigger type and level flags: | ||
21 | 1 = low-to-high edge triggered. | ||
22 | 2 = high-to-low edge triggered. | ||
23 | 4 = active high level-sensitive. | ||
24 | 8 = active low level-sensitive. | ||
25 | |||
26 | Note: Each GPIO port should have an alias correctly numbered in "aliases" | ||
27 | node. | ||
28 | |||
29 | Examples: | ||
30 | |||
31 | aliases { | ||
32 | gpio0 = &gpio0; | ||
33 | gpio1 = &gpio1; | ||
34 | gpio2 = &gpio2; | ||
35 | gpio3 = &gpio3; | ||
36 | gpio4 = &gpio4; | ||
37 | }; | ||
38 | |||
39 | pinctrl@80018000 { | ||
40 | compatible = "fsl,imx28-pinctrl", "simple-bus"; | ||
41 | reg = <0x80018000 2000>; | ||
42 | |||
43 | gpio0: gpio@0 { | ||
44 | compatible = "fsl,imx28-gpio"; | ||
45 | interrupts = <127>; | ||
46 | gpio-controller; | ||
47 | #gpio-cells = <2>; | ||
48 | interrupt-controller; | ||
49 | #interrupt-cells = <2>; | ||
50 | }; | ||
51 | |||
52 | gpio1: gpio@1 { | ||
53 | compatible = "fsl,imx28-gpio"; | ||
54 | interrupts = <126>; | ||
55 | gpio-controller; | ||
56 | #gpio-cells = <2>; | ||
57 | interrupt-controller; | ||
58 | #interrupt-cells = <2>; | ||
59 | }; | ||
60 | |||
61 | gpio2: gpio@2 { | ||
62 | compatible = "fsl,imx28-gpio"; | ||
63 | interrupts = <125>; | ||
64 | gpio-controller; | ||
65 | #gpio-cells = <2>; | ||
66 | interrupt-controller; | ||
67 | #interrupt-cells = <2>; | ||
68 | }; | ||
69 | |||
70 | gpio3: gpio@3 { | ||
71 | compatible = "fsl,imx28-gpio"; | ||
72 | interrupts = <124>; | ||
73 | gpio-controller; | ||
74 | #gpio-cells = <2>; | ||
75 | interrupt-controller; | ||
76 | #interrupt-cells = <2>; | ||
77 | }; | ||
78 | |||
79 | gpio4: gpio@4 { | ||
80 | compatible = "fsl,imx28-gpio"; | ||
81 | interrupts = <123>; | ||
82 | gpio-controller; | ||
83 | #gpio-cells = <2>; | ||
84 | interrupt-controller; | ||
85 | #interrupt-cells = <2>; | ||
86 | }; | ||
87 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio-nmk.txt b/Documentation/devicetree/bindings/gpio/gpio-nmk.txt new file mode 100644 index 000000000000..ee87467ad8d6 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-nmk.txt | |||
@@ -0,0 +1,31 @@ | |||
1 | Nomadik GPIO controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : Should be "st,nomadik-gpio". | ||
5 | - reg : Physical base address and length of the controller's registers. | ||
6 | - interrupts : The interrupt outputs from the controller. | ||
7 | - #gpio-cells : Should be two: | ||
8 | The first cell is the pin number. | ||
9 | The second cell is used to specify optional parameters: | ||
10 | - bits[3:0] trigger type and level flags: | ||
11 | 1 = low-to-high edge triggered. | ||
12 | 2 = high-to-low edge triggered. | ||
13 | 4 = active high level-sensitive. | ||
14 | 8 = active low level-sensitive. | ||
15 | - gpio-controller : Marks the device node as a GPIO controller. | ||
16 | - interrupt-controller : Marks the device node as an interrupt controller. | ||
17 | - gpio-bank : Specifies which bank a controller owns. | ||
18 | - st,supports-sleepmode : Specifies whether controller can sleep or not | ||
19 | |||
20 | Example: | ||
21 | |||
22 | gpio1: gpio@8012e080 { | ||
23 | compatible = "st,nomadik-gpio"; | ||
24 | reg = <0x8012e080 0x80>; | ||
25 | interrupts = <0 120 0x4>; | ||
26 | #gpio-cells = <2>; | ||
27 | gpio-controller; | ||
28 | interrupt-controller; | ||
29 | supports-sleepmode; | ||
30 | gpio-bank = <1>; | ||
31 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio-stp-xway.txt b/Documentation/devicetree/bindings/gpio/gpio-stp-xway.txt new file mode 100644 index 000000000000..854de130a971 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-stp-xway.txt | |||
@@ -0,0 +1,42 @@ | |||
1 | Lantiq SoC Serial To Parallel (STP) GPIO controller | ||
2 | |||
3 | The Serial To Parallel (STP) is found on MIPS based Lantiq socs. It is a | ||
4 | peripheral controller used to drive external shift register cascades. At most | ||
5 | 3 groups of 8 bits can be driven. The hardware is able to allow the DSL modem | ||
6 | to drive the 2 LSBs of the cascade automatically. | ||
7 | |||
8 | |||
9 | Required properties: | ||
10 | - compatible : Should be "lantiq,gpio-stp-xway" | ||
11 | - reg : Address and length of the register set for the device | ||
12 | - #gpio-cells : Should be two. The first cell is the pin number and | ||
13 | the second cell is used to specify optional parameters (currently | ||
14 | unused). | ||
15 | - gpio-controller : Marks the device node as a gpio controller. | ||
16 | |||
17 | Optional properties: | ||
18 | - lantiq,shadow : The default value that we shall assume as already set on the | ||
19 | shift register cascade. | ||
20 | - lantiq,groups : Set the 3 bit mask to select which of the 3 groups are enabled | ||
21 | in the shift register cascade. | ||
22 | - lantiq,dsl : The dsl core can control the 2 LSBs of the gpio cascade. This 2 bit | ||
23 | property can enable this feature. | ||
24 | - lantiq,phy1 : The gphy1 core can control 3 bits of the gpio cascade. | ||
25 | - lantiq,phy2 : The gphy2 core can control 3 bits of the gpio cascade. | ||
26 | - lantiq,rising : use rising instead of falling edge for the shift register | ||
27 | |||
28 | Example: | ||
29 | |||
30 | gpio1: stp@E100BB0 { | ||
31 | compatible = "lantiq,gpio-stp-xway"; | ||
32 | reg = <0xE100BB0 0x40>; | ||
33 | #gpio-cells = <2>; | ||
34 | gpio-controller; | ||
35 | |||
36 | lantiq,shadow = <0xffff>; | ||
37 | lantiq,groups = <0x7>; | ||
38 | lantiq,dsl = <0x3>; | ||
39 | lantiq,phy1 = <0x7>; | ||
40 | lantiq,phy2 = <0x7>; | ||
41 | /* lantiq,rising; */ | ||
42 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio_lpc32xx.txt b/Documentation/devicetree/bindings/gpio/gpio_lpc32xx.txt new file mode 100644 index 000000000000..49819367a011 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio_lpc32xx.txt | |||
@@ -0,0 +1,43 @@ | |||
1 | NXP LPC32xx SoC GPIO controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: must be "nxp,lpc3220-gpio" | ||
5 | - reg: Physical base address and length of the controller's registers. | ||
6 | - gpio-controller: Marks the device node as a GPIO controller. | ||
7 | - #gpio-cells: Should be 3: | ||
8 | 1) bank: | ||
9 | 0: GPIO P0 | ||
10 | 1: GPIO P1 | ||
11 | 2: GPIO P2 | ||
12 | 3: GPIO P3 | ||
13 | 4: GPI P3 | ||
14 | 5: GPO P3 | ||
15 | 2) pin number | ||
16 | 3) optional parameters: | ||
17 | - bit 0 specifies polarity (0 for normal, 1 for inverted) | ||
18 | - reg: Index of the GPIO group | ||
19 | |||
20 | Example: | ||
21 | |||
22 | gpio: gpio@40028000 { | ||
23 | compatible = "nxp,lpc3220-gpio"; | ||
24 | reg = <0x40028000 0x1000>; | ||
25 | gpio-controller; | ||
26 | #gpio-cells = <3>; /* bank, pin, flags */ | ||
27 | }; | ||
28 | |||
29 | leds { | ||
30 | compatible = "gpio-leds"; | ||
31 | |||
32 | led0 { | ||
33 | gpios = <&gpio 5 1 1>; /* GPO_P3 1, active low */ | ||
34 | linux,default-trigger = "heartbeat"; | ||
35 | default-state = "off"; | ||
36 | }; | ||
37 | |||
38 | led1 { | ||
39 | gpios = <&gpio 5 14 1>; /* GPO_P3 14, active low */ | ||
40 | linux,default-trigger = "timer"; | ||
41 | default-state = "off"; | ||
42 | }; | ||
43 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt index 1e34cfe5ebea..05428f39d9ac 100644 --- a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt +++ b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt | |||
@@ -3,19 +3,25 @@ | |||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : Should be "mrvl,pxa-gpio" or "mrvl,mmp-gpio" | 4 | - compatible : Should be "mrvl,pxa-gpio" or "mrvl,mmp-gpio" |
5 | - reg : Address and length of the register set for the device | 5 | - reg : Address and length of the register set for the device |
6 | - interrupts : Should be the port interrupt shared by all gpio pins, if | 6 | - interrupts : Should be the port interrupt shared by all gpio pins. |
7 | - interrupt-name : Should be the name of irq resource. | 7 | There're three gpio interrupts in arch-pxa, and they're gpio0, |
8 | one number. | 8 | gpio1 and gpio_mux. There're only one gpio interrupt in arch-mmp, |
9 | gpio_mux. | ||
10 | - interrupt-name : Should be the name of irq resource. Each interrupt | ||
11 | binds its interrupt-name. | ||
12 | - interrupt-controller : Identifies the node as an interrupt controller. | ||
13 | - #interrupt-cells: Specifies the number of cells needed to encode an | ||
14 | interrupt source. | ||
9 | - gpio-controller : Marks the device node as a gpio controller. | 15 | - gpio-controller : Marks the device node as a gpio controller. |
10 | - #gpio-cells : Should be one. It is the pin number. | 16 | - #gpio-cells : Should be one. It is the pin number. |
11 | 17 | ||
12 | Example: | 18 | Example: |
13 | 19 | ||
14 | gpio: gpio@d4019000 { | 20 | gpio: gpio@d4019000 { |
15 | compatible = "mrvl,mmp-gpio", "mrvl,pxa-gpio"; | 21 | compatible = "mrvl,mmp-gpio"; |
16 | reg = <0xd4019000 0x1000>; | 22 | reg = <0xd4019000 0x1000>; |
17 | interrupts = <49>, <17>, <18>; | 23 | interrupts = <49>; |
18 | interrupt-name = "gpio_mux", "gpio0", "gpio1"; | 24 | interrupt-name = "gpio_mux"; |
19 | gpio-controller; | 25 | gpio-controller; |
20 | #gpio-cells = <1>; | 26 | #gpio-cells = <1>; |
21 | interrupt-controller; | 27 | interrupt-controller; |