i2c: rcar: add suspend/resume support
Because the adapter will be set up before every transaction anyhow, we just need to mark it as suspended to the I2C core. Signed-off-by: Hiromitsu Yamasaki <hiromitsu.yamasaki.ym@renesas.com> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
This commit is contained in:
parent
2088716f90
commit
18569fa89a
|
@ -1017,10 +1017,35 @@ static int rcar_i2c_remove(struct platform_device *pdev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_PM_SLEEP
|
||||||
|
static int rcar_i2c_suspend(struct device *dev)
|
||||||
|
{
|
||||||
|
struct rcar_i2c_priv *priv = dev_get_drvdata(dev);
|
||||||
|
|
||||||
|
i2c_mark_adapter_suspended(&priv->adap);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int rcar_i2c_resume(struct device *dev)
|
||||||
|
{
|
||||||
|
struct rcar_i2c_priv *priv = dev_get_drvdata(dev);
|
||||||
|
|
||||||
|
i2c_mark_adapter_resumed(&priv->adap);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static SIMPLE_DEV_PM_OPS(rcar_i2c_pm_ops, rcar_i2c_suspend, rcar_i2c_resume);
|
||||||
|
|
||||||
|
#define DEV_PM_OPS (&rcar_i2c_pm_ops)
|
||||||
|
#else
|
||||||
|
#define DEV_PM_OPS NULL
|
||||||
|
#endif /* CONFIG_PM_SLEEP */
|
||||||
|
|
||||||
static struct platform_driver rcar_i2c_driver = {
|
static struct platform_driver rcar_i2c_driver = {
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "i2c-rcar",
|
.name = "i2c-rcar",
|
||||||
.of_match_table = rcar_i2c_dt_ids,
|
.of_match_table = rcar_i2c_dt_ids,
|
||||||
|
.pm = DEV_PM_OPS,
|
||||||
},
|
},
|
||||||
.probe = rcar_i2c_probe,
|
.probe = rcar_i2c_probe,
|
||||||
.remove = rcar_i2c_remove,
|
.remove = rcar_i2c_remove,
|
||||||
|
|
Loading…
Reference in New Issue