diff options
Diffstat (limited to 'drivers/pwm/pwm-tegra.c')
-rw-r--r-- | drivers/pwm/pwm-tegra.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/pwm/pwm-tegra.c b/drivers/pwm/pwm-tegra.c index 21518bea00c6..9c7f180b9f3a 100644 --- a/drivers/pwm/pwm-tegra.c +++ b/drivers/pwm/pwm-tegra.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <linux/of_device.h> | 29 | #include <linux/of_device.h> |
30 | #include <linux/pwm.h> | 30 | #include <linux/pwm.h> |
31 | #include <linux/platform_device.h> | 31 | #include <linux/platform_device.h> |
32 | #include <linux/pinctrl/consumer.h> | ||
32 | #include <linux/slab.h> | 33 | #include <linux/slab.h> |
33 | #include <linux/reset.h> | 34 | #include <linux/reset.h> |
34 | 35 | ||
@@ -255,6 +256,18 @@ static int tegra_pwm_remove(struct platform_device *pdev) | |||
255 | return pwmchip_remove(&pc->chip); | 256 | return pwmchip_remove(&pc->chip); |
256 | } | 257 | } |
257 | 258 | ||
259 | #ifdef CONFIG_PM_SLEEP | ||
260 | static int tegra_pwm_suspend(struct device *dev) | ||
261 | { | ||
262 | return pinctrl_pm_select_sleep_state(dev); | ||
263 | } | ||
264 | |||
265 | static int tegra_pwm_resume(struct device *dev) | ||
266 | { | ||
267 | return pinctrl_pm_select_default_state(dev); | ||
268 | } | ||
269 | #endif | ||
270 | |||
258 | static const struct tegra_pwm_soc tegra20_pwm_soc = { | 271 | static const struct tegra_pwm_soc tegra20_pwm_soc = { |
259 | .num_channels = 4, | 272 | .num_channels = 4, |
260 | }; | 273 | }; |
@@ -271,10 +284,15 @@ static const struct of_device_id tegra_pwm_of_match[] = { | |||
271 | 284 | ||
272 | MODULE_DEVICE_TABLE(of, tegra_pwm_of_match); | 285 | MODULE_DEVICE_TABLE(of, tegra_pwm_of_match); |
273 | 286 | ||
287 | static const struct dev_pm_ops tegra_pwm_pm_ops = { | ||
288 | SET_SYSTEM_SLEEP_PM_OPS(tegra_pwm_suspend, tegra_pwm_resume) | ||
289 | }; | ||
290 | |||
274 | static struct platform_driver tegra_pwm_driver = { | 291 | static struct platform_driver tegra_pwm_driver = { |
275 | .driver = { | 292 | .driver = { |
276 | .name = "tegra-pwm", | 293 | .name = "tegra-pwm", |
277 | .of_match_table = tegra_pwm_of_match, | 294 | .of_match_table = tegra_pwm_of_match, |
295 | .pm = &tegra_pwm_pm_ops, | ||
278 | }, | 296 | }, |
279 | .probe = tegra_pwm_probe, | 297 | .probe = tegra_pwm_probe, |
280 | .remove = tegra_pwm_remove, | 298 | .remove = tegra_pwm_remove, |