diff options
Diffstat (limited to 'drivers/pinctrl/pinctrl-uclass.c')
-rw-r--r-- | drivers/pinctrl/pinctrl-uclass.c | 34 |
1 files changed, 11 insertions, 23 deletions
diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c index a1b85ca87e5..8837726cc16 100644 --- a/drivers/pinctrl/pinctrl-uclass.c +++ b/drivers/pinctrl/pinctrl-uclass.c @@ -20,7 +20,6 @@ DECLARE_GLOBAL_DATA_PTR; -#if CONFIG_IS_ENABLED(PINCTRL_FULL) /** * pinctrl_config_one() - apply pinctrl settings for a single node * @@ -71,13 +70,13 @@ static int pinctrl_select_state_full(struct udevice *dev, const char *statename) */ state = dectoul(statename, &end); if (*end) - return -EINVAL; + return -ENOSYS; } snprintf(propname, sizeof(propname), "pinctrl-%d", state); list = dev_read_prop(dev, propname, &size); if (!list) - return -EINVAL; + return -ENOSYS; size /= sizeof(*list); for (i = 0; i < size; i++) { @@ -148,6 +147,7 @@ static int pinconfig_post_bind(struct udevice *dev) return 0; } +#if CONFIG_IS_ENABLED(PINCTRL_FULL) UCLASS_DRIVER(pinconfig) = { .id = UCLASS_PINCONFIG, #if CONFIG_IS_ENABLED(PINCONF_RECURSIVE) @@ -160,17 +160,6 @@ U_BOOT_DRIVER(pinconfig_generic) = { .name = "pinconfig", .id = UCLASS_PINCONFIG, }; - -#else -static int pinctrl_select_state_full(struct udevice *dev, const char *statename) -{ - return -ENODEV; -} - -static int pinconfig_post_bind(struct udevice *dev) -{ - return 0; -} #endif static int @@ -317,10 +306,10 @@ int pinctrl_select_state(struct udevice *dev, const char *statename) * Try full-implemented pinctrl first. * If it fails or is not implemented, try simple one. */ - if (pinctrl_select_state_full(dev, statename)) - return pinctrl_select_state_simple(dev); + if (CONFIG_IS_ENABLED(PINCTRL_FULL)) + return pinctrl_select_state_full(dev, statename); - return 0; + return pinctrl_select_state_simple(dev); } int pinctrl_request(struct udevice *dev, int func, int flags) @@ -393,7 +382,7 @@ int pinctrl_get_pin_muxing(struct udevice *dev, int selector, char *buf, } /** - * pinconfig_post_bind() - post binding for PINCTRL uclass + * pinctrl_post_bind() - post binding for PINCTRL uclass * Recursively bind child nodes as pinconfig devices in case of full pinctrl. * * @dev: pinctrl device @@ -409,12 +398,11 @@ static int __maybe_unused pinctrl_post_bind(struct udevice *dev) } /* - * If set_state callback is set, we assume this pinctrl driver is the - * full implementation. In this case, its child nodes should be bound - * so that peripheral devices can easily search in parent devices - * during later DT-parsing. + * If the pinctrl driver has the full implementation, its child nodes + * should be bound so that peripheral devices can easily search in + * parent devices during later DT-parsing. */ - if (ops->set_state) + if (CONFIG_IS_ENABLED(PINCTRL_FULL)) return pinconfig_post_bind(dev); return 0; |