• Douglas Anderson's avatar
    pinctrl: spmi-mpp: Fix pmic_mpp_config_get() to be compliant · 0d5b476f
    Douglas Anderson authored
    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 1cf86bc2 ("pinctrl:
    qcom: spmi-gpio: Fix pmic_gpio_config_get() to be compliant") and
    commit 05e0c828 ("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: cfb24f6e ("pinctrl: Qualcomm SPMI PMIC MPP pin controller driver")
    Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
    Reviewed-by: default avatarStephen Boyd <sboyd@kernel.org>
    Reviewed-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    0d5b476f
pinctrl-spmi-mpp.c 23.6 KB