diff --git a/drivers/pinctrl/pinctrl.c b/drivers/pinctrl/pinctrl.c index 7c797d35b..de8361d15 100644 --- a/drivers/pinctrl/pinctrl.c +++ b/drivers/pinctrl/pinctrl.c @@ -49,7 +49,7 @@ static int pinctrl_config_one(struct device_node *np) return pdev->ops->set_state(pdev, np); } -int pinctrl_select_state(struct device_d *dev, const char *name) +int of_pinctrl_select_state(struct device_node *np, const char *name) { int state, ret; char *propname; @@ -57,13 +57,9 @@ int pinctrl_select_state(struct device_d *dev, const char *name) const __be32 *list; int size, config; phandle phandle; - struct device_node *np_config, *np; + struct device_node *np_config; const char *statename; - np = dev->device_node; - if (!np) - return 0; - if (!of_find_property(np, "pinctrl-0", NULL)) return 0; @@ -125,6 +121,22 @@ err: return ret; } +int of_pinctrl_select_state_default(struct device_node *np) +{ + return of_pinctrl_select_state(np, "default"); +} + +int pinctrl_select_state(struct device_d *dev, const char *name) +{ + struct device_node *np; + + np = dev->device_node; + if (!np) + return 0; + + return of_pinctrl_select_state(np, name); +} + int pinctrl_select_state_default(struct device_d *dev) { return pinctrl_select_state(dev, "default"); diff --git a/include/pinctrl.h b/include/pinctrl.h index 7323f8b2f..0f03b10be 100644 --- a/include/pinctrl.h +++ b/include/pinctrl.h @@ -20,6 +20,8 @@ void pinctrl_unregister(struct pinctrl_device *pdev); #ifdef CONFIG_PINCTRL int pinctrl_select_state(struct device_d *dev, const char *state); int pinctrl_select_state_default(struct device_d *dev); +int of_pinctrl_select_state(struct device_node *np, const char *state); +int of_pinctrl_select_state_default(struct device_node *np); #else static inline int pinctrl_select_state(struct device_d *dev, const char *state) { @@ -30,6 +32,16 @@ static inline int pinctrl_select_state_default(struct device_d *dev) { return -ENODEV; } + +static inline int of_pinctrl_select_state(struct device_node *np, const char *state) +{ + return -ENODEV; +} + +static inline int of_pinctrl_select_state_default(struct device_node *np) +{ + return -ENODEV; +} #endif #endif /* PINCTRL_H */