Skip to content

Commit 18569fa

Browse files
Wolfram SangWolfram Sang
authored andcommitted
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>
1 parent 2088716 commit 18569fa

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

drivers/i2c/busses/i2c-rcar.c

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1017,10 +1017,35 @@ static int rcar_i2c_remove(struct platform_device *pdev)
10171017
return 0;
10181018
}
10191019

1020+
#ifdef CONFIG_PM_SLEEP
1021+
static int rcar_i2c_suspend(struct device *dev)
1022+
{
1023+
struct rcar_i2c_priv *priv = dev_get_drvdata(dev);
1024+
1025+
i2c_mark_adapter_suspended(&priv->adap);
1026+
return 0;
1027+
}
1028+
1029+
static int rcar_i2c_resume(struct device *dev)
1030+
{
1031+
struct rcar_i2c_priv *priv = dev_get_drvdata(dev);
1032+
1033+
i2c_mark_adapter_resumed(&priv->adap);
1034+
return 0;
1035+
}
1036+
1037+
static SIMPLE_DEV_PM_OPS(rcar_i2c_pm_ops, rcar_i2c_suspend, rcar_i2c_resume);
1038+
1039+
#define DEV_PM_OPS (&rcar_i2c_pm_ops)
1040+
#else
1041+
#define DEV_PM_OPS NULL
1042+
#endif /* CONFIG_PM_SLEEP */
1043+
10201044
static struct platform_driver rcar_i2c_driver = {
10211045
.driver = {
10221046
.name = "i2c-rcar",
10231047
.of_match_table = rcar_i2c_dt_ids,
1048+
.pm = DEV_PM_OPS,
10241049
},
10251050
.probe = rcar_i2c_probe,
10261051
.remove = rcar_i2c_remove,

0 commit comments

Comments
 (0)