Skip to content

Commit 1bea6af

Browse files
Light Hsiehlinusw
authored andcommitted
pinctrl: mediatek: Refine mtk_pinconf_get()
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 <[email protected]> Link: https://lore.kernel.org/r/[email protected] Acked-by: Sean Wang <[email protected]> Signed-off-by: Linus Walleij <[email protected]>
1 parent 3599cc5 commit 1bea6af

File tree

1 file changed

+15
-25
lines changed

1 file changed

+15
-25
lines changed

drivers/pinctrl/mediatek/pinctrl-paris.c

Lines changed: 15 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
7878
{
7979
struct mtk_pinctrl *hw = pinctrl_dev_get_drvdata(pctldev);
8080
u32 param = pinconf_to_config_param(*config);
81-
int val, val2, err, reg, ret = 1;
81+
int err, reg, ret = 1;
8282
const struct mtk_pin_desc *desc;
8383

8484
if (pin >= hw->soc->npins) {
@@ -107,17 +107,11 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
107107
err = -ENOTSUPP;
108108
break;
109109
case PIN_CONFIG_SLEW_RATE:
110-
err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_SR, &val);
111-
if (err)
112-
return err;
113-
114-
if (!val)
115-
return -EINVAL;
116-
110+
err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_SR, &ret);
117111
break;
118112
case PIN_CONFIG_INPUT_ENABLE:
119113
case PIN_CONFIG_OUTPUT_ENABLE:
120-
err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_DIR, &val);
114+
err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_DIR, &ret);
121115
if (err)
122116
goto out;
123117
/* CONFIG Current direction return value
@@ -128,20 +122,22 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
128122
* input 1 (= reverse HW value)
129123
*/
130124
if (param == PIN_CONFIG_INPUT_ENABLE)
131-
val = !val;
125+
ret = !ret;
132126

133127
break;
134128
case PIN_CONFIG_INPUT_SCHMITT_ENABLE:
135-
err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_DIR, &val);
129+
err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_DIR, &ret);
136130
if (err)
137-
return err;
138-
139-
err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_SMT, &val2);
140-
if (err)
141-
return err;
131+
goto out;
132+
/* return error when in output mode
133+
* because schmitt trigger only work in input mode
134+
*/
135+
if (ret) {
136+
err = -EINVAL;
137+
goto out;
138+
}
142139

143-
if (val || !val2)
144-
return -EINVAL;
140+
err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_SMT, &ret);
145141

146142
break;
147143
case PIN_CONFIG_DRIVE_STRENGTH:
@@ -154,13 +150,7 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
154150
case MTK_PIN_CONFIG_RDSEL:
155151
reg = (param == MTK_PIN_CONFIG_TDSEL) ?
156152
PINCTRL_PIN_REG_TDSEL : PINCTRL_PIN_REG_RDSEL;
157-
158-
err = mtk_hw_get_value(hw, desc, reg, &val);
159-
if (err)
160-
return err;
161-
162-
ret = val;
163-
153+
err = mtk_hw_get_value(hw, desc, reg, &ret);
164154
break;
165155
case MTK_PIN_CONFIG_PU_ADV:
166156
case MTK_PIN_CONFIG_PD_ADV:

0 commit comments

Comments
 (0)