1. 29 Jul, 2018 2 commits
  2. 25 Jul, 2018 1 commit
    • Linus Walleij's avatar
      Merge tag 'samsung-pinctrl-4.19' of... · 8c17dee1
      Linus Walleij authored
      Merge tag 'samsung-pinctrl-4.19' of https://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/samsung into devel
      
      Samsung pinctrl drivers changes for v4.19
      
      1. Add handling of external wakeup interrupts mask inside the pin
         controller driver.
      
         Existing solution is spread between the driver and machine code.  The
         machine code writes the mask but its value is taken from pin
         controller driver.
      
         This moves everything into pin controller driver allowing later to
         remove the cross-subsystem interaction.  Also this is a necessary
         step for implementing later Suspend to RAM on ARMv8 Exynos5433.
      
      2. Bring necessary suspend/resume callbacks for Exynos542x and
         Exynos5260.
      
      3. Document hidden requirement about one external wakeup interrupts
         device node.
      
      4. Minor documentation cleanups.
      8c17dee1
  3. 24 Jul, 2018 7 commits
  4. 17 Jul, 2018 7 commits
  5. 16 Jul, 2018 13 commits
  6. 09 Jul, 2018 3 commits
    • Douglas Anderson's avatar
      pinctrl: qcom: spmi-gpio: Fix pmic_gpio_config_get() to be compliant · 1cf86bc2
      Douglas Anderson authored
      If you do this on an sdm845 board:
        grep "" /sys/kernel/debug/pinctrl/*spmi:pmic*/pinconf-groups
      
      ...it looks like nonsense.  For every pin you see listed:
        input bias disabled, input bias high impedance, input bias pull down, input bias pull up, ...
      
      That's because pmic_gpio_config_get() isn't complying with the rules
      that pinconf_generic_dump_one() expects.  Specifically for boolean
      parameters (anything with a "struct pin_config_item" where has_arg is
      false) the function expects that the function should return its value
      not through the "config" parameter but should return "0" if the value
      is set and "-EINVAL" if the value isn't set.
      
      Let's fix this.
      
      From a quick sample of other pinctrl drivers, it appears to be
      tradition to also return 1 through the config parameter for these
      boolean parameters when they exist.  I'm not one to knock tradition,
      so I'll follow tradition and return 1 in these cases.  While I'm at
      it, I'll also continue searching for four leaf clovers, kocking on
      wood three times, and trying not to break mirrors.
      
      NOTE: This also fixes an apparent typo for reading
      PIN_CONFIG_BIAS_DISABLE where the old driver was accidentally
      using "=" instead of "==" and thus was setting some internal
      state when you tried to query PIN_CONFIG_BIAS_DISABLE.  Oops.
      
      Fixes: eadff302 ("pinctrl: Qualcomm SPMI PMIC GPIO pin controller driver")
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      1cf86bc2
    • Douglas Anderson's avatar
      pinctrl: msm: Fix msm_config_group_get() to be compliant · 05e0c828
      Douglas Anderson authored
      If you do this on an sdm845 board:
        cat /sys/kernel/debug/pinctrl/3400000.pinctrl/pinconf-groups
      
      ...it looks like nonsense.  For every pin you see listed:
        input bias bus hold, input bias disabled, input bias pull down, input bias pull up
      
      That's because msm_config_group_get() isn't complying with the rules
      that pinconf_generic_dump_one() expects.  Specifically for boolean
      parameters (anything with a "struct pin_config_item" where has_arg is
      false) the function expects that the function should return its value
      not through the "config" parameter but should return "0" if the value
      is set and "-EINVAL" if the value isn't set.
      
      Let's fix this.
      
      From a quick sample of other pinctrl drivers, it appears to be
      tradition to also return 1 through the config parameter for these
      boolean parameters when they exist.  I'm not one to knock tradition,
      so I'll follow tradition and return 1 in these cases.  While I'm at
      it, I'll also continue searching for four leaf clovers, kocking on
      wood three times, and trying not to break mirrors.
      
      Fixes: f365be09 ("pinctrl: Add Qualcomm TLMM driver")
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      05e0c828
    • Douglas Anderson's avatar
      pinctrl: Document pin_config_group_get() return codes like pin_config_get() · 63f3fb8d
      Douglas Anderson authored
      The pinconf_generic_dump_one() function makes the assumption that
      pin_config_group_get() should return -EINVAL and -ENOTSUPP just like
      pin_config_get() does.  Document that so it's more obvious.
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      63f3fb8d
  7. 02 Jul, 2018 2 commits
  8. 29 Jun, 2018 4 commits
  9. 28 Jun, 2018 1 commit
    • Christian Lamparter's avatar
      dt-bindings: pinctrl: qcom: add gpio-ranges, gpio-reserved-ranges · c1e802f6
      Christian Lamparter authored
      This patch adds the gpio-ranges and gpio-reserved-ranges property
      definitions to the binding text files supported by the pinctrl-msm
      driver framework.
      
      gpio-ranges:
      For DT-based platforms the pinctrl-msm framework currently relies
      on the deprecated-for-DT gpiochip_add_pin_range() function to add
      the range of GPIOs to be handled by the pin controller. Due to
      interactions within gpiolib code, this causes the pinctrl-msm
      driver to bail out (-517) during boot when a gpio-hog is declared.
      This can be fatal and cause the system to not boot or reset
      (for a detailed explanation and call-trace, refer to patch:
      "pinctrl: msm: fix gpio-hog related boot issues" in this series).
      
      gpio-reserved-ranges:
      The binding has been added as a precaution since the TrustZone
      firmware (aka QSEE), which is running as the hypervisor, might
      have reserved certain, but undisclosed pins. Hence reading or
      writing to the registers for those pins will cause an
      XPU violation and this subsequently crashes the kernel.
      Signed-off-by: default avatarChristian Lamparter <chunkeey@gmail.com>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      c1e802f6