pinctrl: cherryview: Return correct value if pin in push-pull mode
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 5 Jun 2023 14:37:34 +0000 (17:37 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Jul 2023 14:21:36 +0000 (16:21 +0200)
[ Upstream commit 5835196a17be5cfdcad0b617f90cf4abe16951a4 ]

Currently the getter returns ENOTSUPP on pin configured in
the push-pull mode. Fix this by adding the missed switch case.

Fixes: ccdf81d08dbe ("pinctrl: cherryview: add option to set open-drain pin config")
Fixes: 6e08d6bbebeb ("pinctrl: Add Intel Cherryview/Braswell pin controller support")
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/pinctrl/intel/pinctrl-cherryview.c

index 5c4fd16..0d6b5fa 100644 (file)
@@ -947,11 +947,6 @@ static int chv_config_get(struct pinctrl_dev *pctldev, unsigned int pin,
 
                break;
 
-       case PIN_CONFIG_DRIVE_OPEN_DRAIN:
-               if (!(ctrl1 & CHV_PADCTRL1_ODEN))
-                       return -EINVAL;
-               break;
-
        case PIN_CONFIG_BIAS_HIGH_IMPEDANCE: {
                u32 cfg;
 
@@ -961,6 +956,16 @@ static int chv_config_get(struct pinctrl_dev *pctldev, unsigned int pin,
                        return -EINVAL;
 
                break;
+
+       case PIN_CONFIG_DRIVE_PUSH_PULL:
+               if (ctrl1 & CHV_PADCTRL1_ODEN)
+                       return -EINVAL;
+               break;
+
+       case PIN_CONFIG_DRIVE_OPEN_DRAIN:
+               if (!(ctrl1 & CHV_PADCTRL1_ODEN))
+                       return -EINVAL;
+               break;
        }
 
        default: