diff options
Diffstat (limited to 'drivers/regulator')
-rw-r--r-- | drivers/regulator/fixed.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/drivers/regulator/fixed.c b/drivers/regulator/fixed.c index 599ad201dca7..e9e753f8907f 100644 --- a/drivers/regulator/fixed.c +++ b/drivers/regulator/fixed.c @@ -29,7 +29,7 @@ #include <linux/regulator/of_regulator.h> #include <linux/regulator/machine.h> #include <linux/clk.h> - +#include <linux/pinctrl/consumer.h> struct fixed_voltage_data { struct regulator_desc desc; @@ -333,11 +333,32 @@ static const struct of_device_id fixed_of_match[] = { MODULE_DEVICE_TABLE(of, fixed_of_match); #endif +#ifdef CONFIG_PM_SLEEP +static int reg_fixed_voltage_suspend(struct device *dev) +{ + pinctrl_pm_select_sleep_state(dev); + + return 0; +} +static int reg_fixed_voltage_resume(struct device *dev) +{ + pinctrl_pm_select_default_state(dev); + + return 0; +} +#endif + +static const struct dev_pm_ops reg_fixed_voltage_pm_ops = { + SET_LATE_SYSTEM_SLEEP_PM_OPS(reg_fixed_voltage_suspend, + reg_fixed_voltage_resume) +}; + static struct platform_driver regulator_fixed_voltage_driver = { .probe = reg_fixed_voltage_probe, .driver = { .name = "reg-fixed-voltage", .of_match_table = of_match_ptr(fixed_of_match), + .pm = ®_fixed_voltage_pm_ops, }, }; |