1. 25 11月, 2016 1 次提交
    • L
      gpio: simplify adding threaded interrupts · d245b3f9
      Linus Walleij 提交于
      This tries to simplify the use of CONFIG_GPIOLIB_IRQCHIP when
      using threaded interrupts: add a new call
      gpiochip_irqchip_add_nested() to indicate that we're dealing
      with a nested rather than a chained irqchip, then create a
      separate gpiochip_set_nested_irqchip() to mirror
      the gpiochip_set_chained_irqchip() call to connect the
      parent and child interrupts.
      
      In the nested case gpiochip_set_nested_irqchip() does nothing
      more than call irq_set_parent() on each valid child interrupt,
      which has little semantic effect in the kernel, but this is
      probably still formally correct.
      
      Update all drivers using nested interrupts to use
      gpiochip_irqchip_add_nested() so we can now see clearly
      which these users are.
      
      The DLN2 driver can drop its specific hack with
      .irq_not_threaded as we now recognize whether a chip is
      threaded or not from its use of gpiochip_irqchip_add_nested()
      signature rather than from inspecting .can_sleep.
      
      We rename the .irq_parent to .irq_chained_parent since this
      parent IRQ is only really kept around for the chained
      interrupt handlers.
      
      Cc: Lars Poeschel <poeschel@lemonage.de>
      Cc: Octavian Purdila <octavian.purdila@intel.com>
      Cc: Daniel Baluta <daniel.baluta@intel.com>
      Cc: Bin Gao <bin.gao@linux.intel.com>
      Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
      Cc: Ajay Thomas <ajay.thomas.david.rajamanickam@intel.com>
      Cc: Semen Protsenko <semen.protsenko@globallogic.com>
      Cc: Alexander Stein <alexander.stein@systec-electronic.com>
      Cc: Phil Reid <preid@electromag.com.au>
      Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
      Cc: Patrice Chotard <patrice.chotard@st.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      d245b3f9
  2. 15 9月, 2016 1 次提交
    • P
      gpio: wcove: fix implicit assumption module.h is present · 39d80072
      Paul Gortmaker 提交于
      The Kconfig for this file is:
      
      drivers/gpio/Kconfig:config GPIO_WHISKEY_COVE
      drivers/gpio/Kconfig:   tristate "GPIO support for Whiskey Cove PMIC"
      
      ...but however it does not include module.h -- it in turn gets it from
      another header (gpio/driver.h) and we'd like to replace that with a
      forward delcaration of "struct module;" but if we do, this file will
      fail to compile.
      
      So we fix this first to avoid putting build failures into the bisect
      commit history.
      
      Cc: Ajay Thomas <ajay.thomas.david.rajamanickam@intel.com>
      Cc: Bin Gao <bin.gao@intel.com>
      Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
      Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Alexandre Courbot <gnurou@gmail.com>
      Cc: linux-gpio@vger.kernel.org
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      39d80072
  3. 19 8月, 2016 1 次提交
  4. 11 8月, 2016 1 次提交
    • B
      gpio: Add Intel WhiskeyCove PMIC GPIO driver · 0ba19cfc
      Bin Gao 提交于
      This patch introduces a separate GPIO driver for Intel WhiskeyCove PMIC.
      This driver is based on gpio-crystalcove.c.
      
      Changes in v7:
       - Fixed various coding style comments from Andy Shevchenko
      Changes in v6:
       - Removed unnecessary wcove_gpio_remove()
       - Used devm_gpiochip_remove() instead of gpiochip_remove()
       - Various coding style changes per Mika's comment
      Changes in v5:
       - Revisited the interrupt handler code to iterate until all pending
         interrupts are handled. This change is to avoid missing interrupt
         when we're inside the interrupt handler.
       - Used regmap_bulk_read() to read address adjacent registers.
      Changes in v4:
       - Converted CTLI_INTCNT_XX macros to less verbose ones INT_DETECT_XX.
       - Add comments about why there is no .pm for the driver.
       - Header files re-ordered.
       - Various coding style change to address Andy's comments.
      Changes in v3:
       - Fixed the year in copyright line(2015-->2016).
       - Removed DRV_NAME macro.
       - Added kernel-doc for regmap_irq_chip of the wcove_gpio structure.
       - Line length fix.
      Changes in v2:
       - Typo fix (Whsikey --> Whiskey).
       - Included linux/gpio/driver.h instead of linux/gpio.h
       - Implemented .set_single_ended().
       - Added GPIO register description.
       - Replaced container_of() with gpiochip_get_data().
       - Removed unnecessary "if (gpio > WCOVE_VGPIO_NUM" check.
       - Removed the device id table and added MODULE_ALIAS().
      Signed-off-by: NAjay Thomas <ajay.thomas.david.rajamanickam@intel.com>
      Signed-off-by: NBin Gao <bin.gao@intel.com>
      Reviewed-by: NAndy Shevchenko <andy.shevchenko@gmail.com>
      Reviewed-by: NMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      0ba19cfc