1. 24 May, 2019 1 commit
    • Randy Dunlap's avatar
      gpio: fix gpio-adp5588 build errors · e9646f0f
      Randy Dunlap authored
      The gpio-adp5588 driver uses interfaces that are provided by
      GPIOLIB_IRQCHIP, so select that symbol in its Kconfig entry.
      
      Fixes these build errors:
      
      ../drivers/gpio/gpio-adp5588.c: In function ‘adp5588_irq_handler’:
      ../drivers/gpio/gpio-adp5588.c:266:26: error: ‘struct gpio_chip’ has no member named ‘irq’
                  dev->gpio_chip.irq.domain, gpio));
                                ^
      ../drivers/gpio/gpio-adp5588.c: In function ‘adp5588_irq_setup’:
      ../drivers/gpio/gpio-adp5588.c:298:2: error: implicit declaration of function ‘gpiochip_irqchip_add_nested’ [-Werror=implicit-function-declaration]
        ret = gpiochip_irqchip_add_nested(&dev->gpio_chip,
        ^
      ../drivers/gpio/gpio-adp5588.c:307:2: error: implicit declaration of function ‘gpiochip_set_nested_irqchip’ [-Werror=implicit-function-declaration]
        gpiochip_set_nested_irqchip(&dev->gpio_chip,
        ^
      
      Fixes: 459773ae
      
       ("gpio: adp5588-gpio: support interrupt controller")
      Reported-by: default avatarkbuild test robot <lkp@intel.com>
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: linux-gpio@vger.kernel.org
      Reviewed-by: default avatarBartosz Golaszewski <bgolaszewski@baylibre.com>
      Acked-by: default avatarMichael Hennerich <michael.hennerich@analog.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      e9646f0f
  2. 08 May, 2019 1 commit
  3. 23 Apr, 2019 1 commit
    • Linus Walleij's avatar
      gpio: ixp4xx: Add driver for the IXP4xx GPIO · 813e7d36
      Linus Walleij authored
      
      
      This adds a driver for the IXP4xx GPIO block found in
      the Intel XScale IXP4xx systems.
      
      The GPIO part of this block is pretty straight-forward and
      just uses the generic MMIO GPIO library.
      
      The irqchip side of this driver is hierarchical where
      the main irqchip will receive a processed level trigger
      in response to the edge detector of the GPIO block,
      so for this reason the v2 version of the irqdomain API
      is used (as well as in the parent IXP4xx irqchip) and
      masking, unmasking and setting up the type on IRQ
      happens on several levels.
      
      Currently this GPIO controller will grab the parent
      irqdomain using a special function, but as the platform
      move toward device tree probing, this will not be needed:
      we can just look up the parent irqdomain from the device
      tree.
      
      Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      813e7d36
  4. 19 Apr, 2019 1 commit
  5. 04 Apr, 2019 1 commit
  6. 27 Mar, 2019 1 commit
  7. 26 Mar, 2019 1 commit
  8. 22 Mar, 2019 2 commits
  9. 20 Mar, 2019 1 commit
  10. 22 Feb, 2019 1 commit
  11. 09 Feb, 2019 1 commit
  12. 28 Jan, 2019 1 commit
  13. 21 Jan, 2019 1 commit
  14. 22 Dec, 2018 1 commit
  15. 21 Dec, 2018 2 commits
  16. 17 Dec, 2018 1 commit
  17. 07 Dec, 2018 1 commit
    • Vladimir Zapolskiy's avatar
      gpio: lpc18xx: add GPIO pin interrupt controller support · 5ddabfe8
      Vladimir Zapolskiy authored
      
      
      The change adds support of LPC18xx/LPC43xx GPIO pin interrupt controller
      block within SoC GPIO controller. The new interrupt controller driver
      allows to configure and capture edge or level interrupts on 8 arbitrary
      selectedinput GPIO pins, and lift the signals to be reported as NVIC rising
      edge interrupts. Configuration of a particular GPIO pin to serve as
      interrupt and its mapping to an interrupt on NVIC is done by SCU pin
      controller, for more details see description of 'nxp,gpio-pin-interrupt'
      device tree property of a GPIO pin [1].
      
      From LPC18xx and LPC43xx User Manuals the GPIO controller consists of
      the following blocks:
      * GPIO pin interrupt block at 0x40087000, this change adds its support,
      * GPIO GROUP0 interrupt block at 0x40088000,
      * GPIO GROUP1 interrupt block at 0x40089000,
      * GPIO port block at 0x400F4000, it is supported by the original driver.
      
      While all 4 sub-controller blocks have their own I/O addresses, moreover
      all 3 interrupt blocks are APB0 peripherals and high-speed GPIO block is
      an AHB slave, according to the hardware manual the GPIO controller is
      seen as a single block, and 4 sub-controllers have the shared reset signal
      RGU #28 and clock to register interface CLK_CPU_GPIO on CCU1.
      
      Likely support of two GPIO group interrupt blocks won't be added in short
      term, because the mechanism to mask several interrupt sources is not well
      defined.
      
      [1] Documentation/devicetree/bindings/pinctrl/nxp,lpc1850-scu.txt
      Signed-off-by: default avatarVladimir Zapolskiy <vz@mleia.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      5ddabfe8
  18. 15 Oct, 2018 1 commit
    • Randy Dunlap's avatar
      gpio: fix SNPS_CREG kconfig dependency warning · a7c0b4b8
      Randy Dunlap authored
      
      
      Fix kconfig warning for GPIO_SNPS_CREG:
      
      WARNING: unmet direct dependencies detected for OF_GPIO
        Depends on [n]: GPIOLIB [=y] && OF [=n] && HAS_IOMEM [=y]
        Selected by [y]:
        - GPIO_SNPS_CREG [=y] && GPIOLIB [=y] && HAS_IOMEM [=y] && (ARC || COMPILE_TEST [=y])
      
      Drivers in drivers/gpio/Kconfig depend on OF_GPIO, not select it.
      This prevents attempting to build when OF is not enabled.
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: linux-gpio@vger.kernel.org
      Cc: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      a7c0b4b8
  19. 10 Oct, 2018 1 commit
  20. 28 Sep, 2018 1 commit
  21. 29 Aug, 2018 3 commits
  22. 10 Aug, 2018 1 commit
  23. 13 Jul, 2018 1 commit
  24. 09 Jul, 2018 1 commit
  25. 05 Jun, 2018 1 commit
  26. 23 May, 2018 1 commit
  27. 27 Mar, 2018 2 commits
  28. 26 Mar, 2018 1 commit
  29. 02 Mar, 2018 3 commits
    • Baruch Siach's avatar
      gpio: raspberrypi-exp: explain Kconfig dependency · 94337b72
      Baruch Siach authored
      Commit 7ed91505
      
       (gpio: raspberrypi-ext: fix firmware dependency)
      fixed the Kconfig dependency to ensure that gpio-raspberrypi-exp is not
      built-in when the firmware is a module. But the Kconfig syntax for doing
      so is cryptic. Add a comment to make it a little easier.
      
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarBaruch Siach <baruch@tkos.co.il>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      94337b72
    • Baolin Wang's avatar
      gpio: Add GPIO driver for Spreadtrum SC9860 platform · 9a3821c2
      Baolin Wang authored
      
      
      The Spreadtrum SC9860 platform GPIO controller contains 16 groups and
      each group contains 16 GPIOs. Each GPIO can set input/output and has
      the interrupt capability.
      Signed-off-by: default avatarBaolin Wang <baolin.wang@linaro.org>
      Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      9a3821c2
    • Arnd Bergmann's avatar
      gpio: raspberrypi-ext: fix firmware dependency · 7ed91505
      Arnd Bergmann authored
      When the firmware driver is a loadable module, the gpio driver cannot be
      built-in:
      
      drivers/gpio/gpio-raspberrypi-exp.o: In function `rpi_exp_gpio_set':
      gpio-raspberrypi-exp.c:(.text+0xb4): undefined reference to `rpi_firmware_property'
      drivers/gpio/gpio-raspberrypi-exp.o: In function `rpi_exp_gpio_get':
      gpio-raspberrypi-exp.c:(.text+0x1ec): undefined reference to `rpi_firmware_property'
      drivers/gpio/gpio-raspberrypi-exp.o: In function `rpi_exp_gpio_get_direction':
      gpio-raspberrypi-exp.c:(.text+0x360): undefined reference to `rpi_firmware_property'
      drivers/gpio/gpio-raspberrypi-exp.o: In function `rpi_exp_gpio_get_polarity':
      gpio-raspberrypi-exp.c:(.text+0x4d4): undefined reference to `rpi_firmware_property'
      drivers/gpio/gpio-raspberrypi-exp.o: In function `rpi_exp_gpio_dir_out':
      gpio-raspberrypi-exp.c:(.text+0x670): undefined reference to `rpi_firmware_property'
      drivers/gpio/gpio-raspberrypi-exp.o:gpio-raspberrypi-exp.c:(.text+0x7fc): more undefined references to `rpi_firmware_property' follow
      drivers/gpio/gpio-raspberrypi-exp.o: In function `rpi_exp_gpio_dir_in':
      drivers/gpio/gpio-raspberrypi-exp.o: In function `rpi_exp_gpio_probe':
      gpio-raspberrypi-exp.c:(.text+0x93c): undefined reference to `rpi_firmware_get'
      
      We already have a Kconfig dependency for it, but when compile-testing, it
      is disregarded.
      
      This changes the dependency so that compile-testing is only done when the
      firmware driver is completely disabled.
      
      Fixes: a98d90e7
      
       ("gpio: raspberrypi-exp: Driver for RPi3 GPIO expander via mailbox service")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      7ed91505
  30. 01 Mar, 2018 1 commit
  31. 26 Feb, 2018 1 commit
  32. 22 Feb, 2018 2 commits
    • William Breathitt Gray's avatar
      gpio: Change ISA_BUS_API dependency to selection · 35decc80
      William Breathitt Gray authored
      
      
      The ISA_BUS_API Kconfig option enables the compilation of the ISA bus
      driver. The ISA bus driver does not perform any hardware interaction,
      and is instead just a thin layer of software abstraction to eliminate
      boilerplate code common to ISA-style device drivers. Since ISA_BUS_API
      has no dependencies and does not jeopardize the integrity of the system
      when enabled, drivers should select it when the ISA bus driver
      functionality is needed.
      
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarWilliam Breathitt Gray <vilhelm.gray@gmail.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      35decc80
    • Jonathan Neuschäfer's avatar
      gpio: Add GPIO driver for Nintendo Wii · 8f55fed3
      Jonathan Neuschäfer authored
      The Nintendo Wii's chipset (called "Hollywood") has a GPIO controller
      that supports a configurable number of pins (up to 32), interrupts, and
      some special mechanisms to share the controller between the system's
      security processor (an ARM926) and the PowerPC CPU. Pin multiplexing is
      not supported.
      
      This patch adds a basic driver for this GPIO controller. Interrupt
      support will come in a later patch.
      
      This patch is based on code developed by Albert Herranz and the GameCube
      Linux Team, file arch/powerpc/platforms/embedded6xx/hlwd-gpio.c,
      available at https://github.com/DeltaResero/GC-Wii-Linux-Kernels
      
      , but
      has grown quite dissimilar.
      
      v3:
      - Do some style cleanups, as suggest by Andy Shevchenko
      
      v2:
      - Change hlwd_gpio_driver.driver.name to "gpio-hlwd" to match the
        filename (was "hlwd_gpio")
      - Remove unnecessary include of linux/of_gpio.h, as suggested by Linus
        Walleij.
      - Add struct device pointer to context struct to make it possible to use
        dev_info(hlwd->dev, "..."), as suggested by Linus Walleij
      - Use the GPIO_GENERIC library to reduce code size, as suggested by
        Linus Walleij
      - Use iowrite32be instead of __raw_writel for big-endian MMIO access, as
        suggested by Linus Walleij
      - Remove commit message paragraph suggesting to diff against the
        original driver, because it's so different now
      Signed-off-by: default avatarJonathan Neuschäfer <j.neuschaefer@gmx.net>
      Cc: Albert Herranz <albert_herranz@yahoo.es>
      Reviewed-by: default avatarSegher Boessenkool <segher@kernel.crashing.org>
      Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      8f55fed3