• Chen-Yu Tsai's avatar
    pinctrl: sunxi: Add support for fetching pinconf settings from hardware · c5fda170
    Chen-Yu Tsai authored
    The sunxi pinctrl driver only caches whatever pinconf setting was last
    set on a given pingroup. This is not particularly helpful, nor is it
    correct.
    
    Fix this by actually reading the hardware registers and returning
    the correct results or error codes. Also filter out unsupported
    pinconf settings. Since this driver has a peculiar setup of 1 pin
    per group, we can support both pin and pingroup pinconf setting
    read back with the same code. The sunxi_pconf_reg helper and code
    structure is inspired by pinctrl-msm.
    
    With this done we can also claim to support generic pinconf, by
    setting .is_generic = true in pinconf_ops.
    
    Also remove the cached config value. The behavior of this was never
    correct, as it only cached 1 setting instead of all of them. Since
    we can now read back settings directly from the hardware, it is no
    longer required.
    Signed-off-by: default avatarChen-Yu Tsai <wens@csie.org>
    Acked-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    c5fda170
pinctrl-sunxi.c 31.4 KB