]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
pinctrl: mediatek: Refine mtk_pinconf_get()
authorLight Hsieh <light.hsieh@mediatek.com>
Wed, 22 Jan 2020 06:53:12 +0000 (14:53 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 14 Feb 2020 10:32:49 +0000 (11:32 +0100)
Correct cases for PIN_CONFIG_SLEW_RATE, PIN_CONFIG_INPUT_SCHMITT_ENABLE,
and PIN_CONFIG_OUTPUT_ENABLE -
Use variable ret to receive value in mtk_hw_get_value() (instead of
variable val) since pinconf_to_config_packed() at end of this function
use variable ret to pack config value.

Signed-off-by: Light Hsieh <light.hsieh@mediatek.com>
Link: https://lore.kernel.org/r/1579675994-7001-4-git-send-email-light.hsieh@mediatek.com
Acked-by: Sean Wang <sean.wang@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/mediatek/pinctrl-paris.c

index 2f0750092fa045fb3a000bd6770ee3e3864334a5..d09a726beece5d7d99ba2352df9903fe8bae688c 100644 (file)
@@ -78,7 +78,7 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
 {
        struct mtk_pinctrl *hw = pinctrl_dev_get_drvdata(pctldev);
        u32 param = pinconf_to_config_param(*config);
-       int val, val2, err, reg, ret = 1;
+       int err, reg, ret = 1;
        const struct mtk_pin_desc *desc;
 
        if (pin >= hw->soc->npins) {
@@ -107,17 +107,11 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
                        err = -ENOTSUPP;
                break;
        case PIN_CONFIG_SLEW_RATE:
-               err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_SR, &val);
-               if (err)
-                       return err;
-
-               if (!val)
-                       return -EINVAL;
-
+               err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_SR, &ret);
                break;
        case PIN_CONFIG_INPUT_ENABLE:
        case PIN_CONFIG_OUTPUT_ENABLE:
-               err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_DIR, &val);
+               err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_DIR, &ret);
                if (err)
                        goto out;
                /*     CONFIG     Current direction return value
@@ -128,20 +122,22 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
                 *                     input        1 (= reverse HW value)
                 */
                if (param == PIN_CONFIG_INPUT_ENABLE)
-                       val = !val;
+                       ret = !ret;
 
                break;
        case PIN_CONFIG_INPUT_SCHMITT_ENABLE:
-               err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_DIR, &val);
+               err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_DIR, &ret);
                if (err)
-                       return err;
-
-               err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_SMT, &val2);
-               if (err)
-                       return err;
+                       goto out;
+               /* return error when in output mode
+                * because schmitt trigger only work in input mode
+                */
+               if (ret) {
+                       err = -EINVAL;
+                       goto out;
+               }
 
-               if (val || !val2)
-                       return -EINVAL;
+               err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_SMT, &ret);
 
                break;
        case PIN_CONFIG_DRIVE_STRENGTH:
@@ -154,13 +150,7 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
        case MTK_PIN_CONFIG_RDSEL:
                reg = (param == MTK_PIN_CONFIG_TDSEL) ?
                       PINCTRL_PIN_REG_TDSEL : PINCTRL_PIN_REG_RDSEL;
-
-               err = mtk_hw_get_value(hw, desc, reg, &val);
-               if (err)
-                       return err;
-
-               ret = val;
-
+               err = mtk_hw_get_value(hw, desc, reg, &ret);
                break;
        case MTK_PIN_CONFIG_PU_ADV:
        case MTK_PIN_CONFIG_PD_ADV: