diff options
| author | Jee Su Chang <w20740@motorola.com> | 2014-05-23 13:38:22 -0500 |
|---|---|---|
| committer | Jee Su Chang <w20740@motorola.com> | 2014-05-27 14:22:24 +0000 |
| commit | 80eb3fbe8d147db15182cebbb937486945900be9 (patch) | |
| tree | bf0f9945e60ac65462b7bb2db01ad0bcd8be6752 /drivers/misc/c55_ctrl.c | |
| parent | ad4111f4224c565e1dcfa18ca261fdbbc3ce28ba (diff) | |
| download | olio-linux-3.10-80eb3fbe8d147db15182cebbb937486945900be9.tar.xz olio-linux-3.10-80eb3fbe8d147db15182cebbb937486945900be9.zip | |
IKXCLOCK-1114 C55: Set UART pins to mode 0 on resume
When C55 is brought up, if the UART TX (from OMAP) pin is low,
it causes C55's UART to get messed up.
Change-Id: I6e7267c1eb5ed250b42d217628f914f9ba8f3494
Diffstat (limited to 'drivers/misc/c55_ctrl.c')
| -rw-r--r-- | drivers/misc/c55_ctrl.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/misc/c55_ctrl.c b/drivers/misc/c55_ctrl.c index ab934a94dff..9b5bf2587cb 100644 --- a/drivers/misc/c55_ctrl.c +++ b/drivers/misc/c55_ctrl.c @@ -357,6 +357,29 @@ static int c55_ctrl_remove(struct platform_device *pdev) return 0; } +#ifdef CONFIG_PM +static int c55_ctrl_suspend(struct platform_device *dev, pm_message_t state) +{ + struct c55_ctrl_data *cdata = dev_get_drvdata(&dev->dev); + + pinctrl_select_state(cdata->pctrl, cdata->states[C55_OFF]); + + return 0; +} + +static int c55_ctrl_resume(struct platform_device *dev) +{ + struct c55_ctrl_data *cdata = dev_get_drvdata(&dev->dev); + + pinctrl_select_state(cdata->pctrl, cdata->states[C55_ON]); + + return 0; +} +#else +#define c55_ctrl_suspend NULL +#define c55_ctrl_resume NULL +#endif + static struct of_device_id c55_ctrl_match[] = { {.compatible = "ti,c55-ctrl",}, {}, @@ -377,6 +400,8 @@ static struct platform_driver c55_ctrl_driver = { }, .probe = c55_ctrl_probe, .remove = c55_ctrl_remove, + .suspend = c55_ctrl_suspend, + .resume = c55_ctrl_resume, .id_table = c55_ctrl_id_table, }; |