* [PATCHV3 0/4] The series attempts to do the following
@ 2011-07-21 13:52 Shubhrajyoti D
2011-07-21 13:52 ` [PATCHV3 1/4] OMAP: I2C: Reset support Shubhrajyoti D
` (4 more replies)
0 siblings, 5 replies; 9+ messages in thread
From: Shubhrajyoti D @ 2011-07-21 13:52 UTC (permalink / raw)
To: linux-arm-kernel
- The reset should not be done in the driver
have support for the same.
- Remove the sysc register access in the driver.
- Restore the context only if the context is lost.
version 2
- Fix the indentation.
- Restore in the error path is not needed as we are
doing a init.
version 3
- Combine the patch 1 and 2 as i2c-omap.h isn't a generic header
Acknowledge Balaji and Santosh for the review comments.
Tested on sdp4430 and on omap3430
Shubhrajyoti D (4):
OMAP: I2C: Reset support
OMAP: I2C: Remove the reset in the init path
OMAP: I2C: Remove the SYSC register definition
OMAP: I2C: I2C register restore only if context is lost
arch/arm/plat-omap/i2c.c | 17 +++++++
drivers/i2c/busses/i2c-omap.c | 101 ++++++++++++++++-------------------------
include/linux/i2c-omap.h | 1 +
3 files changed, 57 insertions(+), 62 deletions(-)
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCHV3 1/4] OMAP: I2C: Reset support
2011-07-21 13:52 [PATCHV3 0/4] The series attempts to do the following Shubhrajyoti D
@ 2011-07-21 13:52 ` Shubhrajyoti D
2011-07-21 13:52 ` [PATCHV3 2/4] OMAP: I2C: Remove the reset in the init path Shubhrajyoti D
` (3 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Shubhrajyoti D @ 2011-07-21 13:52 UTC (permalink / raw)
To: linux-arm-kernel
Under some error conditions the i2c driver may do a reset.
Adding a reset field and support in the platform.
Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
---
arch/arm/plat-omap/i2c.c | 17 +++++++++++++++++
include/linux/i2c-omap.h | 1 +
2 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/arch/arm/plat-omap/i2c.c b/arch/arm/plat-omap/i2c.c
index 2388b8e..98a97b0 100644
--- a/arch/arm/plat-omap/i2c.c
+++ b/arch/arm/plat-omap/i2c.c
@@ -146,6 +146,22 @@ static struct omap_device_pm_latency omap_i2c_latency[] = {
.flags = OMAP_DEVICE_LATENCY_AUTO_ADJUST,
},
};
+/**
+ * omap2_i2c_reset - reset the omap i2c module.
+ * @dev: struct device*
+ */
+
+static int omap2_i2c_reset(struct device *dev)
+{
+ int r = 0;
+ struct platform_device *pdev = to_platform_device(dev);
+ struct omap_device *odev = to_omap_device(pdev);
+ struct omap_hwmod *oh;
+
+ oh = odev->hwmods[0];
+ r = omap_hwmod_reset(oh);
+ return r;
+}
static inline int omap2_i2c_add_bus(int bus_id)
{
@@ -187,6 +203,7 @@ static inline int omap2_i2c_add_bus(int bus_id)
*/
if (cpu_is_omap34xx())
pdata->set_mpu_wkup_lat = omap_pm_set_max_mpu_wakeup_lat_compat;
+ pdata->device_reset = omap2_i2c_reset;
od = omap_device_build(name, bus_id, oh, pdata,
sizeof(struct omap_i2c_bus_platform_data),
omap_i2c_latency, ARRAY_SIZE(omap_i2c_latency), 0);
diff --git a/include/linux/i2c-omap.h b/include/linux/i2c-omap.h
index 98ae49b..8aa91b6 100644
--- a/include/linux/i2c-omap.h
+++ b/include/linux/i2c-omap.h
@@ -38,6 +38,7 @@ struct omap_i2c_bus_platform_data {
int (*device_enable) (struct platform_device *pdev);
int (*device_shutdown) (struct platform_device *pdev);
int (*device_idle) (struct platform_device *pdev);
+ int (*device_reset) (struct device *dev);
};
#endif
--
1.7.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCHV3 2/4] OMAP: I2C: Remove the reset in the init path
2011-07-21 13:52 [PATCHV3 0/4] The series attempts to do the following Shubhrajyoti D
2011-07-21 13:52 ` [PATCHV3 1/4] OMAP: I2C: Reset support Shubhrajyoti D
@ 2011-07-21 13:52 ` Shubhrajyoti D
2011-07-21 13:59 ` Felipe Balbi
2011-07-21 15:30 ` Kevin Hilman
2011-07-21 13:53 ` [PATCHV3 3/4] OMAP: I2C: Remove the SYSC register definition Shubhrajyoti D
` (2 subsequent siblings)
4 siblings, 2 replies; 9+ messages in thread
From: Shubhrajyoti D @ 2011-07-21 13:52 UTC (permalink / raw)
To: linux-arm-kernel
The reset in the driver at init is not needed
anymore as the hwmod framework takes care of
reseting it.
Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
---
drivers/i2c/busses/i2c-omap.c | 73 ++++++++++++----------------------------
1 files changed, 22 insertions(+), 51 deletions(-)
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 8f87a37..8dc54d5 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -155,9 +155,6 @@ enum {
#define OMAP_I2C_SYSTEST_SDA_O (1 << 0) /* SDA line drive out */
#endif
-/* OCP_SYSSTATUS bit definitions */
-#define SYSS_RESETDONE_MASK (1 << 0)
-
/* OCP_SYSCONFIG bit definitions */
#define SYSC_CLOCKACTIVITY_MASK (0x3 << 8)
#define SYSC_SIDLEMODE_MASK (0x3 << 3)
@@ -182,6 +179,7 @@ struct omap_i2c_dev {
u32 latency; /* maximum mpu wkup latency */
void (*set_mpu_wkup_lat)(struct device *dev,
long latency);
+ int (*device_reset)(struct device *dev);
u32 speed; /* Speed of bus in Khz */
u16 cmd_err;
u8 *buf;
@@ -332,7 +330,6 @@ static int omap_i2c_init(struct omap_i2c_dev *dev)
u16 psc = 0, scll = 0, sclh = 0, buf = 0;
u16 fsscll = 0, fssclh = 0, hsscll = 0, hssclh = 0;
unsigned long fclk_rate = 12000000;
- unsigned long timeout;
unsigned long internal_clk = 0;
struct clk *fclk;
struct platform_device *pdev;
@@ -341,53 +338,16 @@ static int omap_i2c_init(struct omap_i2c_dev *dev)
pdev = to_platform_device(dev->dev);
pdata = pdev->dev.platform_data;
- if (dev->rev >= OMAP_I2C_OMAP1_REV_2) {
- /* Disable I2C controller before soft reset */
- omap_i2c_write_reg(dev, OMAP_I2C_CON_REG,
- omap_i2c_read_reg(dev, OMAP_I2C_CON_REG) &
- ~(OMAP_I2C_CON_EN));
-
- omap_i2c_write_reg(dev, OMAP_I2C_SYSC_REG, SYSC_SOFTRESET_MASK);
- /* For some reason we need to set the EN bit before the
- * reset done bit gets set. */
- timeout = jiffies + OMAP_I2C_TIMEOUT;
- omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, OMAP_I2C_CON_EN);
- while (!(omap_i2c_read_reg(dev, OMAP_I2C_SYSS_REG) &
- SYSS_RESETDONE_MASK)) {
- if (time_after(jiffies, timeout)) {
- dev_warn(dev->dev, "timeout waiting "
- "for controller reset\n");
- return -ETIMEDOUT;
- }
- msleep(1);
- }
-
- /* SYSC register is cleared by the reset; rewrite it */
- if (dev->rev == OMAP_I2C_REV_ON_2430) {
-
- omap_i2c_write_reg(dev, OMAP_I2C_SYSC_REG,
- SYSC_AUTOIDLE_MASK);
-
- } else if (dev->rev >= OMAP_I2C_REV_ON_3430) {
- dev->syscstate = SYSC_AUTOIDLE_MASK;
- dev->syscstate |= SYSC_ENAWAKEUP_MASK;
- dev->syscstate |= (SYSC_IDLEMODE_SMART <<
- __ffs(SYSC_SIDLEMODE_MASK));
- dev->syscstate |= (SYSC_CLOCKACTIVITY_FCLK <<
- __ffs(SYSC_CLOCKACTIVITY_MASK));
-
- omap_i2c_write_reg(dev, OMAP_I2C_SYSC_REG,
- dev->syscstate);
- /*
- * Enabling all wakup sources to stop I2C freezing on
- * WFI instruction.
- * REVISIT: Some wkup sources might not be needed.
- */
- dev->westate = OMAP_I2C_WE_ALL;
- if (dev->rev < OMAP_I2C_REV_ON_3530_4430)
- omap_i2c_write_reg(dev, OMAP_I2C_WE_REG,
- dev->westate);
- }
+ if (dev->rev >= OMAP_I2C_REV_ON_3430) {
+ /*
+ * Enabling all wakup sources to stop I2C freezing on
+ * WFI instruction.
+ * REVISIT: Some wkup sources might not be needed.
+ */
+ dev->westate = OMAP_I2C_WE_ALL;
+ if (dev->rev < OMAP_I2C_REV_ON_3530_4430)
+ omap_i2c_write_reg(dev, OMAP_I2C_WE_REG,
+ dev->westate);
}
omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, 0);
@@ -612,6 +572,11 @@ static int omap_i2c_xfer_msg(struct i2c_adapter *adap,
return r;
if (r == 0) {
dev_err(dev->dev, "controller timed out\n");
+ if (dev->device_reset != NULL) {
+ r = dev->device_reset(dev->dev);
+ if (r < 0)
+ dev_err(dev->dev, "reset failed\n");
+ }
omap_i2c_init(dev);
return -ETIMEDOUT;
}
@@ -622,6 +587,11 @@ static int omap_i2c_xfer_msg(struct i2c_adapter *adap,
/* We have an error */
if (dev->cmd_err & (OMAP_I2C_STAT_AL | OMAP_I2C_STAT_ROVR |
OMAP_I2C_STAT_XUDF)) {
+ if (dev->device_reset != NULL) {
+ r = dev->device_reset(dev->dev);
+ if (r < 0)
+ dev_err(dev->dev, "reset failed\n");
+ }
omap_i2c_init(dev);
return -EIO;
}
@@ -1024,6 +994,7 @@ omap_i2c_probe(struct platform_device *pdev)
if (pdata != NULL) {
speed = pdata->clkrate;
dev->set_mpu_wkup_lat = pdata->set_mpu_wkup_lat;
+ dev->device_reset = pdata->device_reset;
} else {
speed = 100; /* Default speed */
dev->set_mpu_wkup_lat = NULL;
--
1.7.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCHV3 3/4] OMAP: I2C: Remove the SYSC register definition
2011-07-21 13:52 [PATCHV3 0/4] The series attempts to do the following Shubhrajyoti D
2011-07-21 13:52 ` [PATCHV3 1/4] OMAP: I2C: Reset support Shubhrajyoti D
2011-07-21 13:52 ` [PATCHV3 2/4] OMAP: I2C: Remove the reset in the init path Shubhrajyoti D
@ 2011-07-21 13:53 ` Shubhrajyoti D
2011-07-21 13:53 ` [PATCHV3 4/4] OMAP: I2C: I2C register restore only if context is lost Shubhrajyoti D
2011-07-21 15:32 ` [PATCHV3 0/4] The series attempts to do the following Kevin Hilman
4 siblings, 0 replies; 9+ messages in thread
From: Shubhrajyoti D @ 2011-07-21 13:53 UTC (permalink / raw)
To: linux-arm-kernel
The SYSC register should not accessed in the driver removing the
define from the driver.
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
---
drivers/i2c/busses/i2c-omap.c | 4 ----
1 files changed, 0 insertions(+), 4 deletions(-)
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 8dc54d5..75bb62d 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -63,7 +63,6 @@ enum {
OMAP_I2C_BUF_REG,
OMAP_I2C_CNT_REG,
OMAP_I2C_DATA_REG,
- OMAP_I2C_SYSC_REG,
OMAP_I2C_CON_REG,
OMAP_I2C_OA_REG,
OMAP_I2C_SA_REG,
@@ -213,7 +212,6 @@ const static u8 reg_map_ip_v1[] = {
[OMAP_I2C_BUF_REG] = 0x05,
[OMAP_I2C_CNT_REG] = 0x06,
[OMAP_I2C_DATA_REG] = 0x07,
- [OMAP_I2C_SYSC_REG] = 0x08,
[OMAP_I2C_CON_REG] = 0x09,
[OMAP_I2C_OA_REG] = 0x0a,
[OMAP_I2C_SA_REG] = 0x0b,
@@ -234,7 +232,6 @@ const static u8 reg_map_ip_v2[] = {
[OMAP_I2C_BUF_REG] = 0x94,
[OMAP_I2C_CNT_REG] = 0x98,
[OMAP_I2C_DATA_REG] = 0x9c,
- [OMAP_I2C_SYSC_REG] = 0x20,
[OMAP_I2C_CON_REG] = 0xa4,
[OMAP_I2C_OA_REG] = 0xa8,
[OMAP_I2C_SA_REG] = 0xac,
@@ -281,7 +278,6 @@ static void omap_i2c_unidle(struct omap_i2c_dev *dev)
omap_i2c_write_reg(dev, OMAP_I2C_SCLL_REG, dev->scllstate);
omap_i2c_write_reg(dev, OMAP_I2C_SCLH_REG, dev->sclhstate);
omap_i2c_write_reg(dev, OMAP_I2C_BUF_REG, dev->bufstate);
- omap_i2c_write_reg(dev, OMAP_I2C_SYSC_REG, dev->syscstate);
omap_i2c_write_reg(dev, OMAP_I2C_WE_REG, dev->westate);
omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, OMAP_I2C_CON_EN);
}
--
1.7.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCHV3 4/4] OMAP: I2C: I2C register restore only if context is lost
2011-07-21 13:52 [PATCHV3 0/4] The series attempts to do the following Shubhrajyoti D
` (2 preceding siblings ...)
2011-07-21 13:53 ` [PATCHV3 3/4] OMAP: I2C: Remove the SYSC register definition Shubhrajyoti D
@ 2011-07-21 13:53 ` Shubhrajyoti D
2011-07-21 15:32 ` [PATCHV3 0/4] The series attempts to do the following Kevin Hilman
4 siblings, 0 replies; 9+ messages in thread
From: Shubhrajyoti D @ 2011-07-21 13:53 UTC (permalink / raw)
To: linux-arm-kernel
Currently i2c register restore is done always.
Adding conditional restore.
The i2c register restore is done only if the context is lost.
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
---
drivers/i2c/busses/i2c-omap.c | 24 +++++++++++++++++-------
1 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 75bb62d..dffdbfd 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -40,6 +40,7 @@
#include <linux/slab.h>
#include <linux/i2c-omap.h>
#include <linux/pm_runtime.h>
+#include <plat/omap_device.h>
/* I2C controller revisions */
#define OMAP_I2C_OMAP1_REV_2 0x20
@@ -200,6 +201,7 @@ struct omap_i2c_dev {
u16 syscstate;
u16 westate;
u16 errata;
+ u32 dev_lost_count;
};
const static u8 reg_map_ip_v1[] = {
@@ -260,6 +262,17 @@ static inline u16 omap_i2c_read_reg(struct omap_i2c_dev *i2c_dev, int reg)
(i2c_dev->regs[reg] << i2c_dev->reg_shift));
}
+static void omap_i2c_restore(struct omap_i2c_dev *dev)
+{
+ omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, 0);
+ omap_i2c_write_reg(dev, OMAP_I2C_PSC_REG, dev->pscstate);
+ omap_i2c_write_reg(dev, OMAP_I2C_SCLL_REG, dev->scllstate);
+ omap_i2c_write_reg(dev, OMAP_I2C_SCLH_REG, dev->sclhstate);
+ omap_i2c_write_reg(dev, OMAP_I2C_BUF_REG, dev->bufstate);
+ omap_i2c_write_reg(dev, OMAP_I2C_WE_REG, dev->westate);
+ omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, OMAP_I2C_CON_EN);
+}
+
static void omap_i2c_unidle(struct omap_i2c_dev *dev)
{
struct platform_device *pdev;
@@ -273,13 +286,9 @@ static void omap_i2c_unidle(struct omap_i2c_dev *dev)
pm_runtime_get_sync(&pdev->dev);
if (pdata->flags & OMAP_I2C_FLAG_RESET_REGS_POSTIDLE) {
- omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, 0);
- omap_i2c_write_reg(dev, OMAP_I2C_PSC_REG, dev->pscstate);
- omap_i2c_write_reg(dev, OMAP_I2C_SCLL_REG, dev->scllstate);
- omap_i2c_write_reg(dev, OMAP_I2C_SCLH_REG, dev->sclhstate);
- omap_i2c_write_reg(dev, OMAP_I2C_BUF_REG, dev->bufstate);
- omap_i2c_write_reg(dev, OMAP_I2C_WE_REG, dev->westate);
- omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, OMAP_I2C_CON_EN);
+ u32 loss_cnt = omap_device_get_context_loss_count(pdev);
+ if (dev->dev_lost_count != loss_cnt)
+ omap_i2c_restore(dev);
}
dev->idle = 0;
@@ -318,6 +327,7 @@ static void omap_i2c_idle(struct omap_i2c_dev *dev)
}
dev->idle = 1;
+ dev->dev_lost_count = omap_device_get_context_loss_count(pdev);
pm_runtime_put_sync(&pdev->dev);
}
--
1.7.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCHV3 2/4] OMAP: I2C: Remove the reset in the init path
2011-07-21 13:52 ` [PATCHV3 2/4] OMAP: I2C: Remove the reset in the init path Shubhrajyoti D
@ 2011-07-21 13:59 ` Felipe Balbi
2011-07-21 15:24 ` Shubhrajyoti
2011-07-21 15:30 ` Kevin Hilman
1 sibling, 1 reply; 9+ messages in thread
From: Felipe Balbi @ 2011-07-21 13:59 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
On Thu, Jul 21, 2011 at 07:22:59PM +0530, Shubhrajyoti D wrote:
> The reset in the driver at init is not needed
> anymore as the hwmod framework takes care of
> reseting it.
>
> Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
this is still doing two things:
a. remove the reset from init path
b. add and use ->device_reset() when needed.
--
balbi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20110721/98c6501c/attachment.sig>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCHV3 2/4] OMAP: I2C: Remove the reset in the init path
2011-07-21 13:59 ` Felipe Balbi
@ 2011-07-21 15:24 ` Shubhrajyoti
0 siblings, 0 replies; 9+ messages in thread
From: Shubhrajyoti @ 2011-07-21 15:24 UTC (permalink / raw)
To: linux-arm-kernel
On Thursday 21 July 2011 07:29 PM, Felipe Balbi wrote:
> Hi,
>
> On Thu, Jul 21, 2011 at 07:22:59PM +0530, Shubhrajyoti D wrote:
>> The reset in the driver at init is not needed
>> anymore as the hwmod framework takes care of
>> reseting it.
>>
>> Signed-off-by: Shubhrajyoti D<shubhrajyoti@ti.com>
> this is still doing two things:
>
> a. remove the reset from init path
> b. add and use ->device_reset() when needed.
Yes agree , will add it.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCHV3 2/4] OMAP: I2C: Remove the reset in the init path
2011-07-21 13:52 ` [PATCHV3 2/4] OMAP: I2C: Remove the reset in the init path Shubhrajyoti D
2011-07-21 13:59 ` Felipe Balbi
@ 2011-07-21 15:30 ` Kevin Hilman
1 sibling, 0 replies; 9+ messages in thread
From: Kevin Hilman @ 2011-07-21 15:30 UTC (permalink / raw)
To: linux-arm-kernel
Shubhrajyoti D <shubhrajyoti@ti.com> writes:
> The reset in the driver at init is not needed
> anymore as the hwmod framework takes care of
> reseting it.
Agreed, but...
The addition of the new places for reset (after timeout, after error) is
not immediately clear, and not described here at all.
After digging myself (since it wasn't described in the changelog), I see
that since the reset was removed from omap_i2c_init(), which was called
not only during probe, but also after time out and error handling, new
reset calls were added back in those locations.
This is the kind of thing that needs to be thoroughly described in the
changelog so reviewers who are not necessarily experts in this driver
will easily and *quickly* understand what is going on without having to
dig into all the details themselves.
Summary: Descriptive, detailed changelogs are invaluable to
reviewers/maintainers.
Kevin
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCHV3 0/4] The series attempts to do the following
2011-07-21 13:52 [PATCHV3 0/4] The series attempts to do the following Shubhrajyoti D
` (3 preceding siblings ...)
2011-07-21 13:53 ` [PATCHV3 4/4] OMAP: I2C: I2C register restore only if context is lost Shubhrajyoti D
@ 2011-07-21 15:32 ` Kevin Hilman
4 siblings, 0 replies; 9+ messages in thread
From: Kevin Hilman @ 2011-07-21 15:32 UTC (permalink / raw)
To: linux-arm-kernel
Shubhrajyoti D <shubhrajyoti@ti.com> writes:
> - The reset should not be done in the driver
> have support for the same.
> - Remove the sysc register access in the driver.
> - Restore the context only if the context is lost.
Hello,
Can you base the next version of this on my wip/i2c branch[1] which has a
couple other misc. cleanup patches that will be queued for v3.2.
Thanks,
Kevin
[1] git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm.git wip/i2c
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2011-07-21 15:32 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-21 13:52 [PATCHV3 0/4] The series attempts to do the following Shubhrajyoti D
2011-07-21 13:52 ` [PATCHV3 1/4] OMAP: I2C: Reset support Shubhrajyoti D
2011-07-21 13:52 ` [PATCHV3 2/4] OMAP: I2C: Remove the reset in the init path Shubhrajyoti D
2011-07-21 13:59 ` Felipe Balbi
2011-07-21 15:24 ` Shubhrajyoti
2011-07-21 15:30 ` Kevin Hilman
2011-07-21 13:53 ` [PATCHV3 3/4] OMAP: I2C: Remove the SYSC register definition Shubhrajyoti D
2011-07-21 13:53 ` [PATCHV3 4/4] OMAP: I2C: I2C register restore only if context is lost Shubhrajyoti D
2011-07-21 15:32 ` [PATCHV3 0/4] The series attempts to do the following Kevin Hilman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox