]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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>
Fri, 11 Aug 2023 09:33:37 +0000 (11:33 +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 d39718b4242d9d09b7faf1e289fb8d70d74823f7..fa4a9ccef1f49840f0fdc7817664e3b86e25ca81 100644 (file)
@@ -1040,11 +1040,6 @@ static int chv_config_get(struct pinctrl_dev *pctldev, unsigned pin,
 
                break;
 
-       case PIN_CONFIG_DRIVE_OPEN_DRAIN:
-               if (!(ctrl1 & CHV_PADCTRL1_ODEN))
-                       return -EINVAL;
-               break;
-
        case PIN_CONFIG_BIAS_HIGH_IMPEDANCE: {
                u32 cfg;
 
@@ -1054,6 +1049,16 @@ static int chv_config_get(struct pinctrl_dev *pctldev, unsigned 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: