[PATCH 03/11] pinctrl: scmi: send the settings without argument as enabled
Clément Le Goffic
clegoffic at baylibre.com
Fri Oct 30 08:58:34 PDT 2026
bias-bus-hold, bias-disable, bias-high-impedance, drive-open-drain,
drive-open-source and drive-push-pull take no argument in Linux, so
they were sent with the value 0, which the protocol reads as disabled.
Send 1.
Fixes: eb524cb651b7 ("pinctrl: Implementation of the generic scmi-pinctrl driver")
Signed-off-by: Clément Le Goffic <clegoffic at baylibre.com>
---
drivers/pinctrl/pinctrl-scmi.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/drivers/pinctrl/pinctrl-scmi.c b/drivers/pinctrl/pinctrl-scmi.c
index 5de47e060e8c..f74ef0952ba9 100644
--- a/drivers/pinctrl/pinctrl-scmi.c
+++ b/drivers/pinctrl/pinctrl-scmi.c
@@ -173,6 +173,21 @@ static int pinctrl_scmi_map_pinconf_type_get(enum pin_config_param param,
return pinctrl_scmi_map_pinconf_type(param, type);
}
+static bool pinctrl_scmi_pinconf_arg_ignored(enum pin_config_param param)
+{
+ switch (param) {
+ case PIN_CONFIG_BIAS_BUS_HOLD:
+ case PIN_CONFIG_BIAS_DISABLE:
+ case PIN_CONFIG_BIAS_HIGH_IMPEDANCE:
+ case PIN_CONFIG_DRIVE_OPEN_DRAIN:
+ case PIN_CONFIG_DRIVE_OPEN_SOURCE:
+ case PIN_CONFIG_DRIVE_PUSH_PULL:
+ return true;
+ default:
+ return false;
+ }
+}
+
static int pinctrl_scmi_map_pinconf_type_set(enum pin_config_param param,
enum scmi_pinctrl_conf_type *type,
u32 *arg)
@@ -182,6 +197,9 @@ static int pinctrl_scmi_map_pinconf_type_set(enum pin_config_param param,
return 0;
}
+ if (pinctrl_scmi_pinconf_arg_ignored(param))
+ *arg = 1;
+
if (param == PIN_CONFIG_DRIVE_STRENGTH)
*arg *= MILLI;
--
2.56.0
More information about the linux-arm-kernel
mailing list