diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-07 13:53:00 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-07 13:53:00 -0400 |
commit | 27c7651a6a5f143eccd66db38c7a3035e1f8bcfb (patch) | |
tree | c20d3525a2933a8ea7e9ab03022c432b18e0e48a /Documentation | |
parent | 8b8a7df9a1d87ba413fce246b11f54c636bb456a (diff) | |
parent | 65d876564e989b63b0f769e0e06b9830db97b2d9 (diff) |
Merge tag 'gpio-v3.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio
Pull GPIO updates from Linus Walleij:
"This is the bulk of GPIO changes for the v3.12 series:
- A new driver for the TZ1090 PDC which is used on the metag
architecture.
- A new driver for the Kontron ETX or COMexpress GPIO block. This is
found on some ETX x86 devices.
- A new driver for the Fintek Super-I/O chips, used on some x86
boards.
- Added device tree probing on a few select GPIO blocks.
- Drop the Exynos support from the Samsung GPIO driver.
The Samsung maintainers have moved over to use the modernized pin
control driver to provide GPIO for the modern platforms instead.
- The usual bunch of non-critical fixes and cleanups"
* tag 'gpio-v3.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (36 commits)
gpio: return -ENOTSUPP if debounce cannot be set
gpio: improve error path in gpiolib
gpio: add GPIO support for F71882FG and F71889F
of: add vendor prefix for Microchip Technology Inc
gpio: mcp23s08: rename the device tree property
gpio: samsung: Drop support for Exynos SoCs
gpio: pcf857x: Remove pdata argument to pcf857x_irq_domain_init()
gpio: pcf857x: Sort headers alphabetically
gpio: max7301: Reverting "Do not force SPI speed when using OF Platform"
gpio: Fix bit masking in Kontron PLD GPIO driver
gpio: pca953x: fix gpio input on gpio offsets >= 8
drivers/gpio: simplify use of devm_ioremap_resource
drivers/gpio/gpio-omap.c: convert comma to semicolon
gpio-lynxpoint: Fix warning about unbalanced pm_runtime_enable
gpio: Fix platform driver name in Kontron PLD GPIO driver
gpio: adnp: Fix segfault if request_threaded_irq fails
gpio: msm: Staticize local variable 'msm_gpio'
gpio: gpiolib-of.c: make error message more meaningful by adding the node name and index
gpio: use dev_get_platdata()
gpio/mxc: add chained_irq_enter/exit() to mx2_gpio_irq_handler
...
Diffstat (limited to 'Documentation')
7 files changed, 191 insertions, 11 deletions
diff --git a/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt b/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt index 629d0ef17308..daa30174bcc1 100644 --- a/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt +++ b/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt | |||
@@ -3,10 +3,17 @@ Microchip MCP2308/MCP23S08/MCP23017/MCP23S17 driver for | |||
3 | 3 | ||
4 | Required properties: | 4 | Required properties: |
5 | - compatible : Should be | 5 | - compatible : Should be |
6 | - "mcp,mcp23s08" for 8 GPIO SPI version | 6 | - "mcp,mcp23s08" (DEPRECATED) for 8 GPIO SPI version |
7 | - "mcp,mcp23s17" for 16 GPIO SPI version | 7 | - "mcp,mcp23s17" (DEPRECATED) for 16 GPIO SPI version |
8 | - "mcp,mcp23008" for 8 GPIO I2C version or | 8 | - "mcp,mcp23008" (DEPRECATED) for 8 GPIO I2C version or |
9 | - "mcp,mcp23017" for 16 GPIO I2C version of the chip | 9 | - "mcp,mcp23017" (DEPRECATED) for 16 GPIO I2C version of the chip |
10 | |||
11 | - "microchip,mcp23s08" for 8 GPIO SPI version | ||
12 | - "microchip,mcp23s17" for 16 GPIO SPI version | ||
13 | - "microchip,mcp23008" for 8 GPIO I2C version or | ||
14 | - "microchip,mcp23017" for 16 GPIO I2C version of the chip | ||
15 | NOTE: Do not use the old mcp prefix any more. It is deprecated and will be | ||
16 | removed. | ||
10 | - #gpio-cells : Should be two. | 17 | - #gpio-cells : Should be two. |
11 | - first cell is the pin number | 18 | - first cell is the pin number |
12 | - second cell is used to specify flags. Flags are currently unused. | 19 | - second cell is used to specify flags. Flags are currently unused. |
@@ -15,10 +22,11 @@ Required properties: | |||
15 | SPI uses this to specify the chipselect line which the chip is | 22 | SPI uses this to specify the chipselect line which the chip is |
16 | connected to. The driver and the SPI variant of the chip support | 23 | connected to. The driver and the SPI variant of the chip support |
17 | multiple chips on the same chipselect. Have a look at | 24 | multiple chips on the same chipselect. Have a look at |
18 | mcp,spi-present-mask below. | 25 | microchip,spi-present-mask below. |
19 | 26 | ||
20 | Required device specific properties (only for SPI chips): | 27 | Required device specific properties (only for SPI chips): |
21 | - mcp,spi-present-mask : This is a present flag, that makes only sense for SPI | 28 | - mcp,spi-present-mask (DEPRECATED) |
29 | - microchip,spi-present-mask : This is a present flag, that makes only sense for SPI | ||
22 | chips - as the name suggests. Multiple SPI chips can share the same | 30 | chips - as the name suggests. Multiple SPI chips can share the same |
23 | SPI chipselect. Set a bit in bit0-7 in this mask to 1 if there is a | 31 | SPI chipselect. Set a bit in bit0-7 in this mask to 1 if there is a |
24 | chip connected with the corresponding spi address set. For example if | 32 | chip connected with the corresponding spi address set. For example if |
@@ -26,11 +34,13 @@ Required device specific properties (only for SPI chips): | |||
26 | which is 0x08. mcp23s08 chip variant only supports bits 0-3. It is not | 34 | which is 0x08. mcp23s08 chip variant only supports bits 0-3. It is not |
27 | possible to mix mcp23s08 and mcp23s17 on the same chipselect. Set at | 35 | possible to mix mcp23s08 and mcp23s17 on the same chipselect. Set at |
28 | least one bit to 1 for SPI chips. | 36 | least one bit to 1 for SPI chips. |
37 | NOTE: Do not use the old mcp prefix any more. It is deprecated and will be | ||
38 | removed. | ||
29 | - spi-max-frequency = The maximum frequency this chip is able to handle | 39 | - spi-max-frequency = The maximum frequency this chip is able to handle |
30 | 40 | ||
31 | Example I2C: | 41 | Example I2C: |
32 | gpiom1: gpio@20 { | 42 | gpiom1: gpio@20 { |
33 | compatible = "mcp,mcp23017"; | 43 | compatible = "microchip,mcp23017"; |
34 | gpio-controller; | 44 | gpio-controller; |
35 | #gpio-cells = <2>; | 45 | #gpio-cells = <2>; |
36 | reg = <0x20>; | 46 | reg = <0x20>; |
@@ -38,7 +48,7 @@ gpiom1: gpio@20 { | |||
38 | 48 | ||
39 | Example SPI: | 49 | Example SPI: |
40 | gpiom1: gpio@0 { | 50 | gpiom1: gpio@0 { |
41 | compatible = "mcp,mcp23s17"; | 51 | compatible = "microchip,mcp23s17"; |
42 | gpio-controller; | 52 | gpio-controller; |
43 | #gpio-cells = <2>; | 53 | #gpio-cells = <2>; |
44 | spi-present-mask = <0x01>; | 54 | spi-present-mask = <0x01>; |
diff --git a/Documentation/devicetree/bindings/gpio/gpio-palmas.txt b/Documentation/devicetree/bindings/gpio/gpio-palmas.txt new file mode 100644 index 000000000000..08b5b52a3ae0 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-palmas.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | Palmas GPIO controller bindings | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: | ||
5 | - "ti,palams-gpio" for palma series of the GPIO controller | ||
6 | - "ti,tps80036-gpio" for Palma series device TPS80036. | ||
7 | - "ti,tps65913-gpio" for palma series device TPS65913. | ||
8 | - "ti,tps65914-gpio" for palma series device TPS65914. | ||
9 | - #gpio-cells : Should be two. | ||
10 | - first cell is the gpio pin number | ||
11 | - second cell is used to specify the gpio polarity: | ||
12 | 0 = active high | ||
13 | 1 = active low | ||
14 | - gpio-controller : Marks the device node as a GPIO controller. | ||
15 | |||
16 | Note: This gpio node will be sub node of palmas node. | ||
17 | |||
18 | Example: | ||
19 | palmas: tps65913@58 { | ||
20 | ::::::::::: | ||
21 | palmas_gpio: palmas_gpio { | ||
22 | compatible = "ti,palmas-gpio"; | ||
23 | gpio-controller; | ||
24 | #gpio-cells = <2>; | ||
25 | }; | ||
26 | ::::::::::: | ||
27 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio-tz1090-pdc.txt b/Documentation/devicetree/bindings/gpio/gpio-tz1090-pdc.txt new file mode 100644 index 000000000000..1fd98ffa8cb7 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-tz1090-pdc.txt | |||
@@ -0,0 +1,45 @@ | |||
1 | ImgTec TZ1090 PDC GPIO Controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Compatible property value should be "img,tz1090-pdc-gpio". | ||
5 | |||
6 | - reg: Physical base address of the controller and length of memory mapped | ||
7 | region. This starts at and cover the SOC_GPIO_CONTROL registers. | ||
8 | |||
9 | - gpio-controller: Specifies that the node is a gpio controller. | ||
10 | |||
11 | - #gpio-cells: Should be 2. The syntax of the gpio specifier used by client | ||
12 | nodes should have the following values. | ||
13 | <[phandle of the gpio controller node] | ||
14 | [PDC gpio number] | ||
15 | [gpio flags]> | ||
16 | |||
17 | Values for gpio specifier: | ||
18 | - GPIO number: a value in the range 0 to 6. | ||
19 | - GPIO flags: bit field of flags, as defined in <dt-bindings/gpio/gpio.h>. | ||
20 | Only the following flags are supported: | ||
21 | GPIO_ACTIVE_HIGH | ||
22 | GPIO_ACTIVE_LOW | ||
23 | |||
24 | Optional properties: | ||
25 | - gpio-ranges: Mapping to pin controller pins (as described in | ||
26 | Documentation/devicetree/bindings/gpio/gpio.txt) | ||
27 | |||
28 | - interrupts: Individual syswake interrupts (other GPIOs cannot interrupt) | ||
29 | |||
30 | |||
31 | Example: | ||
32 | |||
33 | pdc_gpios: gpio-controller@02006500 { | ||
34 | gpio-controller; | ||
35 | #gpio-cells = <2>; | ||
36 | |||
37 | compatible = "img,tz1090-pdc-gpio"; | ||
38 | reg = <0x02006500 0x100>; | ||
39 | |||
40 | interrupt-parent = <&pdc>; | ||
41 | interrupts = <8 IRQ_TYPE_NONE>, /* Syswake 0 */ | ||
42 | <9 IRQ_TYPE_NONE>, /* Syswake 1 */ | ||
43 | <10 IRQ_TYPE_NONE>; /* Syswake 2 */ | ||
44 | gpio-ranges = <&pdc_pinctrl 0 0 7>; | ||
45 | }; | ||
diff --git a/Documentation/devicetree/bindings/gpio/gpio-tz1090.txt b/Documentation/devicetree/bindings/gpio/gpio-tz1090.txt new file mode 100644 index 000000000000..174cdf309170 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-tz1090.txt | |||
@@ -0,0 +1,88 @@ | |||
1 | ImgTec TZ1090 GPIO Controller | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: Compatible property value should be "img,tz1090-gpio". | ||
5 | |||
6 | - reg: Physical base address of the controller and length of memory mapped | ||
7 | region. | ||
8 | |||
9 | - #address-cells: Should be 1 (for bank subnodes) | ||
10 | |||
11 | - #size-cells: Should be 0 (for bank subnodes) | ||
12 | |||
13 | - Each bank of GPIOs should have a subnode to represent it. | ||
14 | |||
15 | Bank subnode required properties: | ||
16 | - reg: Index of bank in the range 0 to 2. | ||
17 | |||
18 | - gpio-controller: Specifies that the node is a gpio controller. | ||
19 | |||
20 | - #gpio-cells: Should be 2. The syntax of the gpio specifier used by client | ||
21 | nodes should have the following values. | ||
22 | <[phandle of the gpio controller node] | ||
23 | [gpio number within the gpio bank] | ||
24 | [gpio flags]> | ||
25 | |||
26 | Values for gpio specifier: | ||
27 | - GPIO number: a value in the range 0 to 29. | ||
28 | - GPIO flags: bit field of flags, as defined in <dt-bindings/gpio/gpio.h>. | ||
29 | Only the following flags are supported: | ||
30 | GPIO_ACTIVE_HIGH | ||
31 | GPIO_ACTIVE_LOW | ||
32 | |||
33 | Bank subnode optional properties: | ||
34 | - gpio-ranges: Mapping to pin controller pins (as described in | ||
35 | Documentation/devicetree/bindings/gpio/gpio.txt) | ||
36 | |||
37 | - interrupts: Interrupt for the entire bank | ||
38 | |||
39 | - interrupt-controller: Specifies that the node is an interrupt controller | ||
40 | |||
41 | - #interrupt-cells: Should be 2. The syntax of the interrupt specifier used by | ||
42 | client nodes should have the following values. | ||
43 | <[phandle of the interurupt controller] | ||
44 | [gpio number within the gpio bank] | ||
45 | [irq flags]> | ||
46 | |||
47 | Values for irq specifier: | ||
48 | - GPIO number: a value in the range 0 to 29 | ||
49 | - IRQ flags: value to describe edge and level triggering, as defined in | ||
50 | <dt-bindings/interrupt-controller/irq.h>. Only the following flags are | ||
51 | supported: | ||
52 | IRQ_TYPE_EDGE_RISING | ||
53 | IRQ_TYPE_EDGE_FALLING | ||
54 | IRQ_TYPE_EDGE_BOTH | ||
55 | IRQ_TYPE_LEVEL_HIGH | ||
56 | IRQ_TYPE_LEVEL_LOW | ||
57 | |||
58 | |||
59 | |||
60 | Example: | ||
61 | |||
62 | gpios: gpio-controller@02005800 { | ||
63 | #address-cells = <1>; | ||
64 | #size-cells = <0>; | ||
65 | compatible = "img,tz1090-gpio"; | ||
66 | reg = <0x02005800 0x90>; | ||
67 | |||
68 | /* bank 0 with an interrupt */ | ||
69 | gpios0: bank@0 { | ||
70 | #gpio-cells = <2>; | ||
71 | #interrupt-cells = <2>; | ||
72 | reg = <0>; | ||
73 | interrupts = <13 IRQ_TYPE_LEVEL_HIGH>; | ||
74 | gpio-controller; | ||
75 | gpio-ranges = <&pinctrl 0 0 30>; | ||
76 | interrupt-controller; | ||
77 | }; | ||
78 | |||
79 | /* bank 2 without interrupt */ | ||
80 | gpios2: bank@2 { | ||
81 | #gpio-cells = <2>; | ||
82 | reg = <2>; | ||
83 | gpio-controller; | ||
84 | gpio-ranges = <&pinctrl 0 60 30>; | ||
85 | }; | ||
86 | }; | ||
87 | |||
88 | |||
diff --git a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt index 9b3f1d4a88d6..66416261e14d 100644 --- a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt +++ b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt | |||
@@ -10,8 +10,9 @@ Required properties: | |||
10 | There're three gpio interrupts in arch-pxa, and they're gpio0, | 10 | There're three gpio interrupts in arch-pxa, and they're gpio0, |
11 | gpio1 and gpio_mux. There're only one gpio interrupt in arch-mmp, | 11 | gpio1 and gpio_mux. There're only one gpio interrupt in arch-mmp, |
12 | gpio_mux. | 12 | gpio_mux. |
13 | - interrupt-name : Should be the name of irq resource. Each interrupt | 13 | - interrupt-names : Should be the names of irq resources. Each interrupt |
14 | binds its interrupt-name. | 14 | uses its own interrupt name, so there should be as many interrupt names |
15 | as referenced interrups. | ||
15 | - interrupt-controller : Identifies the node as an interrupt controller. | 16 | - interrupt-controller : Identifies the node as an interrupt controller. |
16 | - #interrupt-cells: Specifies the number of cells needed to encode an | 17 | - #interrupt-cells: Specifies the number of cells needed to encode an |
17 | interrupt source. | 18 | interrupt source. |
@@ -24,7 +25,7 @@ Example: | |||
24 | compatible = "marvell,mmp-gpio"; | 25 | compatible = "marvell,mmp-gpio"; |
25 | reg = <0xd4019000 0x1000>; | 26 | reg = <0xd4019000 0x1000>; |
26 | interrupts = <49>; | 27 | interrupts = <49>; |
27 | interrupt-name = "gpio_mux"; | 28 | interrupt-names = "gpio_mux"; |
28 | gpio-controller; | 29 | gpio-controller; |
29 | #gpio-cells = <1>; | 30 | #gpio-cells = <1>; |
30 | interrupt-controller; | 31 | interrupt-controller; |
diff --git a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt index cb3dc7bcd8e6..8655df9440d5 100644 --- a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt +++ b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt | |||
@@ -23,6 +23,10 @@ Required Properties: | |||
23 | Please refer to gpio.txt in this directory for details of gpio-ranges property | 23 | Please refer to gpio.txt in this directory for details of gpio-ranges property |
24 | and the common GPIO bindings used by client devices. | 24 | and the common GPIO bindings used by client devices. |
25 | 25 | ||
26 | The GPIO controller also acts as an interrupt controller. It uses the default | ||
27 | two cells specifier as described in Documentation/devicetree/bindings/ | ||
28 | interrupt-controller/interrupts.txt. | ||
29 | |||
26 | Example: R8A7779 (R-Car H1) GPIO controller nodes | 30 | Example: R8A7779 (R-Car H1) GPIO controller nodes |
27 | 31 | ||
28 | gpio0: gpio@ffc40000 { | 32 | gpio0: gpio@ffc40000 { |
@@ -33,6 +37,8 @@ Example: R8A7779 (R-Car H1) GPIO controller nodes | |||
33 | #gpio-cells = <2>; | 37 | #gpio-cells = <2>; |
34 | gpio-controller; | 38 | gpio-controller; |
35 | gpio-ranges = <&pfc 0 0 32>; | 39 | gpio-ranges = <&pfc 0 0 32>; |
40 | interrupt-controller; | ||
41 | #interrupt-cells = <2>; | ||
36 | }; | 42 | }; |
37 | ... | 43 | ... |
38 | gpio6: gpio@ffc46000 { | 44 | gpio6: gpio@ffc46000 { |
@@ -43,4 +49,6 @@ Example: R8A7779 (R-Car H1) GPIO controller nodes | |||
43 | #gpio-cells = <2>; | 49 | #gpio-cells = <2>; |
44 | gpio-controller; | 50 | gpio-controller; |
45 | gpio-ranges = <&pfc 0 192 9>; | 51 | gpio-ranges = <&pfc 0 192 9>; |
52 | interrupt-controller; | ||
53 | #interrupt-cells = <2>; | ||
46 | }; | 54 | }; |
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index b571560ed5f9..2956800f0240 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt | |||
@@ -38,6 +38,7 @@ linux Linux-specific binding | |||
38 | lsi LSI Corp. (LSI Logic) | 38 | lsi LSI Corp. (LSI Logic) |
39 | marvell Marvell Technology Group Ltd. | 39 | marvell Marvell Technology Group Ltd. |
40 | maxim Maxim Integrated Products | 40 | maxim Maxim Integrated Products |
41 | microchip Microchip Technology Inc. | ||
41 | mosaixtech Mosaix Technologies, Inc. | 42 | mosaixtech Mosaix Technologies, Inc. |
42 | national National Semiconductor | 43 | national National Semiconductor |
43 | nintendo Nintendo | 44 | nintendo Nintendo |