Documentation / ACPI: update to GPIO descriptor API
authorMika Westerberg <mika.westerberg@linux.intel.com>
Wed, 8 Jan 2014 10:40:57 +0000 (12:40 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 8 Jan 2014 14:07:28 +0000 (15:07 +0100)
Update the documentation also to reflect the fact that there are no ACPI
specific GPIO interfaces anymore but drivers should instead use the
descriptor based GPIO APIs.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Documentation/acpi/enumeration.txt

index b994bcb32b92cbb1bbb672a66880af376eabe2dc..2a1519b87177244961df2ada70ea00a7dbfe4177 100644 (file)
@@ -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.