]> git.baikalelectronics.ru Git - kernel.git/commit
pinctrl: spmi-mpp: Fix pmic_mpp_config_get() to be compliant
authorDouglas Anderson <dianders@chromium.org>
Thu, 30 Aug 2018 15:23:39 +0000 (08:23 -0700)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 5 Sep 2018 10:11:18 +0000 (12:11 +0200)
commit7aae0b697507406384577280e7def2550238cf94
treea9ae246bdf02c0fab90ecba6215525f1a7236572
parentd18030b405f02c2d11a4bebf81ea56658c8ea6a8
pinctrl: spmi-mpp: Fix pmic_mpp_config_get() to be compliant

If you look at "pinconf-groups" in debugfs for ssbi-mpp you'll notice
it looks like nonsense.

The problem is fairly well described in commit 11d17a7962de ("pinctrl:
qcom: spmi-gpio: Fix pmic_gpio_config_get() to be compliant") and
commit 49684835b9d7 ("pinctrl: msm: Fix msm_config_group_get() to be
compliant"), but it was pointed out that ssbi-mpp has the same
problem.  Let's fix it there too.

NOTE: in case it's helpful to someone reading this, the way to tell
whether to do the -EINVAL or not is to look at the PCONFDUMP for a
given attribute.  If the last element (has_arg) is false then you need
to do the -EINVAL trick.

ALSO NOTE: it seems unlikely that the values returned when we try to
get PIN_CONFIG_BIAS_PULL_UP will actually be printed since "has_arg"
is false for that one, but I guess it's still fine to return different
values so I kept doing that.  It seems like another driver (ssbi-gpio)
uses a custom attribute (PM8XXX_QCOM_PULL_UP_STRENGTH) for something
similar so maybe a future change should do that here too.

Fixes: a429998e6b68 ("pinctrl: Qualcomm SPMI PMIC MPP pin controller driver")
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/qcom/pinctrl-spmi-mpp.c