Skip to content
  1. Feb 23, 2019
  2. Feb 22, 2019
  3. Feb 21, 2019
  4. Feb 20, 2019
  5. Feb 18, 2019
    • Marek Vasut's avatar
      gpio: of: Apply regulator-gpio quirk only to enable-gpios · 0e7d6f94
      Marek Vasut authored
      Since commit d6cd33ad ("regulator: gpio: Convert to use descriptors")
      the GPIO regulator had inverted the polarity of the control GPIO. This
      problem manifested itself on systems with DT containing the following
      description (snippet from salvator-common.dtsi):
      
      	gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
      	gpios-states = <1>;
      	states = <3300000 1
      		  1800000 0>;
      
      Prior to the aforementioned commit, the gpio-regulator code used
      gpio_request_array() to claim the GPIO(s) specified in the "gpios"
      DT node, while the commit changed that to devm_gpiod_get_index().
      
      The legacy gpio_request_array() calls gpio_request_one() and then
      gpiod_request(), which parses the DT flags of the "gpios" node and
      populates the GPIO descriptor flags field accordingly.
      
      The new devm_gpiod_get_index() calls gpiod_get_index(), then
      of_find_gpio(), of_get_named_gpiod_flags() with flags != NULL,
      and then of_gpio_flags_quirks(). Since commit a603a2b8
      
      
      ("gpio: of: Add special quirk to parse regulator flags"),
      of_gpio_flags_quirks() contains a quirk for regulator-gpio
      which was never triggered by the legacy gpio_request_array()
      code path, but is triggered by devm_gpiod_get_index() code
      path.
      
      This quirk checks whether a GPIO is associated with a fixed
      or gpio-regulator and if so, checks two additional conditions.
      First, whether such GPIO is active-low, and if so, ignores the
      active-low flag. Second, whether the regulator DT node does
      have an "enable-active-high" property and if the property is
      NOT present, sets the GPIO flags as active-low.
      
      The second check triggers a problem, since it is applied to all
      GPIOs associated with a gpio-regulator, rather than only on the
      "enable" GPIOs, as the old code did. This changes the way the
      gpio-regulator interprets the DT description of the control
      GPIOs.
      
      The old code using gpio_request_array() explicitly parsed the
      "enable-active-high" DT property and only applied it to the
      GPIOs described in the "enable-gpios" DT node, and only if
      those were present.
      
      This patch fixes the quirk code by only applying the quirk
      to "enable-gpios", thus restoring the old behavior.
      
      Signed-off-by: default avatarMarek Vasut <marek.vasut+renesas@gmail.com>
      Cc: Geert Uytterhoeven <geert+renesas@glider.be>
      Cc: Jan Kotas <jank@cadence.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
      Cc: linux-renesas-soc@vger.kernel.org
      To: linux-gpio@vger.kernel.org
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      0e7d6f94
    • Linus Walleij's avatar
      Merge tag 'intel-gpio-v5.1-1' of... · 0248baca
      Linus Walleij authored
      Merge tag 'intel-gpio-v5.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-gpio-intel into devel
      
      intel-gpio for v5.1-1
      
      Small clean up for Intel PMIC GPIO drivers, includes:
       - optimizing IRQ handlers by usage of for_each_set_bit()
       - sorting headers alphabetically for better maintenance
       - conversion to SPDX identifier
      
      The following is an automated git shortlog grouped by driver:
      
      crystalcove:
       -  Convert to use SPDX identifier
       -  Sort headers alphabetically
       -  Use for_each_set_bit() in IRQ handler
      
      msic:
       -  Convert to use SPDX identifier
       -  Sort headers alphabetically
       -  Remove duplicate check in IRQ handler
      
      wcove:
       -  Convert to use SPDX identifier
       -  Fix indentation
       -  Sort headers alphabetically
       -  Allow return negative error code from to_reg()
      0248baca
    • Linus Walleij's avatar
      Merge tag 'gpio-v5.1-updates-for-linus' of... · 8fab3d71
      Linus Walleij authored
      Merge tag 'gpio-v5.1-updates-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into devel
      
      gpio updates for v5.1
      
      - support for a new variant of pca953x
      - documentation fix from Wolfram
      - some tegra186 name changes
      - two minor fixes for madera and altera-a10sr
      8fab3d71
  6. Feb 14, 2019
  7. Feb 13, 2019