1. 21 1月, 2014 1 次提交
    • M
      gpio: add LP3943 I2C GPIO expander driver · 0cc59b9d
      Milo Kim 提交于
      This is one of LP3943 MFD driver.
      LP3943 is configurable as a GPIO expander, up to 16 GPIOs.
      
      * Application note: how to configure LP3943 as a GPIO expander
        http://www.ti.com/lit/an/snva287a/snva287a.pdf
      
      * Supported GPIO controller operations
        request, free, direction_input, direction_output, get and set
      
      * GPIO direction register not supported
        LP3943 doesn't have the GPIO direction register. It only provides input and
        output status registers.
        So, private data for the direction should be handled manually.
        This variable is updated whenever the direction is changed and
        used in 'get' operation.
      
      * Pin assignment
        A driver data, 'pin_used' is checked when a GPIO is requested.
        If the GPIO is already assigned, then returns as failure.
        If the GPIO is available, 'pin_used' is set.
        When the GPIO is not used anymore, then it is cleared.
        It is defined as unsigned long type for atomic bit operation APIs,
        but only LSB 16bits are used because LP3943 has 16 outputs.
      Signed-off-by: NMilo Kim <milo.kim@ti.com>
      Reviewed-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      0cc59b9d
  2. 26 12月, 2013 1 次提交
  3. 20 12月, 2013 1 次提交
  4. 12 12月, 2013 1 次提交
    • B
      gpio: driver for Xtensa GPIO32 · 3b31d0ec
      Baruch Siach 提交于
      GPIO32 is a standard optional extension to the Xtensa architecture
      core that provides preconfigured output and input ports for intra
      SoC signaling. The GPIO32 option is implemented as 32bit Tensilica
      Instruction Extension (TIE) output state called EXPSTATE, and 32bit
      input wire called IMPWIRE. This driver treats input and output
      states as two distinct devices.
      
      v3:
      * Use BUG() in xtensa_impwire_set_value() to indicate that
        it should never be called (Linus Walleij)
      v2:
      * Address the comments of Linus Walleij:
        - Add a few comments
        - Expand commit log message
        - Use the BIT() macro for bit offsets
        - Rewrite CPENABLE handling as static inlines
        - Use device_initcall()
      * Depend on !SMP for reason explained in the comments (Marc Gauthier)
      * Use XCHAL_CP_ID_XTIOP to enable/disable GPIO32 only
      Signed-off-by: NBaruch Siach <baruch@tkos.co.il>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      3b31d0ec
  5. 03 12月, 2013 1 次提交
  6. 26 10月, 2013 1 次提交
  7. 11 10月, 2013 1 次提交
  8. 21 9月, 2013 2 次提交
  9. 30 8月, 2013 1 次提交
    • S
      gpio: add GPIO support for F71882FG and F71889F · 6c17aa01
      Simon Guinot 提交于
      This patch adds support for the GPIOs found on the Fintek super-I/O
      chips F71882FG and F71889F.
      
      A super-I/O is a legacy I/O controller embedded on x86 motherboards. It
      is used to connect the low-bandwidth devices. Among others functions the
      F71882FG/F71889F provides: a parallel port, two serial ports, a keyboard
      controller, an hardware monitoring controller and some GPIO pins.
      
      Note that this super-I/Os are embedded on some Atom-based LaCie NASes.
      The GPIOs are used to control the LEDs and the hard drive power.
      
      Changes since v3:
      - Use request_muxed_region to protect the I/O ports against concurrent
        accesses.
      
      Changes since v2:
      - Remove useless NULL setters for driver data.
      
      Changes since v1:
      - Enhance the commit message by describing what is a Super-I/O.
      - Use self-explanatory names for the GPIO register macros.
      - Add a comment to explain the platform device and driver registration.
      - Fix gpio_get when GPIO is configured in input mode. I only had
        the hardware to check this mode recently...
      Signed-off-by: NSimon Guinot <simon.guinot@sequanux.org>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      6c17aa01
  10. 26 8月, 2013 1 次提交
  11. 21 7月, 2013 3 次提交
    • G
      gpio: Kontron PLD gpio driver · d22fcde0
      Guenter Roeck 提交于
      Add gpio support for the on-board PLD found on some Kontron embedded modules.
      
      Originally-from: Michael Brunner <michael.brunner@kontron.com>
      Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: NKevin Strasser <kevin.strasser@linux.intel.com>
      Acked-by: NDarren Hart <dvhart@linux.intel.com>
      Reviewed-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      d22fcde0
    • J
      gpio-tz1090-pdc: add TZ1090 PDC gpio driver · 79bb6460
      James Hogan 提交于
      Add a GPIO driver for the low-power Powerdown Controller GPIOs in the
      TZ1090 SoC.
      
      The driver is instantiated by device tree and supports interrupts for
      the SysWake GPIOs only.
      
      Changes in v4:
       - fix typos in DT bindings compatible properties
       - reference Documentation/devicetree/bindings/gpio/gpio.txt in
         gpio-ranges description in DT bindings
       - fix gpio-ranges examples in DT bindings (it must now have 3 cells)
      
      Changes in v3:
       - separated from irq-imgpdc and removed arch/metag changes to allow
         these patches to go upstream separately via the pinctrl[/gpio] trees
         (particularly the pinctrl drivers depend on the new pinconf DT
         bindings).
       - some s/unsigned/unsigned int/.
       - gpio-tz1090*: refer to <dt-bindings/gpio/gpio.h> and
         <dt-bindings/interrupt-controller/irq.h> flags in bindings.
       - gpio-tz1090*: move initcall from postcore to subsys.
      
      Changes in v2:
       - gpio-tz1090-pdc: remove references to Linux flags in dt bindings
       - gpio-tz1090-pdc: make use of BIT() from linux/bitops.h
       - gpio-tz1090-pdc: make register accessors inline to match pinctrl
       - gpio-tz1090-pdc: update gpio-ranges to use 3 cells after recent ABI
         breakage
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      Cc: Grant Likely <grant.likely@linaro.org>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Cc: Rob Landley <rob@landley.net>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: linux-doc@vger.kernel.org
      Cc: devicetree-discuss@lists.ozlabs.org
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      79bb6460
    • J
      gpio-tz1090: add TZ1090 gpio driver · 9caf1f22
      James Hogan 提交于
      Add a GPIO driver for the main GPIOs found in the TZ1090 (Comet) SoC.
      This doesn't include low-power GPIOs as they're controlled separately
      via the Powerdown Controller (PDC) registers.
      
      The driver is instantiated by device tree and supports interrupts for
      all GPIOs.
      
      Changes in v4:
       - fix typos in DT bindings compatible properties
       - reference Documentation/devicetree/bindings/gpio/gpio.txt in
         gpio-ranges description in DT bindings
       - fix gpio-ranges examples in DT bindings (it must now have 3 cells)
       - gpio-tz1090: use of_property_read_u32 instead of of_get_property
      
      Changes in v3:
       - separated from irq-imgpdc and removed arch/metag changes to allow
         these patches to go upstream separately via the pinctrl[/gpio] trees
         (particularly the pinctrl drivers depend on the new pinconf DT
         bindings).
       - some s/unsigned/unsigned int/.
       - some s/unsigned int/bool/ and use of BIT().
       - gpio-tz1090*: refer to <dt-bindings/gpio/gpio.h> and
         <dt-bindings/interrupt-controller/irq.h> flags in bindings.
       - gpio-tz1090*: move initcall from postcore to subsys.
       - gpio-tz1090: add REG_ prefix to some constants for consistency.
       - gpio-tz1090: add comment to explain tz1090_gpio_irq_next_edge
         cunningness.
      
      Changes in v2:
       - gpio-tz1090: remove references to Linux flags in dt bindings
       - gpio-tz1090: make use of BIT() from linux/bitops.h
       - gpio-tz1090: make register accessors inline to match pinctrl
       - gpio-tz1090: update gpio-ranges to use 3 cells after recent ABI
         breakage
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      Cc: Grant Likely <grant.likely@linaro.org>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Cc: Rob Landley <rob@landley.net>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: linux-doc@vger.kernel.org
      Cc: devicetree-discuss@lists.ozlabs.org
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      9caf1f22
  12. 19 6月, 2013 1 次提交
  13. 27 4月, 2013 1 次提交
    • O
      Revert "ARM: exynos: enable multiplatform support" · 4923ee44
      Olof Johansson 提交于
      This reverts commit bd51de53.
      
      Turns out that multiplatform breaks some uses cases, such as when you
      have an existing defconfig, since it adds the new EXYNOS_SINGLE config
      option as a dependecy. As a result, nearly all exynos config options
      will be disabled by default.
      
      Reverting instead of rebasing since this branch is pulled in as a
      dependency elsewhere.
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      4923ee44
  14. 26 4月, 2013 1 次提交
  15. 19 4月, 2013 1 次提交
    • A
      ARM: exynos: enable multiplatform support · bd51de53
      Arnd Bergmann 提交于
      This makes it possible to enable the exynos platform as part of a
      multiplatform kernel, in addition to keeping the single-platform
      exynos support.
      
      The multiplatform variant has a number of limitations at the moment:
      
      * It only supports DT-enabled machines. This is not a problem in
        the long run, as non-DT machines for exynos are going away.
        The main problem here is that the gpio code and the exynos_eint
        irqchip are not multiplatform capable but still required for
        ATAGS based boot.
      * The watchdog driver is still missing a conversion.
      * sparsemem and memory_holes are currently not supported in
        multiplatform.
      
      The the multiplatform aware ARCH_EXYNOS Kconfig symbol is disabled
      for now, as dependent patches are still pending in other
      subsystem trees. We will enable it once everything comes together.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      bd51de53
  16. 04 4月, 2013 1 次提交
  17. 03 4月, 2013 1 次提交
    • M
      gpio: Renesas R-Car GPIO driver V3 · 119f5e44
      Magnus Damm 提交于
      This patch is V3 of a GPIO driver for the R-Car series of
      SoCs from Renesas. This driver is designed to be reusable
      between multiple SoCs that share the same basic building block,
      but so far it has only been used on R-Car H1 (r8a7779).
      
      Each driver instance handles 32 GPIOs with individually
      maskable IRQs. The driver operates on a single I/O memory
      range and the 32 GPIOs are hooked up a single interrupt.
      
      In the case of R-Car H1 either external IRQ pins or GPIOs
      with interrupts can be used for on-board interupts. For
      external IRQs 4 pins are supported, and in the case of GPIO
      there are 202 GPIOS as 202 interrupts hooked up via 6 driver
      instances and to the GIC and the Cortex-A9 Quad.
      
      At this point this driver is interfacing as a regular
      platform device driver. In the future DT support will be
      submitted as an incremental feature patch.
      Signed-off-by: NMagnus Damm <damm@opensource.se>
      Reviewed-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NSimon Horman <horms+renesas@verge.net.au>
      119f5e44
  18. 14 2月, 2013 1 次提交
  19. 05 2月, 2013 1 次提交
  20. 31 1月, 2013 1 次提交
  21. 22 1月, 2013 1 次提交
    • S
      gpio: devm_gpio_* support should not depend on GPIOLIB · 6a89a314
      Shawn Guo 提交于
      Some architectures (e.g. blackfin) provide gpio API without requiring
      GPIOLIB support (ARCH_WANT_OPTIONAL_GPIOLIB).  devm_gpio_* functions
      should also work for these architectures, since they do not really
      depend on GPIOLIB.
      
      Add a new option GPIO_DEVRES (enabled by default) to control the build
      of devres.c.  It also removes the empty version of devm_gpio_*
      functions for !GENERIC_GPIO build from linux/gpio.h, and moves the
      function declarations from asm-generic/gpio.h into linux/gpio.h.
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      6a89a314
  22. 10 12月, 2012 1 次提交
  23. 30 11月, 2012 1 次提交
  24. 20 11月, 2012 1 次提交
  25. 18 11月, 2012 1 次提交
  26. 16 10月, 2012 2 次提交
  27. 22 9月, 2012 1 次提交
    • T
      gpio: introduce gpio-mvebu driver for Marvell SoCs · fefe7b09
      Thomas Petazzoni 提交于
      This driver aims at replacing the arch/arm/plat-orion/gpio.c driver,
      and is designed to be compatible with all Marvell EBU SoCs: Orion,
      Kirkwood, Dove, Armada 370/XP and Discovery.
      
      It has been successfully tested on Dove and Armada XP at the moment.
      
      Compared to the plat-orion driver, this new driver has the following
      added benefits:
      
       *) Support for Armada 370 and Armada XP
       *) It is integrated with the mvebu pinctrl driver so that GPIO pins
          are properly muxed, and the GPIO driver knows which GPIO pins are
          output-only or input-only.
       *) Properly placed in drivers/gpio
       *) More extensible mechanism to support platform differences. The
          plat-orion driver uses a simple mask-offset DT property, which
          works fine for Discovery MV78200 but not for Armada XP. The new
          driver uses different compatible strings to identify the different
          variants of the GPIO controllers.
      Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Cc: Grant Likely <grant.likely@secretlab.ca>
      Cc: Linus Walleij <linus.walleij@stericsson.com>
      Cc: Andrew Lunn <andrew@lunn.ch>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Gregory Clement <gregory.clement@free-electrons.com>
      Tested-by: NSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
      Reviewed-by: NLinus Walleij <linus.walleij@linaro.org>
      Tested-by: NAndrew Lunn <andrew@lunn.ch>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NJason Cooper <jason@lakedaemon.net>
      fefe7b09
  28. 21 9月, 2012 1 次提交
  29. 19 9月, 2012 2 次提交
    • P
      gpio: Add basic support for TWL6040 GPOs · 70ffd691
      Peter Ujfalusi 提交于
      TWL6040 provides GPO lines to be used for controlling external devices.The number
      of lines different between versions: twl6040 have 3 GPO while TWL6041 have 1.
      Signed-off-by: NSergio Aguirre <saaguirre@ti.com>
      Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@ti.com>
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      70ffd691
    • T
      gpio: Add Avionic Design N-bit GPIO expander support · 5e969a40
      Thierry Reding 提交于
      This commit adds a driver for the Avionic Design N-bit GPIO expander.
      The expander provides a variable number of GPIO pins with interrupt
      support.
      
      Changes in v2:
      - allow building the driver as a module
      - assign of_node unconditionally
      - use linear mapping IRQ domain
      - properly cleanup IRQ domain
      - add OF device table and annotate device tables
      - emulate rising and falling edge triggers
      - increase #gpio-cells to 2
      - drop support for !OF
      - use IS_ENABLED to conditionalize DEBUG_FS code
      
      Changes in v3:
      - make IRQ support runtime configurable (interrupt-controller property)
      - drop interrupt-controller and #interrupt-cells from DT binding
      - add inline to_adnp() function to wrap container_of() macro
      - consistently use adnp as name for struct adnp variables
      - remove irq_mask_cur and rename irq_mask to irq_enable
      - fix a subtle deadlock in adnp_gpio_direction_output()
      - remove dynamic allocations from debugfs code
      - rename regs to num_regs to avoid confusion
      - annotate non-trivial code with comments
      - don't acquire mutex in adnp_gpio_get()
      - assume NO_IRQ == 0
      
      Cc: Grant Likely <grant.likely@secretlab.ca>
      Cc: devicetree-discuss@lists.ozlabs.org
      Cc: Linus Walleij <linus.walleij@stericsson.com>
      Cc: linux-kernel@vger.kernel.org
      Acked-by: NRob Herring <rob.herring@calxeda.com>
      Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      5e969a40
  30. 25 7月, 2012 1 次提交
  31. 18 7月, 2012 1 次提交
  32. 12 7月, 2012 1 次提交
  33. 21 5月, 2012 1 次提交
  34. 19 5月, 2012 1 次提交
  35. 18 5月, 2012 1 次提交
    • M
      gpio: Emma Mobile GPIO driver V2 · a07e103e
      Magnus Damm 提交于
      This patch is V2 of the Emma Mobile GPIO driver. This
      driver is designed to be reusable between multiple SoCs
      that share the same basic building block, but so far it
      has only been used on Emma Mobile EV2.
      
      Each driver instance handles 32 GPIOs with individually
      maskable IRQs. The driver operates on two I/O memory
      ranges and the 32 GPIOs are hooked up to two interrupts.
      
      In the case of Emma Mobile EV2 this GPIO building block
      is used as main external interrupt controller hooking up
      159 GPIOS as 159 interrupts via 5 driver instances and
      10 interrupts to the GIC and the Cortex-A9 Dual.
      Signed-off-by: NMagnus Damm <damm@opensource.se>
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      a07e103e