diff --git a/drivers/mmc/core/pwrseq_simple.c b/drivers/mmc/core/pwrseq_simple.c index ea4d3670560e..9565f6400620 100644 --- a/drivers/mmc/core/pwrseq_simple.c +++ b/drivers/mmc/core/pwrseq_simple.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include @@ -151,12 +152,30 @@ static int mmc_pwrseq_simple_remove(struct platform_device *pdev) return 0; } +static int mmc_pwrseq_simple_suspend(struct device *dev) +{ + pinctrl_pm_select_sleep_state(dev); + + return 0; +} + +static int mmc_pwrseq_simple_resume(struct device *dev) +{ + pinctrl_pm_select_default_state(dev); + + return 0; +} + +SIMPLE_DEV_PM_OPS(mmc_pwrseq_simple_pm_ops, mmc_pwrseq_simple_suspend, + mmc_pwrseq_simple_resume); + static struct platform_driver mmc_pwrseq_simple_driver = { .probe = mmc_pwrseq_simple_probe, .remove = mmc_pwrseq_simple_remove, .driver = { .name = "pwrseq_simple", .of_match_table = mmc_pwrseq_simple_of_match, + .pm = &mmc_pwrseq_simple_pm_ops, }, };