Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 112369
b: refs/heads/master
c: e7d48fa
h: refs/heads/master
i:
  112367: d163e2e
v: v3
  • Loading branch information
Russell King authored and Russell King committed Sep 9, 2008
1 parent fe52eaf commit 68b153e
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 387fa6a5eca021ed5bef5454413b7cdfda74ba41
refs/heads/master: e7d48fa2b5fbc7f74bb7ef4a8d7e080b0e831ef0
30 changes: 24 additions & 6 deletions trunk/drivers/i2c/busses/i2c-pxa.c
Original file line number Diff line number Diff line change
Expand Up @@ -909,12 +909,6 @@ static int i2c_pxa_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num
struct pxa_i2c *i2c = adap->algo_data;
int ret, i;

/* If the I2C controller is disabled we need to reset it (probably due
to a suspend/resume destroying state). We do this here as we can then
avoid worrying about resuming the controller before its users. */
if (!(readl(_ICR(i2c)) & ICR_IUE))
i2c_pxa_reset(i2c);

for (i = adap->retries; i >= 0; i--) {
ret = i2c_pxa_do_xfer(i2c, msgs, num);
if (ret != I2C_RETRY)
Expand Down Expand Up @@ -1085,9 +1079,33 @@ static int __exit i2c_pxa_remove(struct platform_device *dev)
return 0;
}

#ifdef CONFIG_PM
static int i2c_pxa_suspend_late(struct platform_device *dev, pm_message_t state)
{
struct pxa_i2c *i2c = platform_get_drvdata(dev);
clk_disable(i2c->clk);
return 0;
}

static int i2c_pxa_resume_early(struct platform_device *dev)
{
struct pxa_i2c *i2c = platform_get_drvdata(dev);

clk_enable(i2c->clk);
i2c_pxa_reset(i2c);

return 0;
}
#else
#define i2c_pxa_suspend_late NULL
#define i2c_pxa_resume_early NULL
#endif

static struct platform_driver i2c_pxa_driver = {
.probe = i2c_pxa_probe,
.remove = __exit_p(i2c_pxa_remove),
.suspend_late = i2c_pxa_suspend_late,
.resume_early = i2c_pxa_resume_early,
.driver = {
.name = "pxa2xx-i2c",
.owner = THIS_MODULE,
Expand Down

0 comments on commit 68b153e

Please sign in to comment.