1. 08 11月, 2017 1 次提交
  2. 31 10月, 2017 1 次提交
  3. 08 10月, 2017 1 次提交
  4. 22 9月, 2017 1 次提交
  5. 14 8月, 2017 1 次提交
    • S
      gpio: rcar: add gen[123] fallback compatibility strings · dbd1dad2
      Simon Horman 提交于
      Add fallback compatibility string for R-Car Gen 1, 2 and 3.
      
      In the case of Renesas R-Car hardware we know that there are generations of
      SoCs, f.e. Gen 1 and 2. But beyond that its not clear what the relationship
      between IP blocks might be. For example, I believe that r8a7790 is older
      than r8a7791 but that doesn't imply that the latter is a descendant of the
      former or vice versa.
      
      We can, however, by examining the documentation and behaviour of the
      hardware at run-time observe that the current driver implementation appears
      to be compatible with the IP blocks on SoCs within a given generation.
      
      For the above reasons and convenience when enabling new SoCs a
      per-generation fallback compatibility string scheme being adopted for
      drivers for Renesas SoCs.
      
      Also deprecate renesas,gpio-rcar as its name is more generic than its
      implementation.
      Signed-off-by: NSimon Horman <horms+renesas@verge.net.au>
      Reviewed-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      dbd1dad2
  6. 29 6月, 2017 1 次提交
  7. 28 12月, 2016 2 次提交
  8. 08 9月, 2016 1 次提交
  9. 22 7月, 2016 1 次提交
  10. 12 4月, 2016 2 次提交
  11. 30 3月, 2016 1 次提交
  12. 25 2月, 2016 2 次提交
    • G
      gpio: rcar: Add Runtime PM handling for interrupts · b26a719b
      Geert Uytterhoeven 提交于
      The R-Car GPIO driver handles Runtime PM for requested GPIOs only.
      
      When using a GPIO purely as an interrupt source, no Runtime PM handling
      is done, and the GPIO module's clock may not be enabled.
      
      To fix this:
        - Add .irq_request_resources() and .irq_release_resources() callbacks
          to handle Runtime PM when an interrupt is requested,
        - Add irq_bus_lock() and sync_unlock() callbacks to handle Runtime PM
          when e.g. disabling/enabling an interrupt, or configuring the
          interrupt type.
      
      Fixes: d5c3d846 "net: phy: Avoid polling PHY with PHY_IGNORE_INTERRUPTS"
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      b26a719b
    • G
      gpio: rcar: Add Runtime PM handling for interrupts · 29821c2c
      Geert Uytterhoeven 提交于
      The R-Car GPIO driver handles Runtime PM for requested GPIOs only.
      
      When using a GPIO purely as an interrupt source, no Runtime PM handling
      is done, and the GPIO module's clock may not be enabled.
      
      To fix this:
        - Add .irq_request_resources() and .irq_release_resources() callbacks
          to handle Runtime PM when an interrupt is requested,
        - Add irq_bus_lock() and sync_unlock() callbacks to handle Runtime PM
          when e.g. disabling/enabling an interrupt, or configuring the
          interrupt type.
      
      Fixes: d5c3d846 "net: phy: Avoid polling PHY with PHY_IGNORE_INTERRUPTS"
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      29821c2c
  13. 05 1月, 2016 1 次提交
    • L
      gpio: rcar: use gpiochip data pointer · c7b6f457
      Linus Walleij 提交于
      This makes the driver use the data pointer added to the gpio_chip
      to store a pointer to the state container instead of relying on
      container_of().
      
      Cc: Ulrich Hecht <ulrich.hecht+renesas@gmail.com>
      Cc: Geert Uytterhoeven <geert+renesas@glider.be>
      Cc: Hisashi Nakamura <hisashi.nakamura.ak@renesas.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      c7b6f457
  14. 11 12月, 2015 2 次提交
  15. 19 11月, 2015 1 次提交
    • L
      gpio: change member .dev to .parent · 58383c78
      Linus Walleij 提交于
      The name .dev in a struct is normally reserved for a struct device
      that is let us say a superclass to the thing described by the struct.
      struct gpio_chip stands out by confusingly using a struct device *dev
      to point to the parent device (such as a platform_device) that
      represents the hardware. As we want to give gpio_chip:s real devices,
      this is not working. We need to rename this member to parent.
      
      This was done by two coccinelle scripts, I guess it is possible to
      combine them into one, but I don't know such stuff. They look like
      this:
      
      @@
      struct gpio_chip *var;
      @@
      -var->dev
      +var->parent
      
      and:
      
      @@
      struct gpio_chip var;
      @@
      -var.dev
      +var.parent
      
      and:
      
      @@
      struct bgpio_chip *var;
      @@
      -var->gc.dev
      +var->gc.parent
      
      Plus a few instances of bgpio that I couldn't figure out how
      to teach Coccinelle to rewrite.
      
      This patch hits all over the place, but I *strongly* prefer this
      solution to any piecemal approaches that just exercise patch
      mechanics all over the place. It mainly hits drivers/gpio and
      drivers/pinctrl which is my own backyard anyway.
      
      Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
      Cc: Rafał Miłecki <zajec5@gmail.com>
      Cc: Richard Purdie <rpurdie@rpsys.net>
      Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
      Cc: Alek Du <alek.du@intel.com>
      Cc: Jaroslav Kysela <perex@perex.cz>
      Cc: Takashi Iwai <tiwai@suse.com>
      Acked-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: NLee Jones <lee.jones@linaro.org>
      Acked-by: NJiri Kosina <jkosina@suse.cz>
      Acked-by: NHans-Christian Egtvedt <egtvedt@samfundet.no>
      Acked-by: NJacek Anaszewski <j.anaszewski@samsung.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      58383c78
  16. 27 7月, 2015 1 次提交
  17. 16 7月, 2015 1 次提交
    • G
      gpio: rcar: Fine-grained Runtime PM support · 65194cb1
      Geert Uytterhoeven 提交于
      Currently gpio modules are runtime-resumed at probe time. This means the
      gpio module will be active all the time (except during system suspend,
      if not configured as a wake-up source).
      
      While an R-Car Gen2 gpio module retains pins configured for output at
      the requested level while put in standby mode, gpio registercannot be
      accessed while suspended.  Unfortunately pm_runtime_get_sync() cannot be
      called from all contexts where gpio register access is needed. Hence
      move the Runtime PM handling from probe/remove time to gpio request/free
      time, which is probably the best we can do.
      
      On r8a7791/koelsch, gpio modules 0, 1, 3, and 4 are now suspended during
      normal use (gpio2 is used for LEDs and regulators, gpio5 for keys, gpio6
      for SD-Card CD & WP, gpio7 for keys and regulators).
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      65194cb1
  18. 01 6月, 2015 1 次提交
    • G
      gpio: rcar: Check for irq_set_irq_wake() failures · 501ef0f9
      Geert Uytterhoeven 提交于
      If an interrupt controller doesn't support wake-up configuration,
      irq_set_irq_wake() returns an error code.  Then any subsequent call
      trying to deconfigure wake-up will cause an imbalance, and a warning
      will be printed:
      
          WARNING: CPU: 1 PID: 1341 at kernel/irq/manage.c:540 irq_set_irq_wake+0x9c/0xf8()
          Unbalanced IRQ 26 wake disable
      
      To fix this, refrain from any further parent interrupt controller
      (de)configuration if irq_set_irq_wake() failed.
      
      Alternative fixes would be:
        - calling "gic_set_irqchip_flags(IRQCHIP_SKIP_SET_WAKE)" from the
          platform code,
        - setting "gic_chip.flags = IRQCHIP_SKIP_SET_WAKE" in the GIC driver
          code,
      but these were withheld as the GIC hardware doesn't really support
      wake-up interrupts.
      
      Fixes: ab82fa7d ("gpio: rcar: Prevent module clock disable when wake-up is enabled")
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      501ef0f9
  19. 26 3月, 2015 3 次提交
  20. 16 1月, 2015 2 次提交
  21. 27 11月, 2014 1 次提交
  22. 22 7月, 2014 1 次提交
  23. 16 7月, 2014 1 次提交
  24. 09 7月, 2014 1 次提交
  25. 09 5月, 2014 1 次提交
  26. 29 4月, 2014 1 次提交
  27. 29 3月, 2014 1 次提交
  28. 13 12月, 2013 1 次提交
    • V
      gpio: rcar: Fix level interrupt handling · 8808b64d
      Valentine Barshak 提交于
      According to the manual, if a port is set for level detection using
      the corresponding bit in the edge/level select register and an external
      level interrupt signal is asserted, the corresponding bit in INTDT
      does not use the FF to hold the input.
      Thus, writing 1 to the corresponding bits in INTCLR cannot clear the
      corresponding bits in the INTDT register. Instead, when an external
      input signal is stopped, the corresponding bit in INTDT is cleared
      automatically.
      
      Since the INTDT bit cannot be cleared for the level interrupts until
      the interrupt signal is stopped, we end up with the infinite loop
      when using deferred (threaded) IRQ handling.
      
      Since a deferred interrupt is disabled by the low-level handler and
      re-enabled only when the deferred handler is completed, Fix the issue
      by dropping disabled interrupts from the pending mask as suggested by
      Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      
      Changes in V2:
      * Drop disabled interrupts from pending mask altogether instead of
        dropping level interrupts one by one once they get handled.
      Signed-off-by: NValentine Barshak <valentine.barshak@cogentembedded.com>
      Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Acked-by: NMagnus Damm <damm@opensource.se>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      8808b64d
  29. 03 12月, 2013 1 次提交
  30. 25 11月, 2013 3 次提交
  31. 16 10月, 2013 1 次提交