projects/linux·commit 8e509660

Merge tag 'gpio-v3.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio

8e509660 · Linus Torvalds <[email protected]> · 2014-01-21 09:40:46 -08:00

Pull GPIO tree bulk changes from Linus Walleij:
 "A big set this merge window, as we have much going on in this
  subsystem.  The changes to other subsystems (notably a slew of ARM
  machines as I am doing away with their custom APIs) have all been
  ACKed to the extent possible.

  Major changes this time:

   - Some core improvements and cleanups to the new GPIO descriptor API.
     This seems to be working now so we can start the exodus to this
     API, moving gradually away from the global GPIO numberspace.

   - Incremental improvements to the ACPI GPIO core, and move the few
     GPIO ACPI clients we have to the GPIO descriptor API right *now*
     before we go any further.  We actually managed to contain this
     *before* we started to litter the kernel with yet another hackish
     global numberspace for the ACPI GPIOs, which is a big win.

   - The RFkill GPIO driver and all platforms using it have been
     migrated to use the GPIO descriptors rather than fixed number
     assignments.  Tegra machine has been migrated as part of this.

   - New drivers for MOXA ART, Xtensa GPIO32 and SMSC SCH311x.  Those
     should be really good examples of how I expect a nice GPIO driver
     to look these days.

   - Do away with custom GPIO implementations on a major part of the ARM
     machines: ks8695, lpc32xx, mv78xx0.  Make a first step towards the
     same in the horribly convoluted Samsung S3C include forest.  We
     expect to continue to clean this up as we move forward.

   - Flag GPIO lines used for IRQ on adnp, bcm-kona, em, intel-mid and
     lynxpoint.

     This makes the GPIOlib core aware that a certain GPIO line is used
     for IRQs and can then enforce some semantics such as disallowing a
     GPIO line marked as in use for IRQ to be switched to output mode.

   - Drop all use of irq_set_chip_and_handler_name().  The name provided
     in these cases were just unhelpful tags like "mux" or "demux".

   - Extend the MCP23s08 driver to handle interrupts.

   - Minor incremental improvements for rcar, lynxpoint, em 74x164 and
     msm drivers.

   - Some non-urgent bug fixes here and there, duplicate #includes and
     that usual kind of cleanups"

Fix up broken Kconfig file manually to make this all compile.

* tag 'gpio-v3.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (71 commits)
  gpio: mcp23s08: fix casting caused build warning
  gpio: mcp23s08: depend on OF_GPIO
  gpio: mcp23s08: Add irq functionality for i2c chips
  ARM: S5P[v210|c100|64x0]: Fix build error
  gpio: pxa: clamp gpio get value to [0,1]
  ARM: s3c24xx: explicit dependency on <plat/gpio-cfg.h>
  ARM: S3C[24|64]xx: move includes back under <mach/> scope
  Documentation / ACPI: update to GPIO descriptor API
  gpio / ACPI: get rid of acpi_gpio.h
  gpio / ACPI: register to ACPI events automatically
  mmc: sdhci-acpi: convert to use GPIO descriptor API
  ARM: s3c24xx: fix build error
  gpio: f7188x: set can_sleep attribute
  gpio: samsung: Update documentation
  gpio: samsung: Remove hardware.h inclusion
  gpio: xtensa: depend on HAVE_XTENSA_GPIO32
  gpio: clps711x: Enable driver compilation with COMPILE_TEST
  gpio: clps711x: Use of_match_ptr()
  net: rfkill: gpio: convert to descriptor-based GPIO interface
  leds: s3c24xx: Fix build failure
  ...
Commit
8e5096607280d4e103389bfe8f8b7decbf538ff6
Parents
02d0a752 · de755c33

Merge commit. Changes below are compared with the first parent: 02d0a752.

Changes

155 files changed · +1859 −676

FileStatusAddDelContent
Documentation/acpi/enumeration.txtmodified+7−29View file
Documentation/arm/Samsung-S3C24XX/GPIO.txtmodified+1−12View file
Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txtmodified+27−1View file
Documentation/devicetree/bindings/gpio/moxa,moxart-gpio.txtadded+19−0View file
Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txtmodified+2−1View file
Documentation/gpio/board.txtmodified+17−11View file
Documentation/gpio/consumer.txtmodified+5−1View file
arch/arm/Kconfigmodified+1−3View file
arch/arm/mach-ks8695/include/mach/gpio.hdeleted+0−19View before deletion
arch/arm/mach-lpc32xx/include/mach/gpio.hdeleted+0−6View before deletion
arch/arm/mach-lpc32xx/phy3250.cmodified+1−1View file
arch/arm/mach-mv78xx0/include/mach/gpio.hdeleted+0−9View before deletion
arch/arm/mach-s3c24xx/Kconfigmodified+0−21View file
arch/arm/mach-s3c24xx/common-smdk.cmodified+1−1View file
arch/arm/mach-s3c24xx/h1940-bluetooth.cmodified+2−0View file
arch/arm/mach-s3c24xx/include/mach/gpio.h → arch/arm/mach-s3c24xx/include/mach/gpio-samsung.hrenamed+8−18View file
arch/arm/mach-s3c24xx/mach-amlm5900.cmodified+1−0View file
arch/arm/mach-s3c24xx/mach-anubis.cmodified+1−0View file
arch/arm/mach-s3c24xx/mach-at2440evb.cmodified+1−0View file
arch/arm/mach-s3c24xx/mach-bast.cmodified+1−0View file
arch/arm/mach-s3c24xx/mach-gta02.cmodified+1−0View file
arch/arm/mach-s3c24xx/mach-h1940.cmodified+1−0View file
arch/arm/mach-s3c24xx/mach-jive.cmodified+1−0View file
arch/arm/mach-s3c24xx/mach-mini2440.cmodified+1−0View file
arch/arm/mach-s3c24xx/mach-n30.cmodified+1−0View file
arch/arm/mach-s3c24xx/mach-nexcoder.cmodified+1−0View file
arch/arm/mach-s3c24xx/mach-osiris-dvs.cmodified+1−0View file
arch/arm/mach-s3c24xx/mach-osiris.cmodified+1−0View file
arch/arm/mach-s3c24xx/mach-qt2410.cmodified+1−0View file
arch/arm/mach-s3c24xx/mach-rx1950.cmodified+2−0View file
arch/arm/mach-s3c24xx/mach-rx3715.cmodified+1−0View file
arch/arm/mach-s3c24xx/mach-smdk2413.cmodified+1−0View file
arch/arm/mach-s3c24xx/mach-smdk2416.cmodified+1−0View file
arch/arm/mach-s3c24xx/mach-vr1000.cmodified+1−0View file
arch/arm/mach-s3c24xx/pm-s3c2410.cmodified+2−0View file
arch/arm/mach-s3c24xx/pm.cmodified+1−0View file
arch/arm/mach-s3c24xx/s3c2410.cmodified+1−0View file
arch/arm/mach-s3c24xx/s3c2416.cmodified+1−0View file
arch/arm/mach-s3c24xx/s3c2440.cmodified+1−0View file
arch/arm/mach-s3c24xx/s3c2442.cmodified+1−0View file
arch/arm/mach-s3c24xx/s3c2443.cmodified+1−0View file
arch/arm/mach-s3c24xx/setup-i2c.cmodified+1−0View file
arch/arm/mach-s3c24xx/setup-sdhci-gpio.cmodified+1−0View file
arch/arm/mach-s3c24xx/setup-ts.cmodified+2−0View file
arch/arm/mach-s3c24xx/simtec-usb.cmodified+1−0View file
arch/arm/mach-s3c64xx/Kconfigmodified+0−3View file
arch/arm/mach-s3c64xx/common.cmodified+1−0View file
arch/arm/mach-s3c64xx/crag6410.hmodified+1−1View file
arch/arm/mach-s3c64xx/dev-audio.cmodified+1−0View file
arch/arm/mach-s3c64xx/include/mach/gpio.h → arch/arm/mach-s3c64xx/include/mach/gpio-samsung.hrenamed+5−4View file
arch/arm/mach-s3c64xx/mach-anw6410.cmodified+1−0View file
arch/arm/mach-s3c64xx/mach-crag6410.cmodified+1−1View file
arch/arm/mach-s3c64xx/mach-hmt.cmodified+1−0View file
arch/arm/mach-s3c64xx/mach-mini6410.cmodified+1−0View file
arch/arm/mach-s3c64xx/mach-real6410.cmodified+1−0View file
arch/arm/mach-s3c64xx/mach-smartq.cmodified+1−0View file
arch/arm/mach-s3c64xx/mach-smartq5.cmodified+1−0View file
arch/arm/mach-s3c64xx/mach-smartq7.cmodified+1−0View file
arch/arm/mach-s3c64xx/mach-smdk6400.cmodified+1−0View file
arch/arm/mach-s3c64xx/mach-smdk6410.cmodified+1−0View file
arch/arm/mach-s3c64xx/pm.cmodified+1−0View file
arch/arm/mach-s3c64xx/setup-fb-24bpp.cmodified+1−0View file
arch/arm/mach-s3c64xx/setup-i2c0.cmodified+1−0View file
arch/arm/mach-s3c64xx/setup-i2c1.cmodified+1−0View file
arch/arm/mach-s3c64xx/setup-ide.cmodified+1−0View file
arch/arm/mach-s3c64xx/setup-keypad.cmodified+1−0View file
arch/arm/mach-s3c64xx/setup-sdhci-gpio.cmodified+1−0View file
arch/arm/mach-s3c64xx/setup-spi.cmodified+1−0View file
arch/arm/mach-tegra/board-paz00.cmodified+11−0View file
arch/arm/plat-samsung/pm-gpio.cmodified+4−0View file
arch/arm/plat-samsung/setup-camif.cmodified+1−0View file
arch/xtensa/Kconfigmodified+6−0View file
drivers/gpio/Kconfigmodified+32−5View file
drivers/gpio/Makefilemodified+3−0View file
drivers/gpio/gpio-74x164.cmodified+18−41View file
drivers/gpio/gpio-adnp.cmodified+24−1View file
drivers/gpio/gpio-adp5520.cmodified+1−1View file
drivers/gpio/gpio-adp5588.cmodified+1−1View file
drivers/gpio/gpio-amd8111.cmodified+1−1View file
drivers/gpio/gpio-arizona.cmodified+1−1View file
drivers/gpio/gpio-bcm-kona.cmodified+22−0View file
drivers/gpio/gpio-bt8xx.cmodified+2−2View file
drivers/gpio/gpio-clps711x.cmodified+2−2View file
drivers/gpio/gpio-da9052.cmodified+1−1View file
drivers/gpio/gpio-da9055.cmodified+1−1View file
drivers/gpio/gpio-em.cmodified+25−3View file
drivers/gpio/gpio-f7188x.cmodified+1−0View file
drivers/gpio/gpio-ich.cmodified+1−1View file
drivers/gpio/gpio-intel-mid.cmodified+26−4View file
drivers/gpio/gpio-kempld.cmodified+1−1View file
drivers/gpio/gpio-ks8695.cmodified+1−1View file
drivers/gpio/gpio-lpc32xx.cmodified+7−7View file
drivers/gpio/gpio-lynxpoint.cmodified+36−3View file
drivers/gpio/gpio-max730x.cmodified+1−4View file
drivers/gpio/gpio-max732x.cmodified+1−1View file
drivers/gpio/gpio-mc33880.cmodified+1−1View file
drivers/gpio/gpio-mc9s08dz60.cmodified+1−1View file
drivers/gpio/gpio-mcp23s08.cmodified+245−7View file
drivers/gpio/gpio-ml-ioh.cmodified+2−2View file
drivers/gpio/gpio-moxart.cadded+156−0View file
drivers/gpio/gpio-msic.cmodified+4−5View file
drivers/gpio/gpio-msm-v2.cmodified+2−1View file
drivers/gpio/gpio-mvebu.cmodified+2−2View file
drivers/gpio/gpio-mxc.cmodified+1−1View file
drivers/gpio/gpio-octeon.cmodified+1−1View file
drivers/gpio/gpio-omap.cmodified+94−94View file
drivers/gpio/gpio-palmas.cmodified+1−1View file
drivers/gpio/gpio-pca953x.cmodified+1−1View file
drivers/gpio/gpio-pcf857x.cmodified+1−1View file
drivers/gpio/gpio-pch.cmodified+2−2View file
drivers/gpio/gpio-pxa.cmodified+2−1View file
drivers/gpio/gpio-rc5t583.cmodified+1−1View file
drivers/gpio/gpio-rcar.cmodified+45−16View file
drivers/gpio/gpio-samsung.cmodified+7−4View file
drivers/gpio/gpio-sch311x.cadded+432−0View file
drivers/gpio/gpio-sodaville.cmodified+7−3View file
drivers/gpio/gpio-sta2x11.cmodified+1−1View file
drivers/gpio/gpio-stmpe.cmodified+1−1View file
drivers/gpio/gpio-sx150x.cmodified+1−1View file
drivers/gpio/gpio-tb10x.cmodified+2−2View file
drivers/gpio/gpio-tc3589x.cmodified+1−1View file
drivers/gpio/gpio-tegra.cmodified+6−1View file
drivers/gpio/gpio-timberdale.cmodified+3−3View file
drivers/gpio/gpio-tnetv107x.cmodified+1−1View file
drivers/gpio/gpio-tps6586x.cmodified+1−1View file
drivers/gpio/gpio-tps65910.cmodified+1−1View file
drivers/gpio/gpio-tps65912.cmodified+1−1View file
drivers/gpio/gpio-twl4030.cmodified+1−1View file
drivers/gpio/gpio-twl6040.cmodified+1−1View file
drivers/gpio/gpio-ucb1400.cmodified+1−1View file
drivers/gpio/gpio-viperboard.cmodified+2−2View file
drivers/gpio/gpio-vx855.cmodified+1−1View file
drivers/gpio/gpio-wm831x.cmodified+1−1View file
drivers/gpio/gpio-wm8350.cmodified+1−1View file
drivers/gpio/gpio-wm8994.cmodified+1−1View file
drivers/gpio/gpio-xtensa.cadded+163−0View file
drivers/gpio/gpiolib-acpi.cmodified+16−7View file
drivers/gpio/gpiolib.cmodified+137−114View file
drivers/gpio/gpiolib.hadded+46−0View file
drivers/leds/leds-s3c24xx.cmodified+1−0View file
drivers/mmc/host/s3cmci.cmodified+2−0View file
drivers/mmc/host/sdhci-acpi.cmodified+13−16View file
drivers/pinctrl/pinctrl-as3722.cmodified+1−1View file
drivers/pinctrl/pinctrl-at91.cmodified+1−1View file
drivers/pinctrl/pinctrl-baytrail.cmodified+1−5View file
drivers/pinctrl/pinctrl-bcm2835.cmodified+1−1View file
drivers/pinctrl/pinctrl-nomadik.cmodified+1−1View file
drivers/pinctrl/pinctrl-sunxi.cmodified+1−1View file
drivers/pinctrl/vt8500/pinctrl-wmt.cmodified+1−1View file
include/linux/acpi_gpio.hdeleted+0−51View before deletion
include/linux/gpio.hmodified+0−1View file
include/linux/gpio/driver.hmodified+24−32View file
arch/arm/mach-lpc32xx/include/mach/gpio-lpc32xx.h → include/linux/platform_data/gpio-lpc32xx.hrenamed+0−0View file
include/linux/spi/74x164.hdeleted+0−9View before deletion
net/rfkill/rfkill-gpio.cmodified+34−43View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/acpi/enumeration.txt

View file
diff --git a/Documentation/acpi/enumeration.txt b/Documentation/acpi/enumeration.txt
index b994bcb..2a1519b 100644
--- a/Documentation/acpi/enumeration.txt
+++ b/Documentation/acpi/enumeration.txt
@@ -293,36 +293,13 @@ the device to the driver. For example:
These GPIO numbers are controller relative and path "\\_SB.PCI0.GPI0"
specifies the path to the controller. In order to use these GPIOs in Linux
-we need to translate them to the Linux GPIO numbers.
+we need to translate them to the corresponding Linux GPIO descriptors.
-In a simple case of just getting the Linux GPIO number from device
-resources one can use acpi_get_gpio_by_index() helper function. It takes
-pointer to the device and index of the GpioIo/GpioInt descriptor in the
-device resources list. For example:
+There is a standard GPIO API for that and is documented in
+Documentation/gpio.txt.
- int gpio_irq, gpio_power;
- int ret;
-
- gpio_irq = acpi_get_gpio_by_index(dev, 1, NULL);
- if (gpio_irq < 0)
- /* handle error */
-
- gpio_power = acpi_get_gpio_by_index(dev, 0, NULL);
- if (gpio_power < 0)
- /* handle error */
-
- /* Now we can use the GPIO numbers */
-
-Other GpioIo parameters must be converted first by the driver to be
-suitable to the gpiolib before passing them.
-
-In case of GpioInt resource an additional call to gpio_to_irq() must be
-done before calling request_irq().
-
-Note that the above API is ACPI specific and not recommended for drivers
-that need to support non-ACPI systems. The recommended way is to use
-the descriptor based GPIO interfaces. The above example looks like this
-when converted to the GPIO desc:
+In the above example we can get the corresponding two GPIO descriptors with
+a code like this:
#include <linux/gpio/consumer.h>
...
@@ -339,4 +316,5 @@ when converted to the GPIO desc:
/* Now we can use the GPIO descriptors */
-See also Documentation/gpio.txt.
+There are also devm_* versions of these functions which release the
+descriptors once the device is released.

Documentation/arm/Samsung-S3C24XX/GPIO.txt

View file
diff --git a/Documentation/arm/Samsung-S3C24XX/GPIO.txt b/Documentation/arm/Samsung-S3C24XX/GPIO.txt
index 8b46c79..0ebd7e2 100644
--- a/Documentation/arm/Samsung-S3C24XX/GPIO.txt
+++ b/Documentation/arm/Samsung-S3C24XX/GPIO.txt
@@ -85,21 +85,10 @@ between the calls.
Headers
-------
- See arch/arm/mach-s3c2410/include/mach/regs-gpio.h for the list
+ See arch/arm/mach-s3c24xx/include/mach/regs-gpio.h for the list
of GPIO pins, and the configuration values for them. This
is included by using #include <mach/regs-gpio.h>
- The GPIO management functions are defined in the hardware
- header arch/arm/mach-s3c2410/include/mach/hardware.h which can be
- included by #include <mach/hardware.h>
-
- A useful amount of documentation can be found in the hardware
- header on how the GPIO functions (and others) work.
-
- Whilst a number of these functions do make some checks on what
- is passed to them, for speed of use, they may not always ensure
- that the user supplied data to them is correct.
-
PIN Numbers
-----------

Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt

View file
diff --git a/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt b/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt
index daa3017..3ddc7cc 100644
--- a/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt
+++ b/Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt
@@ -38,12 +38,38 @@ Required device specific properties (only for SPI chips):
removed.
- spi-max-frequency = The maximum frequency this chip is able to handle
-Example I2C:
+Optional properties:
+- #interrupt-cells : Should be two.
+ - first cell is the pin number
+ - second cell is used to specify flags.
+- interrupt-controller: Marks the device node as a interrupt controller.
+NOTE: The interrupt functionality is only supported for i2c versions of the
+chips. The spi chips can also do the interrupts, but this is not supported by
+the linux driver yet.
+
+Optional device specific properties:
+- microchip,irq-mirror: Sets the mirror flag in the IOCON register. Devices
+ with two interrupt outputs (these are the devices ending with 17 and
+ those that have 16 IOs) have two IO banks: IO 0-7 form bank 1 and
+ IO 8-15 are bank 2. These chips have two different interrupt outputs:
+ One for bank 1 and another for bank 2. If irq-mirror is set, both
+ interrupts are generated regardless of the bank that an input change
+ occured on. If it is not set, the interrupt are only generated for the
+ bank they belong to.
+ On devices with only one interrupt output this property is useless.
+
+Example I2C (with interrupt):
gpiom1: gpio@20 {
compatible = "microchip,mcp23017";
gpio-controller;
#gpio-cells = <2>;
reg = <0x20>;
+
+ interrupt-parent = <&gpio1>;
+ interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
+ interrupt-controller;
+ #interrupt-cells=<2>;
+ microchip,irq-mirror;
};
Example SPI:

Documentation/devicetree/bindings/gpio/moxa,moxart-gpio.txt

View file
diff --git a/Documentation/devicetree/bindings/gpio/moxa,moxart-gpio.txt b/Documentation/devicetree/bindings/gpio/moxa,moxart-gpio.txt
new file mode 100644
index 0000000..f8e8f18
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/moxa,moxart-gpio.txt
@@ -0,0 +1,19 @@
+MOXA ART GPIO Controller
+
+Required properties:
+
+- #gpio-cells : Should be 2, The first cell is the pin number,
+ the second cell is used to specify polarity:
+ 0 = active high
+ 1 = active low
+- compatible : Must be "moxa,moxart-gpio"
+- reg : Should contain registers location and length
+
+Example:
+
+ gpio: gpio@98700000 {
+ gpio-controller;
+ #gpio-cells = <2>;
+ compatible = "moxa,moxart-gpio";
+ reg = <0x98700000 0xC>;
+ };

Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt

View file
diff --git a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt
index 8655df9..f61cef7 100644
--- a/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt
+++ b/Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt
@@ -2,10 +2,11 @@
Required Properties:
- - compatible: should be one of the following.
+ - compatible: should contain one of the following.
- "renesas,gpio-r8a7778": for R8A7778 (R-Mobile M1) compatible GPIO controller.
- "renesas,gpio-r8a7779": for R8A7779 (R-Car H1) compatible GPIO controller.
- "renesas,gpio-r8a7790": for R8A7790 (R-Car H2) compatible GPIO controller.
+ - "renesas,gpio-r8a7791": for R8A7791 (R-Car M2) compatible GPIO controller.
- "renesas,gpio-rcar": for generic R-Car GPIO controller.
- reg: Base address and length of each memory resource used by the GPIO

Documentation/gpio/board.txt

View file
diff --git a/Documentation/gpio/board.txt b/Documentation/gpio/board.txt
index 0d03506..ba169fa 100644
--- a/Documentation/gpio/board.txt
+++ b/Documentation/gpio/board.txt
@@ -72,10 +72,11 @@ where
- chip_label is the label of the gpiod_chip instance providing the GPIO
- chip_hwnum is the hardware number of the GPIO within the chip
- - dev_id is the identifier of the device that will make use of this GPIO. If
- NULL, the GPIO will be available to all devices.
+ - dev_id is the identifier of the device that will make use of this GPIO. It
+ can be NULL, in which case it will be matched for calls to gpiod_get()
+ with a NULL device.
- con_id is the name of the GPIO function from the device point of view. It
- can be NULL.
+ can be NULL, in which case it will match any function.
- idx is the index of the GPIO within the function.
- flags is defined to specify the following properties:
* GPIOF_ACTIVE_LOW - to configure the GPIO as active-low
@@ -86,18 +87,23 @@ In the future, these flags might be extended to support more properties.
Note that GPIO_LOOKUP() is just a shortcut to GPIO_LOOKUP_IDX() where idx = 0.
-A lookup table can then be defined as follows:
+A lookup table can then be defined as follows, with an empty entry defining its
+end:
- struct gpiod_lookup gpios_table[] = {
- GPIO_LOOKUP_IDX("gpio.0", 15, "foo.0", "led", 0, GPIO_ACTIVE_HIGH),
- GPIO_LOOKUP_IDX("gpio.0", 16, "foo.0", "led", 1, GPIO_ACTIVE_HIGH),
- GPIO_LOOKUP_IDX("gpio.0", 17, "foo.0", "led", 2, GPIO_ACTIVE_HIGH),
- GPIO_LOOKUP("gpio.0", 1, "foo.0", "power", GPIO_ACTIVE_LOW),
- };
+struct gpiod_lookup_table gpios_table = {
+ .dev_id = "foo.0",
+ .table = {
+ GPIO_LOOKUP_IDX("gpio.0", 15, "led", 0, GPIO_ACTIVE_HIGH),
+ GPIO_LOOKUP_IDX("gpio.0", 16, "led", 1, GPIO_ACTIVE_HIGH),
+ GPIO_LOOKUP_IDX("gpio.0", 17, "led", 2, GPIO_ACTIVE_HIGH),
+ GPIO_LOOKUP("gpio.0", 1, "power", GPIO_ACTIVE_LOW),
+ { },
+ },
+};
And the table can be added by the board code as follows:
- gpiod_add_table(gpios_table, ARRAY_SIZE(gpios_table));
+ gpiod_add_lookup_table(&gpios_table);
The driver controlling "foo.0" will then be able to obtain its GPIOs as follows:

Documentation/gpio/consumer.txt

View file
diff --git a/Documentation/gpio/consumer.txt b/Documentation/gpio/consumer.txt
index 07c74a3..e42f77d 100644
--- a/Documentation/gpio/consumer.txt
+++ b/Documentation/gpio/consumer.txt
@@ -38,7 +38,11 @@ device that displays digits), an additional index argument can be specified:
const char *con_id, unsigned int idx)
Both functions return either a valid GPIO descriptor, or an error code checkable
-with IS_ERR(). They will never return a NULL pointer.
+with IS_ERR() (they will never return a NULL pointer). -ENOENT will be returned
+if and only if no GPIO has been assigned to the device/function/index triplet,
+other error codes are used for cases where a GPIO has been assigned but an error
+occured while trying to acquire it. This is useful to discriminate between mere
+errors and an absence of GPIO for optional GPIO parameters.
Device-managed variants of these functions are also defined:

arch/arm/Kconfig

View file
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 9c909fc..b9df622 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -711,7 +711,6 @@ config ARCH_S3C24XX
select HAVE_S3C2410_WATCHDOG if WATCHDOG
select HAVE_S3C_RTC if RTC_CLASS
select MULTI_IRQ_HANDLER
- select NEED_MACH_GPIO_H
select NEED_MACH_IO_H
select SAMSUNG_ATAGS
help
@@ -734,7 +733,6 @@ config ARCH_S3C64XX
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C2410_WATCHDOG if WATCHDOG
select HAVE_TCM
- select NEED_MACH_GPIO_H
select NO_IOPORT
select PLAT_SAMSUNG
select PM_GENERIC_DOMAINS
@@ -1594,7 +1592,7 @@ config ARM_PSCI
config ARCH_NR_GPIO
int
default 1024 if ARCH_SHMOBILE || ARCH_TEGRA
- default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5 || SOC_DRA7XX
+ default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5 || SOC_DRA7XX || ARCH_S3C24XX || ARCH_S3C64XX
default 392 if ARCH_U8500
default 352 if ARCH_VT8500
default 288 if ARCH_SUNXI

arch/arm/mach-ks8695/include/mach/gpio.h

View before deletion
diff --git a/arch/arm/mach-ks8695/include/mach/gpio.h b/arch/arm/mach-ks8695/include/mach/gpio.h
deleted file mode 100644
index f5fda36..0000000
--- a/arch/arm/mach-ks8695/include/mach/gpio.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * arch/arm/mach-ks8695/include/mach/gpio.h
- *
- * Copyright (C) 2006 Andrew Victor
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#ifndef __ASM_ARCH_GPIO_H_
-#define __ASM_ARCH_GPIO_H_
-
-/*
- * Map IRQ number to GPIO line.
- */
-extern int irq_to_gpio(unsigned int irq);
-
-#endif

arch/arm/mach-lpc32xx/include/mach/gpio.h

View before deletion
diff --git a/arch/arm/mach-lpc32xx/include/mach/gpio.h b/arch/arm/mach-lpc32xx/include/mach/gpio.h
deleted file mode 100644
index 0052e7a..0000000
--- a/arch/arm/mach-lpc32xx/include/mach/gpio.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __MACH_GPIO_H
-#define __MACH_GPIO_H
-
-#include "gpio-lpc32xx.h"
-
-#endif /* __MACH_GPIO_H */

arch/arm/mach-lpc32xx/phy3250.c

View file
diff --git a/arch/arm/mach-lpc32xx/phy3250.c b/arch/arm/mach-lpc32xx/phy3250.c
index e54f87e..34932e0 100644
--- a/arch/arm/mach-lpc32xx/phy3250.c
+++ b/arch/arm/mach-lpc32xx/phy3250.c
@@ -36,6 +36,7 @@
#include <linux/clk.h>
#include <linux/mtd/lpc32xx_slc.h>
#include <linux/mtd/lpc32xx_mlc.h>
+#include <linux/platform_data/gpio-lpc32xx.h>
#include <asm/setup.h>
#include <asm/mach-types.h>
@@ -44,7 +45,6 @@
#include <mach/hardware.h>
#include <mach/platform.h>
#include <mach/board.h>
-#include <mach/gpio-lpc32xx.h>
#include "common.h"
/*

arch/arm/mach-mv78xx0/include/mach/gpio.h

View before deletion
diff --git a/arch/arm/mach-mv78xx0/include/mach/gpio.h b/arch/arm/mach-mv78xx0/include/mach/gpio.h
deleted file mode 100644
index 77e1b84..0000000
--- a/arch/arm/mach-mv78xx0/include/mach/gpio.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- * arch/asm-arm/mach-mv78xx0/include/mach/gpio.h
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-#include <plat/gpio.h>

arch/arm/mach-s3c24xx/Kconfig

View file
diff --git a/arch/arm/mach-s3c24xx/Kconfig b/arch/arm/mach-s3c24xx/Kconfig
index 8f1d327..d876431 100644
--- a/arch/arm/mach-s3c24xx/Kconfig
+++ b/arch/arm/mach-s3c24xx/Kconfig
@@ -180,27 +180,6 @@ config CPU_LLSERIAL_S3C2440
Selected if there is an S3C2440 (or register compatible) serial
low-level implementation needed
-# gpio configurations
-
-config S3C24XX_GPIO_EXTRA
- int
- default 128 if S3C24XX_GPIO_EXTRA128
- default 64 if S3C24XX_GPIO_EXTRA64
- default 16 if ARCH_H1940
- default 0
-
-config S3C24XX_GPIO_EXTRA64
- bool
- help
- Add an extra 64 gpio numbers to the available GPIO pool. This is
- available for boards that need extra gpios for external devices.
-
-config S3C24XX_GPIO_EXTRA128
- bool
- help
- Add an extra 128 gpio numbers to the available GPIO pool. This is
- available for boards that need extra gpios for external devices.
-
config S3C24XX_PLL
bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)"
depends on ARM_S3C24XX_CPUFREQ

arch/arm/mach-s3c24xx/common-smdk.c

View file
diff --git a/arch/arm/mach-s3c24xx/common-smdk.c b/arch/arm/mach-s3c24xx/common-smdk.c
index 404444d..e9fbcc9 100644
--- a/arch/arm/mach-s3c24xx/common-smdk.c
+++ b/arch/arm/mach-s3c24xx/common-smdk.c
@@ -37,8 +37,8 @@
#include <asm/irq.h>
#include <mach/regs-gpio.h>
+#include <mach/gpio-samsung.h>
#include <linux/platform_data/leds-s3c24xx.h>
-
#include <linux/platform_data/mtd-nand-s3c2410.h>
#include <plat/gpio-cfg.h>

arch/arm/mach-s3c24xx/h1940-bluetooth.c

View file
diff --git a/arch/arm/mach-s3c24xx/h1940-bluetooth.c b/arch/arm/mach-s3c24xx/h1940-bluetooth.c
index 5b98bfd..b4d14b8 100644
--- a/arch/arm/mach-s3c24xx/h1940-bluetooth.c
+++ b/arch/arm/mach-s3c24xx/h1940-bluetooth.c
@@ -19,8 +19,10 @@
#include <linux/gpio.h>
#include <linux/rfkill.h>
+#include <plat/gpio-cfg.h>
#include <mach/hardware.h>
#include <mach/regs-gpio.h>
+#include <mach/gpio-samsung.h>
#include "h1940.h"

arch/arm/mach-s3c24xx/include/mach/gpio-samsung.h

View file
diff --git a/arch/arm/mach-s3c24xx/include/mach/gpio.h b/arch/arm/mach-s3c24xx/include/mach/gpio-samsung.h
similarity index 87%
rename from arch/arm/mach-s3c24xx/include/mach/gpio.h
rename to arch/arm/mach-s3c24xx/include/mach/gpio-samsung.h
index 1459156..528fcdc 100644
--- a/arch/arm/mach-s3c24xx/include/mach/gpio.h
+++ b/arch/arm/mach-s3c24xx/include/mach/gpio-samsung.h
@@ -14,16 +14,8 @@
* devices that need GPIO.
*/
-#ifndef __MACH_GPIO_H
-#define __MACH_GPIO_H __FILE__
-
-#ifdef CONFIG_CPU_S3C244X
-#define ARCH_NR_GPIOS (32 * 9 + CONFIG_S3C24XX_GPIO_EXTRA)
-#elif defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2416)
-#define ARCH_NR_GPIOS (32 * 12 + CONFIG_S3C24XX_GPIO_EXTRA)
-#else
-#define ARCH_NR_GPIOS (256 + CONFIG_S3C24XX_GPIO_EXTRA)
-#endif
+#ifndef GPIO_SAMSUNG_S3C24XX_H
+#define GPIO_SAMSUNG_S3C24XX_H
/*
* GPIO sizes for various SoCs:
@@ -31,17 +23,17 @@
* 2410 2412 2440 2443 2416
* 2442
* ---- ---- ---- ---- ----
- * A 23 22 25 16 25
- * B 11 11 11 11 9
- * C 16 15 16 16 16
+ * A 23 22 25 16 27
+ * B 11 11 11 11 11
+ * C 16 16 16 16 16
* D 16 16 16 16 16
* E 16 16 16 16 16
* F 8 8 8 8 8
* G 16 16 16 16 8
- * H 11 11 9 15 15
+ * H 11 11 11 15 15
* J -- -- 13 16 --
* K -- -- -- -- 16
- * L -- -- -- 15 7
+ * L -- -- -- 15 14
* M -- -- -- 2 2
*/
@@ -101,8 +93,6 @@ enum s3c_gpio_number {
#define S3C2410_GPL(_nr) (S3C2410_GPIO_L_START + (_nr))
#define S3C2410_GPM(_nr) (S3C2410_GPIO_M_START + (_nr))
-#include <plat/gpio-cfg.h>
-
#ifdef CONFIG_CPU_S3C244X
#define S3C_GPIO_END (S3C2410_GPJ(0) + 32)
#elif defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2416)
@@ -111,4 +101,4 @@ enum s3c_gpio_number {
#define S3C_GPIO_END (S3C2410_GPH(0) + 32)
#endif
-#endif /* __MACH_GPIO_H */
+#endif /* GPIO_SAMSUNG_S3C24XX_H */

arch/arm/mach-s3c24xx/mach-amlm5900.c

View file
diff --git a/arch/arm/mach-s3c24xx/mach-amlm5900.c b/arch/arm/mach-s3c24xx/mach-amlm5900.c
index e27b5c9..284ea1f 100644
--- a/arch/arm/mach-s3c24xx/mach-amlm5900.c
+++ b/arch/arm/mach-s3c24xx/mach-amlm5900.c
@@ -52,6 +52,7 @@
#include <plat/regs-serial.h>
#include <mach/regs-lcd.h>
#include <mach/regs-gpio.h>
+#include <mach/gpio-samsung.h>
#include <linux/platform_data/i2c-s3c2410.h>
#include <plat/devs.h>

arch/arm/mach-s3c24xx/mach-anubis.c

View file
diff --git a/arch/arm/mach-s3c24xx/mach-anubis.c b/arch/arm/mach-s3c24xx/mach-anubis.c
index c1fb6c3..2a16f8f 100644
--- a/arch/arm/mach-s3c24xx/mach-anubis.c
+++ b/arch/arm/mach-s3c24xx/mach-anubis.c
@@ -35,6 +35,7 @@
#include <plat/regs-serial.h>
#include <mach/regs-gpio.h>
#include <mach/regs-lcd.h>
+#include <mach/gpio-samsung.h>
#include <linux/platform_data/mtd-nand-s3c2410.h>
#include <linux/platform_data/i2c-s3c2410.h>

arch/arm/mach-s3c24xx/mach-at2440evb.c

View file
diff --git a/arch/arm/mach-s3c24xx/mach-at2440evb.c b/arch/arm/mach-s3c24xx/mach-at2440evb.c
index 6dfeeb7..6beab67 100644
--- a/arch/arm/mach-s3c24xx/mach-at2440evb.c
+++ b/arch/arm/mach-s3c24xx/mach-at2440evb.c
@@ -36,6 +36,7 @@
#include <plat/regs-serial.h>
#include <mach/regs-gpio.h>
#include <mach/regs-lcd.h>
+#include <mach/gpio-samsung.h>
#include <linux/platform_data/mtd-nand-s3c2410.h>
#include <linux/platform_data/i2c-s3c2410.h>

arch/arm/mach-s3c24xx/mach-bast.c

View file
diff --git a/arch/arm/mach-s3c24xx/mach-bast.c b/arch/arm/mach-s3c24xx/mach-bast.c
index 22d6ae9..981ba1e 100644
--- a/arch/arm/mach-s3c24xx/mach-bast.c
+++ b/arch/arm/mach-s3c24xx/mach-bast.c
@@ -48,6 +48,7 @@
#include <mach/hardware.h>
#include <mach/regs-gpio.h>
#include <mach/regs-lcd.h>
+#include <mach/gpio-samsung.h>
#include <plat/clock.h>
#include <plat/cpu.h>

arch/arm/mach-s3c24xx/mach-gta02.c

View file
diff --git a/arch/arm/mach-s3c24xx/mach-gta02.c b/arch/arm/mach-s3c24xx/mach-gta02.c
index 13d8d07..d9170e9 100644
--- a/arch/arm/mach-s3c24xx/mach-gta02.c
+++ b/arch/arm/mach-s3c24xx/mach-gta02.c
@@ -75,6 +75,7 @@
#include <mach/hardware.h>
#include <mach/regs-gpio.h>
#include <mach/regs-irq.h>
+#include <mach/gpio-samsung.h>
#include <plat/cpu.h>
#include <plat/devs.h>

arch/arm/mach-s3c24xx/mach-h1940.c

View file
diff --git a/arch/arm/mach-s3c24xx/mach-h1940.c b/arch/arm/mach-s3c24xx/mach-h1940.c
index 952b6a0..de08321 100644
--- a/arch/arm/mach-s3c24xx/mach-h1940.c
+++ b/arch/arm/mach-s3c24xx/mach-h1940.c
@@ -54,6 +54,7 @@
#include <mach/regs-clock.h>
#include <mach/regs-gpio.h>
#include <mach/regs-lcd.h>
+#include <mach/gpio-samsung.h>
#include <plat/clock.h>
#include <plat/cpu.h>

arch/arm/mach-s3c24xx/mach-jive.c

View file
diff --git a/arch/arm/mach-s3c24xx/mach-jive.c b/arch/arm/mach-s3c24xx/mach-jive.c
index 43c23e2..67cb8e9 100644
--- a/arch/arm/mach-s3c24xx/mach-jive.c
+++ b/arch/arm/mach-s3c24xx/mach-jive.c
@@ -38,6 +38,7 @@
#include <mach/regs-gpio.h>
#include <mach/regs-lcd.h>
#include <mach/fb.h>
+#include <mach/gpio-samsung.h>
#include <asm/mach-types.h>

arch/arm/mach-s3c24xx/mach-mini2440.c

View file
diff --git a/arch/arm/mach-s3c24xx/mach-mini2440.c b/arch/arm/mach-s3c24xx/mach-mini2440.c
index 4a18d49..1f15597 100644
--- a/arch/arm/mach-s3c24xx/mach-mini2440.c
+++ b/arch/arm/mach-s3c24xx/mach-mini2440.c
@@ -42,6 +42,7 @@
#include <linux/platform_data/leds-s3c24xx.h>
#include <mach/regs-lcd.h>
#include <mach/irqs.h>
+#include <mach/gpio-samsung.h>
#include <linux/platform_data/mtd-nand-s3c2410.h>
#include <linux/platform_data/i2c-s3c2410.h>
#include <linux/platform_data/mmc-s3cmci.h>

arch/arm/mach-s3c24xx/mach-n30.c

View file
diff --git a/arch/arm/mach-s3c24xx/mach-n30.c b/arch/arm/mach-s3c24xx/mach-n30.c
index 2cb46c3..997684f 100644
--- a/arch/arm/mach-s3c24xx/mach-n30.c
+++ b/arch/arm/mach-s3c24xx/mach-n30.c
@@ -36,6 +36,7 @@
#include <linux/platform_data/leds-s3c24xx.h>
#include <mach/regs-gpio.h>
#include <mach/regs-lcd.h>
+#include <mach/gpio-samsung.h>
#include <asm/mach/arch.h>
#include <asm/mach/irq.h>

arch/arm/mach-s3c24xx/mach-nexcoder.c

View file
diff --git a/arch/arm/mach-s3c24xx/mach-nexcoder.c b/arch/arm/mach-s3c24xx/mach-nexcoder.c
index 01f4354..575d28c 100644
--- a/arch/arm/mach-s3c24xx/mach-nexcoder.c
+++ b/arch/arm/mach-s3c24xx/mach-nexcoder.c
@@ -37,6 +37,7 @@
//#include <asm/debug-ll.h>
#include <mach/regs-gpio.h>
+#include <mach/gpio-samsung.h>
#include <plat/regs-serial.h>
#include <linux/platform_data/i2c-s3c2410.h>

arch/arm/mach-s3c24xx/mach-osiris-dvs.c

View file
diff --git a/arch/arm/mach-s3c24xx/mach-osiris-dvs.c b/arch/arm/mach-s3c24xx/mach-osiris-dvs.c
index 45e7436..33afb91 100644
--- a/arch/arm/mach-s3c24xx/mach-osiris-dvs.c
+++ b/arch/arm/mach-s3c24xx/mach-osiris-dvs.c
@@ -20,6 +20,7 @@
#include <linux/i2c/tps65010.h>
#include <plat/cpu-freq.h>
+#include <mach/gpio-samsung.h>
#define OSIRIS_GPIO_DVS S3C2410_GPB(5)

arch/arm/mach-s3c24xx/mach-osiris.c

View file
diff --git a/arch/arm/mach-s3c24xx/mach-osiris.c b/arch/arm/mach-s3c24xx/mach-osiris.c
index 58d6fbe..f84f2a4 100644
--- a/arch/arm/mach-s3c24xx/mach-osiris.c
+++ b/arch/arm/mach-s3c24xx/mach-osiris.c
@@ -50,6 +50,7 @@
#include <mach/hardware.h>
#include <mach/regs-gpio.h>
#include <mach/regs-lcd.h>

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c24xx/mach-qt2410.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c24xx/mach-rx1950.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c24xx/mach-rx3715.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c24xx/mach-smdk2413.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c24xx/mach-smdk2416.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c24xx/mach-vr1000.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c24xx/pm-s3c2410.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c24xx/pm.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c24xx/s3c2410.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c24xx/s3c2416.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c24xx/s3c2440.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c24xx/s3c2442.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c24xx/s3c2443.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c24xx/setup-i2c.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c24xx/setup-sdhci-gpio.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c24xx/setup-ts.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c24xx/simtec-usb.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/Kconfig

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/common.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/crag6410.h

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/dev-audio.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/include/mach/gpio-samsung.h

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/mach-anw6410.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/mach-crag6410.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/mach-hmt.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/mach-mini6410.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/mach-real6410.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/mach-smartq.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/mach-smartq5.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/mach-smartq7.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/mach-smdk6400.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/mach-smdk6410.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/pm.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/setup-fb-24bpp.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/setup-i2c0.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/setup-i2c1.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/setup-ide.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/setup-keypad.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/setup-sdhci-gpio.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-s3c64xx/setup-spi.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/mach-tegra/board-paz00.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/plat-samsung/pm-gpio.c

View file

This diff is incomplete. Download the complete patch.

arch/arm/plat-samsung/setup-camif.c

View file

This diff is incomplete. Download the complete patch.

arch/xtensa/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-74x164.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-adnp.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-adp5520.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-adp5588.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-amd8111.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-arizona.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-bcm-kona.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-bt8xx.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-clps711x.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-da9052.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-da9055.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-em.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-f7188x.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-ich.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-intel-mid.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-kempld.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-ks8695.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-lpc32xx.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-lynxpoint.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-max730x.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-max732x.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-mc33880.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-mc9s08dz60.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-mcp23s08.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-ml-ioh.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-moxart.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-msic.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-msm-v2.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-mvebu.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-mxc.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-octeon.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-omap.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-palmas.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-pca953x.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-pcf857x.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-pch.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-pxa.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-rc5t583.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-rcar.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-samsung.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-sch311x.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-sodaville.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-sta2x11.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-stmpe.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-sx150x.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-tb10x.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-tc3589x.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-tegra.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-timberdale.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-tnetv107x.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-tps6586x.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-tps65910.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-tps65912.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-twl4030.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-twl6040.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-ucb1400.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-viperboard.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-vx855.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-wm831x.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-wm8350.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-wm8994.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpio-xtensa.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpiolib-acpi.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpiolib.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpio/gpiolib.h

View file

This diff is incomplete. Download the complete patch.

drivers/leds/leds-s3c24xx.c

View file

This diff is incomplete. Download the complete patch.

drivers/mmc/host/s3cmci.c

View file

This diff is incomplete. Download the complete patch.

drivers/mmc/host/sdhci-acpi.c

View file

This diff is incomplete. Download the complete patch.

drivers/pinctrl/pinctrl-as3722.c

View file

This diff is incomplete. Download the complete patch.

drivers/pinctrl/pinctrl-at91.c

View file

This diff is incomplete. Download the complete patch.

drivers/pinctrl/pinctrl-baytrail.c

View file

This diff is incomplete. Download the complete patch.

drivers/pinctrl/pinctrl-bcm2835.c

View file

This diff is incomplete. Download the complete patch.

drivers/pinctrl/pinctrl-nomadik.c

View file

This diff is incomplete. Download the complete patch.

drivers/pinctrl/pinctrl-sunxi.c

View file

This diff is incomplete. Download the complete patch.

drivers/pinctrl/vt8500/pinctrl-wmt.c

View file

This diff is incomplete. Download the complete patch.

include/linux/acpi_gpio.h

View before deletion

This diff is incomplete. Download the complete patch.

include/linux/gpio.h

View file

This diff is incomplete. Download the complete patch.

include/linux/gpio/driver.h

View file

This diff is incomplete. Download the complete patch.

include/linux/platform_data/gpio-lpc32xx.h

View file

This diff is incomplete. Download the complete patch.

include/linux/spi/74x164.h

View before deletion

This diff is incomplete. Download the complete patch.

net/rfkill/rfkill-gpio.c

View file

This diff is incomplete. Download the complete patch.