Skip to content
  • Linus Torvalds's avatar
    Merge tag 'gpio-v5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 828907ef
    Linus Torvalds authored
    Pull GPIO updates from Linus Walleij:
     "This is the bulk of GPIO development for the v5.7 kernel cycle.
    
      Core and userspace API:
    
       - The userspace API KFIFOs have been imoproved with locks that do not
         block interrupts. This makes us better at getting events to
         userspace without blocking or disturbing new events arriving in the
         same time. This was reviewed by the KFIFO maintainer Stefani. This
         is a generic improvement which paves the road for similar
         improvements in other subsystems.
    
       - We provide a new ioctl() for monitoring changes in the line
         information, such as when multiple clients are taking lines and
         giving them back, possibly reconfiguring them in the process: we
         can now monitor that and not get stuck with stale static
         information.
    
       - An example tool 'gpio-watch' is provided to showcase this
         functionality.
    
       - Timestamps for events are switched to ktime_get_ns() which is
         monotonic. We previously had a 'realtime' stamp which could move
         forward and *backward* in time, which probably would just cause
         silent bugs and weird behaviour. In the long run we see two
         relevant timestamps: ktime_get_ns() or the timestamp sometimes
         provided by the GPIO hardware itself, if that exists.
    
       - Device Tree overlay support for GPIO hogs. On systems that load
         overlays, these overlays can now contain hogs, and will then be
         respected.
    
       - Handle pin control interaction with nonexisting pin ranges in the
         GPIO library core instead of in the individual drivers.
    
      New drivers:
    
       - New driver for the Mellanox BlueField 2 GPIO controller.
    
      Driver improvements:
    
       - Introduce the BGPIOF_NO_SET_ON_INPUT flag to the generic MMIO GPIO
         library and use this flag in the MT7621 driver.
    
       - Texas Instruments OMAP CPU power management improvements, such as
         blocking of idle on pending GPIO interrupts"
    
    * tag 'gpio-v5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (59 commits)
      Revert "gpio: eic-sprd: Use devm_platform_ioremap_resource()"
      pinctrl: Unconditionally assign .request()/.free()
      gpio: Unconditionally assign .request()/.free()
      gpio: export of_pinctrl_get to modules
      pinctrl: Define of_pinctrl_get() dummy for !PINCTRL
      gpio: Rename variable in core APIs
      gpio: Avoid using pin ranges with !PINCTRL
      gpiolib: Remove unused gpio_chip parameter from gpio_set_bias()
      gpiolib: Pass gpio_desc to gpio_set_config()
      gpiolib: Introduce gpiod_set_config()
      tools: gpio: Fix out-of-tree build regression
      gpio: gpiolib: fix a doc warning
      gpio: tegra186: Add Tegra194 pin ranges for GG.0 and GG.1
      gpio: tegra186: Add support for pin ranges
      gpio: Support GPIO controllers without pin-ranges
      ARM: integrator: impd1: Use GPIO_LOOKUP() helper macro
      gpio: brcmstb: support gpio-line-names property
      tools: gpio: Fix typo in gpio-utils
      tools: gpio-hammer: Apply scripts/Lindent and retain good changes
      gpiolib: gpio_name_to_desc: factor out !name check
      ...
    828907ef