Re: [PATCH] omap: i2c: Add i2c support on omap4 platform

2010-03-07 Thread Ben Dooks
On Fri, Feb 19, 2010 at 10:03:00PM +0530, Santosh Shilimkar wrote:
 This patch is rebased version of earlier post to add I2C
 driver support to OMAP4 platform. On OMAP4, all
 I2C register address offsets are changed from OMAP1/2/3 I2C.
 In order to not have #ifdef's at various places in code,
 as well as to support multi-OMAP build, an array is created
 to hold the register addresses with it's offset.
 
 This patch was submitted, reviewed and acked on mailing list
 already. For more details refer below link
 http://www.mail-archive.com/linux-...@vger.kernel.org/msg02281.html
 
 This updated verion has a depedancy on Add support for 16-bit registers
 posted on linux-omap. Below is the patch-works link for the same
 
 http://patchwork.kernel.org/patch/72295/

currently even with this patch applied it doesn't apply cleanly.
 
 Signed-off-by: Syed Rafiuddin rafiuddin.s...@ti.com
 Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
 Acked-by: Kevin Hilman khil...@deeprootsystems.com
 Reviewed-by: Paul Walmsley p...@pwsan.com
 Reviewed-by: Tony Lindgren t...@atomide.com
 Cc: Ben Dooks ben-li...@fluff.org
 Cc: Cory Maccarrone darkstar6...@gmail.com
 ---
  drivers/i2c/busses/i2c-omap.c |  146 
 -
  1 files changed, 114 insertions(+), 32 deletions(-)
 
 diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
 index 9c3ce4d..7c15496 100644
 --- a/drivers/i2c/busses/i2c-omap.c
 +++ b/drivers/i2c/busses/i2c-omap.c
 @@ -44,29 +44,37 @@
  /* I2C controller revisions present on specific hardware */
  #define OMAP_I2C_REV_ON_2430 0x36
  #define OMAP_I2C_REV_ON_3430 0x3C
 +#define OMAP_I2C_REV_ON_4430 0x40
  
  /* timeout waiting for the controller to respond */
  #define OMAP_I2C_TIMEOUT (msecs_to_jiffies(1000))
  
 -#define OMAP_I2C_REV_REG 0x00
 -#define OMAP_I2C_IE_REG  0x01
 -#define OMAP_I2C_STAT_REG0x02
 -#define OMAP_I2C_IV_REG  0x03
  /* For OMAP3 I2C_IV has changed to I2C_WE (wakeup enable) */
 -#define OMAP_I2C_WE_REG  0x03
 -#define OMAP_I2C_SYSS_REG0x04
 -#define OMAP_I2C_BUF_REG 0x05
 -#define OMAP_I2C_CNT_REG 0x06
 -#define OMAP_I2C_DATA_REG0x07
 -#define OMAP_I2C_SYSC_REG0x08
 -#define OMAP_I2C_CON_REG 0x09
 -#define OMAP_I2C_OA_REG  0x0a
 -#define OMAP_I2C_SA_REG  0x0b
 -#define OMAP_I2C_PSC_REG 0x0c
 -#define OMAP_I2C_SCLL_REG0x0d
 -#define OMAP_I2C_SCLH_REG0x0e
 -#define OMAP_I2C_SYSTEST_REG 0x0f
 -#define OMAP_I2C_BUFSTAT_REG 0x10
 +enum {
 + OMAP_I2C_REV_REG = 0,
 + OMAP_I2C_IE_REG,
 + OMAP_I2C_STAT_REG,
 + OMAP_I2C_IV_REG,
 + OMAP_I2C_WE_REG,
 + OMAP_I2C_SYSS_REG,
 + 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,
 + OMAP_I2C_PSC_REG,
 + OMAP_I2C_SCLL_REG,
 + OMAP_I2C_SCLH_REG,
 + OMAP_I2C_SYSTEST_REG,
 + OMAP_I2C_BUFSTAT_REG,
 + OMAP_I2C_REVNB_LO,
 + OMAP_I2C_REVNB_HI,
 + OMAP_I2C_IRQSTATUS_RAW,
 + OMAP_I2C_IRQENABLE_SET,
 + OMAP_I2C_IRQENABLE_CLR,
 +};
  
  /* I2C Interrupt Enable Register (OMAP_I2C_IE): */
  #define OMAP_I2C_IE_XDR  (1  14)   /* TX Buffer drain int 
 enable */
 @@ -169,6 +177,7 @@ struct omap_i2c_dev {
   u32 speed;  /* Speed of bus in Khz */
   u16 cmd_err;
   u8  *buf;
 + u8  *regs;
   size_t  buf_len;
   struct i2c_adapter  adapter;
   u8  fifo_size;  /* use as flag and value
 @@ -187,15 +196,64 @@ struct omap_i2c_dev {
   u16 westate;
  };
  
 +const static u8 reg_map[] = {
 + [OMAP_I2C_REV_REG] = 0x00,
 + [OMAP_I2C_IE_REG] = 0x01,
 + [OMAP_I2C_STAT_REG] = 0x02,
 + [OMAP_I2C_IV_REG] = 0x03,
 + [OMAP_I2C_WE_REG] = 0x03,
 + [OMAP_I2C_SYSS_REG] = 0x04,
 + [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,
 + [OMAP_I2C_PSC_REG] = 0x0c,
 + [OMAP_I2C_SCLL_REG] = 0x0d,
 + [OMAP_I2C_SCLH_REG] = 0x0e,
 + [OMAP_I2C_SYSTEST_REG] = 0x0f,
 + [OMAP_I2C_BUFSTAT_REG] = 0x10,
 +};
 +
 +const static u8 omap4_reg_map[] = {
 + [OMAP_I2C_REV_REG] = 0x04,
 + [OMAP_I2C_IE_REG] = 0x2c,
 + [OMAP_I2C_STAT_REG] = 0x28,
 + [OMAP_I2C_IV_REG] = 0x34,
 + [OMAP_I2C_WE_REG] = 0x34,
 + [OMAP_I2C_SYSS_REG] = 0x90,
 + [OMAP_I2C_BUF_REG] = 0x94,
 + [OMAP_I2C_CNT_REG] = 0x98,
 + [OMAP_I2C_DATA_REG] = 0x9c,
 + [OMAP_I2C_SYSC_REG] = 0x20,
 +  

RE: [PATCH] omap: i2c: Add i2c support on omap4 platform

2010-03-07 Thread Shilimkar, Santosh
 -Original Message-
 From: Ben Dooks [mailto:ben-li...@fluff.org]
 Sent: Monday, March 08, 2010 3:48 AM
 To: Shilimkar, Santosh
 Cc: ben-li...@fluff.org; linux-omap@vger.kernel.org; 
 linux-...@vger.kernel.org; Syed, Rafiuddin; Cory
 Maccarrone
 Subject: Re: [PATCH] omap: i2c: Add i2c support on omap4 platform
 
 On Fri, Feb 19, 2010 at 10:03:00PM +0530, Santosh Shilimkar wrote:
  This patch is rebased version of earlier post to add I2C
  driver support to OMAP4 platform. On OMAP4, all
  I2C register address offsets are changed from OMAP1/2/3 I2C.
  In order to not have #ifdef's at various places in code,
  as well as to support multi-OMAP build, an array is created
  to hold the register addresses with it's offset.
 
  This patch was submitted, reviewed and acked on mailing list
  already. For more details refer below link
  http://www.mail-archive.com/linux-...@vger.kernel.org/msg02281.html
 
  This updated verion has a depedancy on Add support for 16-bit registers
  posted on linux-omap. Below is the patch-works link for the same
 
  http://patchwork.kernel.org/patch/72295/
 
 currently even with this patch applied it doesn't apply cleanly.
May be it needs refresh after recent merges? Are you ok if I refresh this patch
against latest mainline on top of below patch and repost
http://patchwork.kernel.org/patch/72295/
 
  Signed-off-by: Syed Rafiuddin rafiuddin.s...@ti.com
  Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
  Acked-by: Kevin Hilman khil...@deeprootsystems.com
  Reviewed-by: Paul Walmsley p...@pwsan.com
  Reviewed-by: Tony Lindgren t...@atomide.com
  Cc: Ben Dooks ben-li...@fluff.org
  Cc: Cory Maccarrone darkstar6...@gmail.com
  ---
   drivers/i2c/busses/i2c-omap.c |  146 
  -
   1 files changed, 114 insertions(+), 32 deletions(-)
 
  diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
  index 9c3ce4d..7c15496 100644
  --- a/drivers/i2c/busses/i2c-omap.c
  +++ b/drivers/i2c/busses/i2c-omap.c
  @@ -44,29 +44,37 @@
   /* I2C controller revisions present on specific hardware */
   #define OMAP_I2C_REV_ON_2430   0x36
   #define OMAP_I2C_REV_ON_3430   0x3C
  +#define OMAP_I2C_REV_ON_4430   0x40
 
   /* timeout waiting for the controller to respond */
   #define OMAP_I2C_TIMEOUT (msecs_to_jiffies(1000))
 
  -#define OMAP_I2C_REV_REG   0x00
  -#define OMAP_I2C_IE_REG0x01
  -#define OMAP_I2C_STAT_REG  0x02
  -#define OMAP_I2C_IV_REG0x03
   /* For OMAP3 I2C_IV has changed to I2C_WE (wakeup enable) */
  -#define OMAP_I2C_WE_REG0x03
  -#define OMAP_I2C_SYSS_REG  0x04
  -#define OMAP_I2C_BUF_REG   0x05
  -#define OMAP_I2C_CNT_REG   0x06
  -#define OMAP_I2C_DATA_REG  0x07
  -#define OMAP_I2C_SYSC_REG  0x08
  -#define OMAP_I2C_CON_REG   0x09
  -#define OMAP_I2C_OA_REG0x0a
  -#define OMAP_I2C_SA_REG0x0b
  -#define OMAP_I2C_PSC_REG   0x0c
  -#define OMAP_I2C_SCLL_REG  0x0d
  -#define OMAP_I2C_SCLH_REG  0x0e
  -#define OMAP_I2C_SYSTEST_REG   0x0f
  -#define OMAP_I2C_BUFSTAT_REG   0x10
  +enum {
  +   OMAP_I2C_REV_REG = 0,
  +   OMAP_I2C_IE_REG,
  +   OMAP_I2C_STAT_REG,
  +   OMAP_I2C_IV_REG,
  +   OMAP_I2C_WE_REG,
  +   OMAP_I2C_SYSS_REG,
  +   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,
  +   OMAP_I2C_PSC_REG,
  +   OMAP_I2C_SCLL_REG,
  +   OMAP_I2C_SCLH_REG,
  +   OMAP_I2C_SYSTEST_REG,
  +   OMAP_I2C_BUFSTAT_REG,
  +   OMAP_I2C_REVNB_LO,
  +   OMAP_I2C_REVNB_HI,
  +   OMAP_I2C_IRQSTATUS_RAW,
  +   OMAP_I2C_IRQENABLE_SET,
  +   OMAP_I2C_IRQENABLE_CLR,
  +};
 
   /* I2C Interrupt Enable Register (OMAP_I2C_IE): */
   #define OMAP_I2C_IE_XDR(1  14)   /* TX Buffer drain int 
  enable */
  @@ -169,6 +177,7 @@ struct omap_i2c_dev {
  u32 speed;  /* Speed of bus in Khz */
  u16 cmd_err;
  u8  *buf;
  +   u8  *regs;
  size_t  buf_len;
  struct i2c_adapter  adapter;
  u8  fifo_size;  /* use as flag and value
  @@ -187,15 +196,64 @@ struct omap_i2c_dev {
  u16 westate;
   };
 
  +const static u8 reg_map[] = {
  +   [OMAP_I2C_REV_REG] = 0x00,
  +   [OMAP_I2C_IE_REG] = 0x01,
  +   [OMAP_I2C_STAT_REG] = 0x02,
  +   [OMAP_I2C_IV_REG] = 0x03,
  +   [OMAP_I2C_WE_REG] = 0x03,
  +   [OMAP_I2C_SYSS_REG] = 0x04,
  +   [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,
  +   [OMAP_I2C_PSC_REG] = 0x0c

RE: [PATCH] omap: i2c: Add i2c support on omap4 platform

2010-03-07 Thread Shilimkar, Santosh
Ben,
 -Original Message-
 From: linux-omap-ow...@vger.kernel.org 
 [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of
 Shilimkar, Santosh
 Sent: Monday, March 08, 2010 10:31 AM
 To: Ben Dooks
 Cc: linux-omap@vger.kernel.org; linux-...@vger.kernel.org; Syed, Rafiuddin; 
 Cory Maccarrone
 Subject: RE: [PATCH] omap: i2c: Add i2c support on omap4 platform
 
  -Original Message-
  From: Ben Dooks [mailto:ben-li...@fluff.org]
  Sent: Monday, March 08, 2010 3:48 AM
  To: Shilimkar, Santosh
  Cc: ben-li...@fluff.org; linux-omap@vger.kernel.org; 
  linux-...@vger.kernel.org; Syed, Rafiuddin;
 Cory
  Maccarrone
  Subject: Re: [PATCH] omap: i2c: Add i2c support on omap4 platform
 
  On Fri, Feb 19, 2010 at 10:03:00PM +0530, Santosh Shilimkar wrote:
   This patch is rebased version of earlier post to add I2C
   driver support to OMAP4 platform. On OMAP4, all
   I2C register address offsets are changed from OMAP1/2/3 I2C.
   In order to not have #ifdef's at various places in code,
   as well as to support multi-OMAP build, an array is created
   to hold the register addresses with it's offset.
  
   This patch was submitted, reviewed and acked on mailing list
   already. For more details refer below link
   http://www.mail-archive.com/linux-...@vger.kernel.org/msg02281.html
  
   This updated verion has a depedancy on Add support for 16-bit registers
   posted on linux-omap. Below is the patch-works link for the same
  
   http://patchwork.kernel.org/patch/72295/
 
  currently even with this patch applied it doesn't apply cleanly.
 May be it needs refresh after recent merges? Are you ok if I refresh this 
 patch
 against latest mainline on top of below patch and repost
   http://patchwork.kernel.org/patch/72295/

Attached refreshed version which directly applies against the mainline since 
Add support for 16-bit registers is already merged.

Boot tested on OMAP4 SDP platform. 

Regards,
Santosh



0001-omap-i2c-Add-i2c-support-on-omap4-platform.patch
Description: 0001-omap-i2c-Add-i2c-support-on-omap4-platform.patch


Re: [PATCH] omap: i2c: Add i2c support on omap4 platform

2010-03-06 Thread Angelo Arrifano
On Ter, 2010-03-02 at 14:54 -0800, Tony Lindgren wrote:
 * Shilimkar, Santosh santosh.shilim...@ti.com [100227 21:28]:
   -Original Message-
   From: Tony Lindgren [mailto:t...@atomide.com]
   Sent: Sunday, February 28, 2010 2:11 AM
   To: Shilimkar, Santosh
   Cc: ben-li...@fluff.org; linux-omap@vger.kernel.org; 
   linux-...@vger.kernel.org; Syed, Rafiuddin; Cory
   Maccarrone; a...@linux-foundation.org
   Subject: Re: [PATCH] omap: i2c: Add i2c support on omap4 platform
   
   * Shilimkar, Santosh santosh.shilim...@ti.com [100226 20:05]:
Tony,
What we do with patch now? It's more almost 6 months that this patch is
floating without merge.
   
   Well first we should test it for all omaps. So let's add it into
   omap-testing for a few days to make sure it does not break anything.
   
   Then let's ask Ben to queue it.
   
  Ok with me.
 
 I've tried it out and seems to work just fine on 2420. I've applied
 it for testing into omap-testing (and master) branches now.
 
 Would be nice to get an ack from people using 7xx too on this.
 
 Acked-by: Tony Lindgren t...@atomide.com
 --
 To unsubscribe from this list: send the line unsubscribe linux-omap in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html

I just tested this on omap-testing with my HTC Wizard (omap850) using
board-htcherald with little modifications.
- I2C works as expected here.

Acked-by: Angelo Arrifano mik...@gmail.com
Tested-by: Angelo Arrifano mik...@gmail.com

-- 
Angelo Arrifano AKA MiKNiX
mik...@gmail.com
http://www.arrifano.com

MsC Student / Researcher
Lab. I3S - CNRS/UNSA, France
arrif...@i3s.unice.fr
http://www.i3s.unice.fr/~arrifano/

Gentoo Linux OMAP850/Embedded Official Developer
http://www.gentoo.org/~miknix
mik...@gentoo.org

Linwizard Project Leader/Developer
mik...@users.sourceforge.net

PGP Pubkey 0x3D92BB0B

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] omap: i2c: Add i2c support on omap4 platform

2010-03-06 Thread Cory Maccarrone
On Sat, Mar 6, 2010 at 4:47 PM, Angelo Arrifano mik...@gmail.com wrote:
 On Ter, 2010-03-02 at 14:54 -0800, Tony Lindgren wrote:
 * Shilimkar, Santosh santosh.shilim...@ti.com [100227 21:28]:
   -Original Message-
   From: Tony Lindgren [mailto:t...@atomide.com]
   Sent: Sunday, February 28, 2010 2:11 AM
   To: Shilimkar, Santosh
   Cc: ben-li...@fluff.org; linux-omap@vger.kernel.org; 
   linux-...@vger.kernel.org; Syed, Rafiuddin; Cory
   Maccarrone; a...@linux-foundation.org
   Subject: Re: [PATCH] omap: i2c: Add i2c support on omap4 platform
  
   * Shilimkar, Santosh santosh.shilim...@ti.com [100226 20:05]:
Tony,
What we do with patch now? It's more almost 6 months that this patch is
floating without merge.
  
   Well first we should test it for all omaps. So let's add it into
   omap-testing for a few days to make sure it does not break anything.
  
   Then let's ask Ben to queue it.
  
  Ok with me.

 I've tried it out and seems to work just fine on 2420. I've applied
 it for testing into omap-testing (and master) branches now.

 Would be nice to get an ack from people using 7xx too on this.

 Acked-by: Tony Lindgren t...@atomide.com
 --
 To unsubscribe from this list: send the line unsubscribe linux-omap in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html

 I just tested this on omap-testing with my HTC Wizard (omap850) using
 board-htcherald with little modifications.
 - I2C works as expected here.

 Acked-by: Angelo Arrifano mik...@gmail.com
 Tested-by: Angelo Arrifano mik...@gmail.com

 --
 Angelo Arrifano AKA MiKNiX
 mik...@gmail.com
 http://www.arrifano.com

 MsC Student / Researcher
 Lab. I3S - CNRS/UNSA, France
 arrif...@i3s.unice.fr
 http://www.i3s.unice.fr/~arrifano/

 Gentoo Linux OMAP850/Embedded Official Developer
 http://www.gentoo.org/~miknix
 mik...@gentoo.org

 Linwizard Project Leader/Developer
 mik...@users.sourceforge.net

 PGP Pubkey 0x3D92BB0B



I concur, I just tested it with an HTC Herald, and I2C works beautifully.

Acked-by: Cory Maccarrone darkstar6...@gmail.com
Tested-by: Cory Maccarrone darkstar6...@gmail.com

- Cory
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] omap: i2c: Add i2c support on omap4 platform

2010-03-02 Thread Tony Lindgren
* Shilimkar, Santosh santosh.shilim...@ti.com [100227 21:28]:
  -Original Message-
  From: Tony Lindgren [mailto:t...@atomide.com]
  Sent: Sunday, February 28, 2010 2:11 AM
  To: Shilimkar, Santosh
  Cc: ben-li...@fluff.org; linux-omap@vger.kernel.org; 
  linux-...@vger.kernel.org; Syed, Rafiuddin; Cory
  Maccarrone; a...@linux-foundation.org
  Subject: Re: [PATCH] omap: i2c: Add i2c support on omap4 platform
  
  * Shilimkar, Santosh santosh.shilim...@ti.com [100226 20:05]:
   Tony,
   What we do with patch now? It's more almost 6 months that this patch is
   floating without merge.
  
  Well first we should test it for all omaps. So let's add it into
  omap-testing for a few days to make sure it does not break anything.
  
  Then let's ask Ben to queue it.
  
 Ok with me.

I've tried it out and seems to work just fine on 2420. I've applied
it for testing into omap-testing (and master) branches now.

Would be nice to get an ack from people using 7xx too on this.

Acked-by: Tony Lindgren t...@atomide.com
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] omap: i2c: Add i2c support on omap4 platform

2010-02-27 Thread Tony Lindgren
* Shilimkar, Santosh santosh.shilim...@ti.com [100226 20:05]:
 Tony,
 What we do with patch now? It's more almost 6 months that this patch is
 floating without merge.

Well first we should test it for all omaps. So let's add it into
omap-testing for a few days to make sure it does not break anything.

Then let's ask Ben to queue it.

Regards,

Tony

 
  -Original Message-
  From: linux-omap-ow...@vger.kernel.org 
  [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of
  Shilimkar, Santosh
  Sent: Friday, February 26, 2010 10:28 AM
  To: Tony Lindgren
  Cc: ben-li...@fluff.org; linux-omap@vger.kernel.org; 
  linux-...@vger.kernel.org; Syed, Rafiuddin; Cory
  Maccarrone
  Subject: RE: [PATCH] omap: i2c: Add i2c support on omap4 platform
  
  Tony,
   -Original Message-
   From: Tony Lindgren [mailto:t...@atomide.com]
   Sent: Friday, February 26, 2010 3:17 AM
   To: Shilimkar, Santosh
   Cc: ben-li...@fluff.org; linux-omap@vger.kernel.org; 
   linux-...@vger.kernel.org; Syed, Rafiuddin;
  Cory
   Maccarrone
   Subject: Re: [PATCH] omap: i2c: Add i2c support on omap4 platform
  
   * Shilimkar, Santosh santosh.shilim...@ti.com [100222 21:58]:
Ben,
Did you happen to look at this ?
  
   Santosh, can you please also please clarify which omaps this
   patch has been tested on?
  
  This patch is tested on OMAP3430 SDP and OMAP4430 SDP with regular defconfig
  builds and multi-omap build.
  
 -Original Message-
 From: Shilimkar, Santosh
 Sent: Friday, February 19, 2010 10:03 PM
 To: ben-li...@fluff.org
 Cc: linux-omap@vger.kernel.org; linux-...@vger.kernel.org; Shilimkar, 
 Santosh; Syed, Rafiuddin;
   Cory
 Maccarrone
 Subject: [PATCH] omap: i2c: Add i2c support on omap4 platform

 This patch is rebased version of earlier post to add I2C
 driver support to OMAP4 platform. On OMAP4, all
 I2C register address offsets are changed from OMAP1/2/3 I2C.
 In order to not have #ifdef's at various places in code,
 as well as to support multi-OMAP build, an array is created
 to hold the register addresses with it's offset.

 This patch was submitted, reviewed and acked on mailing list
 already. For more details refer below link
 http://www.mail-archive.com/linux-...@vger.kernel.org/msg02281.html

 This updated verion has a depedancy on Add support for 16-bit 
 registers
 posted on linux-omap. Below is the patch-works link for the same

 http://patchwork.kernel.org/patch/72295/

 Signed-off-by: Syed Rafiuddin rafiuddin.s...@ti.com
 Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
 Acked-by: Kevin Hilman khil...@deeprootsystems.com
 Reviewed-by: Paul Walmsley p...@pwsan.com
 Reviewed-by: Tony Lindgren t...@atomide.com
 Cc: Ben Dooks ben-li...@fluff.org
 Cc: Cory Maccarrone darkstar6...@gmail.com
 ---
  drivers/i2c/busses/i2c-omap.c |  146 
 -
  1 files changed, 114 insertions(+), 32 deletions(-)

 diff --git a/drivers/i2c/busses/i2c-omap.c 
 b/drivers/i2c/busses/i2c-omap.c
 index 9c3ce4d..7c15496 100644
 --- a/drivers/i2c/busses/i2c-omap.c
 +++ b/drivers/i2c/busses/i2c-omap.c
 @@ -44,29 +44,37 @@
  /* I2C controller revisions present on specific hardware */
  #define OMAP_I2C_REV_ON_2430 0x36
  #define OMAP_I2C_REV_ON_3430 0x3C
 +#define OMAP_I2C_REV_ON_4430 0x40

  /* timeout waiting for the controller to respond */
  #define OMAP_I2C_TIMEOUT (msecs_to_jiffies(1000))

 -#define OMAP_I2C_REV_REG 0x00
 -#define OMAP_I2C_IE_REG  0x01
 -#define OMAP_I2C_STAT_REG0x02
 -#define OMAP_I2C_IV_REG  0x03
  /* For OMAP3 I2C_IV has changed to I2C_WE (wakeup enable) */
 -#define OMAP_I2C_WE_REG  0x03
 -#define OMAP_I2C_SYSS_REG0x04
 -#define OMAP_I2C_BUF_REG 0x05
 -#define OMAP_I2C_CNT_REG 0x06
 -#define OMAP_I2C_DATA_REG0x07
 -#define OMAP_I2C_SYSC_REG0x08
 -#define OMAP_I2C_CON_REG 0x09
 -#define OMAP_I2C_OA_REG  0x0a
 -#define OMAP_I2C_SA_REG  0x0b
 -#define OMAP_I2C_PSC_REG 0x0c
 -#define OMAP_I2C_SCLL_REG0x0d
 -#define OMAP_I2C_SCLH_REG0x0e
 -#define OMAP_I2C_SYSTEST_REG 0x0f
 -#define OMAP_I2C_BUFSTAT_REG 0x10
 +enum {
 + OMAP_I2C_REV_REG = 0,
 + OMAP_I2C_IE_REG,
 + OMAP_I2C_STAT_REG,
 + OMAP_I2C_IV_REG,
 + OMAP_I2C_WE_REG,
 + OMAP_I2C_SYSS_REG,
 + 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

RE: [PATCH] omap: i2c: Add i2c support on omap4 platform

2010-02-27 Thread Shilimkar, Santosh
 -Original Message-
 From: Tony Lindgren [mailto:t...@atomide.com]
 Sent: Sunday, February 28, 2010 2:11 AM
 To: Shilimkar, Santosh
 Cc: ben-li...@fluff.org; linux-omap@vger.kernel.org; 
 linux-...@vger.kernel.org; Syed, Rafiuddin; Cory
 Maccarrone; a...@linux-foundation.org
 Subject: Re: [PATCH] omap: i2c: Add i2c support on omap4 platform
 
 * Shilimkar, Santosh santosh.shilim...@ti.com [100226 20:05]:
  Tony,
  What we do with patch now? It's more almost 6 months that this patch is
  floating without merge.
 
 Well first we should test it for all omaps. So let's add it into
 omap-testing for a few days to make sure it does not break anything.
 
 Then let's ask Ben to queue it.
 
Ok with me.
Regards,
Santosh
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH] omap: i2c: Add i2c support on omap4 platform

2010-02-26 Thread Shilimkar, Santosh
Tony,
What we do with patch now? It's more almost 6 months that this patch is
floating without merge.

 -Original Message-
 From: linux-omap-ow...@vger.kernel.org 
 [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of
 Shilimkar, Santosh
 Sent: Friday, February 26, 2010 10:28 AM
 To: Tony Lindgren
 Cc: ben-li...@fluff.org; linux-omap@vger.kernel.org; 
 linux-...@vger.kernel.org; Syed, Rafiuddin; Cory
 Maccarrone
 Subject: RE: [PATCH] omap: i2c: Add i2c support on omap4 platform
 
 Tony,
  -Original Message-
  From: Tony Lindgren [mailto:t...@atomide.com]
  Sent: Friday, February 26, 2010 3:17 AM
  To: Shilimkar, Santosh
  Cc: ben-li...@fluff.org; linux-omap@vger.kernel.org; 
  linux-...@vger.kernel.org; Syed, Rafiuddin;
 Cory
  Maccarrone
  Subject: Re: [PATCH] omap: i2c: Add i2c support on omap4 platform
 
  * Shilimkar, Santosh santosh.shilim...@ti.com [100222 21:58]:
   Ben,
   Did you happen to look at this ?
 
  Santosh, can you please also please clarify which omaps this
  patch has been tested on?
 
 This patch is tested on OMAP3430 SDP and OMAP4430 SDP with regular defconfig
 builds and multi-omap build.
 
-Original Message-
From: Shilimkar, Santosh
Sent: Friday, February 19, 2010 10:03 PM
To: ben-li...@fluff.org
Cc: linux-omap@vger.kernel.org; linux-...@vger.kernel.org; Shilimkar, 
Santosh; Syed, Rafiuddin;
  Cory
Maccarrone
Subject: [PATCH] omap: i2c: Add i2c support on omap4 platform
   
This patch is rebased version of earlier post to add I2C
driver support to OMAP4 platform. On OMAP4, all
I2C register address offsets are changed from OMAP1/2/3 I2C.
In order to not have #ifdef's at various places in code,
as well as to support multi-OMAP build, an array is created
to hold the register addresses with it's offset.
   
This patch was submitted, reviewed and acked on mailing list
already. For more details refer below link
http://www.mail-archive.com/linux-...@vger.kernel.org/msg02281.html
   
This updated verion has a depedancy on Add support for 16-bit 
registers
posted on linux-omap. Below is the patch-works link for the same
   
http://patchwork.kernel.org/patch/72295/
   
Signed-off-by: Syed Rafiuddin rafiuddin.s...@ti.com
Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
Acked-by: Kevin Hilman khil...@deeprootsystems.com
Reviewed-by: Paul Walmsley p...@pwsan.com
Reviewed-by: Tony Lindgren t...@atomide.com
Cc: Ben Dooks ben-li...@fluff.org
Cc: Cory Maccarrone darkstar6...@gmail.com
---
 drivers/i2c/busses/i2c-omap.c |  146 
-
 1 files changed, 114 insertions(+), 32 deletions(-)
   
diff --git a/drivers/i2c/busses/i2c-omap.c 
b/drivers/i2c/busses/i2c-omap.c
index 9c3ce4d..7c15496 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -44,29 +44,37 @@
 /* I2C controller revisions present on specific hardware */
 #define OMAP_I2C_REV_ON_2430   0x36
 #define OMAP_I2C_REV_ON_3430   0x3C
+#define OMAP_I2C_REV_ON_4430   0x40
   
 /* timeout waiting for the controller to respond */
 #define OMAP_I2C_TIMEOUT (msecs_to_jiffies(1000))
   
-#define OMAP_I2C_REV_REG   0x00
-#define OMAP_I2C_IE_REG0x01
-#define OMAP_I2C_STAT_REG  0x02
-#define OMAP_I2C_IV_REG0x03
 /* For OMAP3 I2C_IV has changed to I2C_WE (wakeup enable) */
-#define OMAP_I2C_WE_REG0x03
-#define OMAP_I2C_SYSS_REG  0x04
-#define OMAP_I2C_BUF_REG   0x05
-#define OMAP_I2C_CNT_REG   0x06
-#define OMAP_I2C_DATA_REG  0x07
-#define OMAP_I2C_SYSC_REG  0x08
-#define OMAP_I2C_CON_REG   0x09
-#define OMAP_I2C_OA_REG0x0a
-#define OMAP_I2C_SA_REG0x0b
-#define OMAP_I2C_PSC_REG   0x0c
-#define OMAP_I2C_SCLL_REG  0x0d
-#define OMAP_I2C_SCLH_REG  0x0e
-#define OMAP_I2C_SYSTEST_REG   0x0f
-#define OMAP_I2C_BUFSTAT_REG   0x10
+enum {
+   OMAP_I2C_REV_REG = 0,
+   OMAP_I2C_IE_REG,
+   OMAP_I2C_STAT_REG,
+   OMAP_I2C_IV_REG,
+   OMAP_I2C_WE_REG,
+   OMAP_I2C_SYSS_REG,
+   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,
+   OMAP_I2C_PSC_REG,
+   OMAP_I2C_SCLL_REG,
+   OMAP_I2C_SCLH_REG,
+   OMAP_I2C_SYSTEST_REG,
+   OMAP_I2C_BUFSTAT_REG,
+   OMAP_I2C_REVNB_LO,
+   OMAP_I2C_REVNB_HI,
+   OMAP_I2C_IRQSTATUS_RAW,
+   OMAP_I2C_IRQENABLE_SET

Re: [PATCH] omap: i2c: Add i2c support on omap4 platform

2010-02-25 Thread Tony Lindgren
* Shilimkar, Santosh santosh.shilim...@ti.com [100222 21:58]:
 Ben,
 Did you happen to look at this ? 

Santosh, can you please also please clarify which omaps this
patch has been tested on?

Regards,

Tony
 
  -Original Message-
  From: Shilimkar, Santosh
  Sent: Friday, February 19, 2010 10:03 PM
  To: ben-li...@fluff.org
  Cc: linux-omap@vger.kernel.org; linux-...@vger.kernel.org; Shilimkar, 
  Santosh; Syed, Rafiuddin; Cory
  Maccarrone
  Subject: [PATCH] omap: i2c: Add i2c support on omap4 platform
  
  This patch is rebased version of earlier post to add I2C
  driver support to OMAP4 platform. On OMAP4, all
  I2C register address offsets are changed from OMAP1/2/3 I2C.
  In order to not have #ifdef's at various places in code,
  as well as to support multi-OMAP build, an array is created
  to hold the register addresses with it's offset.
  
  This patch was submitted, reviewed and acked on mailing list
  already. For more details refer below link
  http://www.mail-archive.com/linux-...@vger.kernel.org/msg02281.html
  
  This updated verion has a depedancy on Add support for 16-bit registers
  posted on linux-omap. Below is the patch-works link for the same
  
  http://patchwork.kernel.org/patch/72295/
  
  Signed-off-by: Syed Rafiuddin rafiuddin.s...@ti.com
  Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
  Acked-by: Kevin Hilman khil...@deeprootsystems.com
  Reviewed-by: Paul Walmsley p...@pwsan.com
  Reviewed-by: Tony Lindgren t...@atomide.com
  Cc: Ben Dooks ben-li...@fluff.org
  Cc: Cory Maccarrone darkstar6...@gmail.com
  ---
   drivers/i2c/busses/i2c-omap.c |  146 
  -
   1 files changed, 114 insertions(+), 32 deletions(-)
  
  diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
  index 9c3ce4d..7c15496 100644
  --- a/drivers/i2c/busses/i2c-omap.c
  +++ b/drivers/i2c/busses/i2c-omap.c
  @@ -44,29 +44,37 @@
   /* I2C controller revisions present on specific hardware */
   #define OMAP_I2C_REV_ON_2430   0x36
   #define OMAP_I2C_REV_ON_3430   0x3C
  +#define OMAP_I2C_REV_ON_4430   0x40
  
   /* timeout waiting for the controller to respond */
   #define OMAP_I2C_TIMEOUT (msecs_to_jiffies(1000))
  
  -#define OMAP_I2C_REV_REG   0x00
  -#define OMAP_I2C_IE_REG0x01
  -#define OMAP_I2C_STAT_REG  0x02
  -#define OMAP_I2C_IV_REG0x03
   /* For OMAP3 I2C_IV has changed to I2C_WE (wakeup enable) */
  -#define OMAP_I2C_WE_REG0x03
  -#define OMAP_I2C_SYSS_REG  0x04
  -#define OMAP_I2C_BUF_REG   0x05
  -#define OMAP_I2C_CNT_REG   0x06
  -#define OMAP_I2C_DATA_REG  0x07
  -#define OMAP_I2C_SYSC_REG  0x08
  -#define OMAP_I2C_CON_REG   0x09
  -#define OMAP_I2C_OA_REG0x0a
  -#define OMAP_I2C_SA_REG0x0b
  -#define OMAP_I2C_PSC_REG   0x0c
  -#define OMAP_I2C_SCLL_REG  0x0d
  -#define OMAP_I2C_SCLH_REG  0x0e
  -#define OMAP_I2C_SYSTEST_REG   0x0f
  -#define OMAP_I2C_BUFSTAT_REG   0x10
  +enum {
  +   OMAP_I2C_REV_REG = 0,
  +   OMAP_I2C_IE_REG,
  +   OMAP_I2C_STAT_REG,
  +   OMAP_I2C_IV_REG,
  +   OMAP_I2C_WE_REG,
  +   OMAP_I2C_SYSS_REG,
  +   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,
  +   OMAP_I2C_PSC_REG,
  +   OMAP_I2C_SCLL_REG,
  +   OMAP_I2C_SCLH_REG,
  +   OMAP_I2C_SYSTEST_REG,
  +   OMAP_I2C_BUFSTAT_REG,
  +   OMAP_I2C_REVNB_LO,
  +   OMAP_I2C_REVNB_HI,
  +   OMAP_I2C_IRQSTATUS_RAW,
  +   OMAP_I2C_IRQENABLE_SET,
  +   OMAP_I2C_IRQENABLE_CLR,
  +};
  
   /* I2C Interrupt Enable Register (OMAP_I2C_IE): */
   #define OMAP_I2C_IE_XDR(1  14)   /* TX Buffer drain int 
  enable */
  @@ -169,6 +177,7 @@ struct omap_i2c_dev {
  u32 speed;  /* Speed of bus in Khz */
  u16 cmd_err;
  u8  *buf;
  +   u8  *regs;
  size_t  buf_len;
  struct i2c_adapter  adapter;
  u8  fifo_size;  /* use as flag and value
  @@ -187,15 +196,64 @@ struct omap_i2c_dev {
  u16 westate;
   };
  
  +const static u8 reg_map[] = {
  +   [OMAP_I2C_REV_REG] = 0x00,
  +   [OMAP_I2C_IE_REG] = 0x01,
  +   [OMAP_I2C_STAT_REG] = 0x02,
  +   [OMAP_I2C_IV_REG] = 0x03,
  +   [OMAP_I2C_WE_REG] = 0x03,
  +   [OMAP_I2C_SYSS_REG] = 0x04,
  +   [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,
  +   [OMAP_I2C_PSC_REG] = 0x0c,
  +   [OMAP_I2C_SCLL_REG] = 0x0d,
  +   [OMAP_I2C_SCLH_REG] = 0x0e,
  +   [OMAP_I2C_SYSTEST_REG] = 0x0f,
  +   

RE: [PATCH] omap: i2c: Add i2c support on omap4 platform

2010-02-25 Thread Shilimkar, Santosh
Tony,
 -Original Message-
 From: Tony Lindgren [mailto:t...@atomide.com]
 Sent: Friday, February 26, 2010 3:17 AM
 To: Shilimkar, Santosh
 Cc: ben-li...@fluff.org; linux-omap@vger.kernel.org; 
 linux-...@vger.kernel.org; Syed, Rafiuddin; Cory
 Maccarrone
 Subject: Re: [PATCH] omap: i2c: Add i2c support on omap4 platform
 
 * Shilimkar, Santosh santosh.shilim...@ti.com [100222 21:58]:
  Ben,
  Did you happen to look at this ?
 
 Santosh, can you please also please clarify which omaps this
 patch has been tested on?
 
This patch is tested on OMAP3430 SDP and OMAP4430 SDP with regular defconfig
builds and multi-omap build.
 
   -Original Message-
   From: Shilimkar, Santosh
   Sent: Friday, February 19, 2010 10:03 PM
   To: ben-li...@fluff.org
   Cc: linux-omap@vger.kernel.org; linux-...@vger.kernel.org; Shilimkar, 
   Santosh; Syed, Rafiuddin;
 Cory
   Maccarrone
   Subject: [PATCH] omap: i2c: Add i2c support on omap4 platform
  
   This patch is rebased version of earlier post to add I2C
   driver support to OMAP4 platform. On OMAP4, all
   I2C register address offsets are changed from OMAP1/2/3 I2C.
   In order to not have #ifdef's at various places in code,
   as well as to support multi-OMAP build, an array is created
   to hold the register addresses with it's offset.
  
   This patch was submitted, reviewed and acked on mailing list
   already. For more details refer below link
   http://www.mail-archive.com/linux-...@vger.kernel.org/msg02281.html
  
   This updated verion has a depedancy on Add support for 16-bit registers
   posted on linux-omap. Below is the patch-works link for the same
  
   http://patchwork.kernel.org/patch/72295/
  
   Signed-off-by: Syed Rafiuddin rafiuddin.s...@ti.com
   Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
   Acked-by: Kevin Hilman khil...@deeprootsystems.com
   Reviewed-by: Paul Walmsley p...@pwsan.com
   Reviewed-by: Tony Lindgren t...@atomide.com
   Cc: Ben Dooks ben-li...@fluff.org
   Cc: Cory Maccarrone darkstar6...@gmail.com
   ---
drivers/i2c/busses/i2c-omap.c |  146 
   -
1 files changed, 114 insertions(+), 32 deletions(-)
  
   diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
   index 9c3ce4d..7c15496 100644
   --- a/drivers/i2c/busses/i2c-omap.c
   +++ b/drivers/i2c/busses/i2c-omap.c
   @@ -44,29 +44,37 @@
/* I2C controller revisions present on specific hardware */
#define OMAP_I2C_REV_ON_2430 0x36
#define OMAP_I2C_REV_ON_3430 0x3C
   +#define OMAP_I2C_REV_ON_4430 0x40
  
/* timeout waiting for the controller to respond */
#define OMAP_I2C_TIMEOUT (msecs_to_jiffies(1000))
  
   -#define OMAP_I2C_REV_REG 0x00
   -#define OMAP_I2C_IE_REG  0x01
   -#define OMAP_I2C_STAT_REG0x02
   -#define OMAP_I2C_IV_REG  0x03
/* For OMAP3 I2C_IV has changed to I2C_WE (wakeup enable) */
   -#define OMAP_I2C_WE_REG  0x03
   -#define OMAP_I2C_SYSS_REG0x04
   -#define OMAP_I2C_BUF_REG 0x05
   -#define OMAP_I2C_CNT_REG 0x06
   -#define OMAP_I2C_DATA_REG0x07
   -#define OMAP_I2C_SYSC_REG0x08
   -#define OMAP_I2C_CON_REG 0x09
   -#define OMAP_I2C_OA_REG  0x0a
   -#define OMAP_I2C_SA_REG  0x0b
   -#define OMAP_I2C_PSC_REG 0x0c
   -#define OMAP_I2C_SCLL_REG0x0d
   -#define OMAP_I2C_SCLH_REG0x0e
   -#define OMAP_I2C_SYSTEST_REG 0x0f
   -#define OMAP_I2C_BUFSTAT_REG 0x10
   +enum {
   + OMAP_I2C_REV_REG = 0,
   + OMAP_I2C_IE_REG,
   + OMAP_I2C_STAT_REG,
   + OMAP_I2C_IV_REG,
   + OMAP_I2C_WE_REG,
   + OMAP_I2C_SYSS_REG,
   + 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,
   + OMAP_I2C_PSC_REG,
   + OMAP_I2C_SCLL_REG,
   + OMAP_I2C_SCLH_REG,
   + OMAP_I2C_SYSTEST_REG,
   + OMAP_I2C_BUFSTAT_REG,
   + OMAP_I2C_REVNB_LO,
   + OMAP_I2C_REVNB_HI,
   + OMAP_I2C_IRQSTATUS_RAW,
   + OMAP_I2C_IRQENABLE_SET,
   + OMAP_I2C_IRQENABLE_CLR,
   +};
  
/* I2C Interrupt Enable Register (OMAP_I2C_IE): */
#define OMAP_I2C_IE_XDR  (1  14)   /* TX Buffer drain int 
   enable */
   @@ -169,6 +177,7 @@ struct omap_i2c_dev {
 u32 speed;  /* Speed of bus in Khz */
 u16 cmd_err;
 u8  *buf;
   + u8  *regs;
 size_t  buf_len;
 struct i2c_adapter  adapter;
 u8  fifo_size;  /* use as flag and value
   @@ -187,15 +196,64 @@ struct omap_i2c_dev {
 u16 westate;
};
  
   +const static u8 reg_map[] = {
   + [OMAP_I2C_REV_REG] = 0x00,
   + [OMAP_I2C_IE_REG] = 0x01,
   + [OMAP_I2C_STAT_REG] = 0x02,
   + [OMAP_I2C_IV_REG

RE: [PATCH] omap: i2c: Add i2c support on omap4 platform

2010-02-22 Thread Shilimkar, Santosh
Ben,
Did you happen to look at this ? 

 -Original Message-
 From: Shilimkar, Santosh
 Sent: Friday, February 19, 2010 10:03 PM
 To: ben-li...@fluff.org
 Cc: linux-omap@vger.kernel.org; linux-...@vger.kernel.org; Shilimkar, 
 Santosh; Syed, Rafiuddin; Cory
 Maccarrone
 Subject: [PATCH] omap: i2c: Add i2c support on omap4 platform
 
 This patch is rebased version of earlier post to add I2C
 driver support to OMAP4 platform. On OMAP4, all
 I2C register address offsets are changed from OMAP1/2/3 I2C.
 In order to not have #ifdef's at various places in code,
 as well as to support multi-OMAP build, an array is created
 to hold the register addresses with it's offset.
 
 This patch was submitted, reviewed and acked on mailing list
 already. For more details refer below link
 http://www.mail-archive.com/linux-...@vger.kernel.org/msg02281.html
 
 This updated verion has a depedancy on Add support for 16-bit registers
 posted on linux-omap. Below is the patch-works link for the same
 
 http://patchwork.kernel.org/patch/72295/
 
 Signed-off-by: Syed Rafiuddin rafiuddin.s...@ti.com
 Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
 Acked-by: Kevin Hilman khil...@deeprootsystems.com
 Reviewed-by: Paul Walmsley p...@pwsan.com
 Reviewed-by: Tony Lindgren t...@atomide.com
 Cc: Ben Dooks ben-li...@fluff.org
 Cc: Cory Maccarrone darkstar6...@gmail.com
 ---
  drivers/i2c/busses/i2c-omap.c |  146 
 -
  1 files changed, 114 insertions(+), 32 deletions(-)
 
 diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
 index 9c3ce4d..7c15496 100644
 --- a/drivers/i2c/busses/i2c-omap.c
 +++ b/drivers/i2c/busses/i2c-omap.c
 @@ -44,29 +44,37 @@
  /* I2C controller revisions present on specific hardware */
  #define OMAP_I2C_REV_ON_2430 0x36
  #define OMAP_I2C_REV_ON_3430 0x3C
 +#define OMAP_I2C_REV_ON_4430 0x40
 
  /* timeout waiting for the controller to respond */
  #define OMAP_I2C_TIMEOUT (msecs_to_jiffies(1000))
 
 -#define OMAP_I2C_REV_REG 0x00
 -#define OMAP_I2C_IE_REG  0x01
 -#define OMAP_I2C_STAT_REG0x02
 -#define OMAP_I2C_IV_REG  0x03
  /* For OMAP3 I2C_IV has changed to I2C_WE (wakeup enable) */
 -#define OMAP_I2C_WE_REG  0x03
 -#define OMAP_I2C_SYSS_REG0x04
 -#define OMAP_I2C_BUF_REG 0x05
 -#define OMAP_I2C_CNT_REG 0x06
 -#define OMAP_I2C_DATA_REG0x07
 -#define OMAP_I2C_SYSC_REG0x08
 -#define OMAP_I2C_CON_REG 0x09
 -#define OMAP_I2C_OA_REG  0x0a
 -#define OMAP_I2C_SA_REG  0x0b
 -#define OMAP_I2C_PSC_REG 0x0c
 -#define OMAP_I2C_SCLL_REG0x0d
 -#define OMAP_I2C_SCLH_REG0x0e
 -#define OMAP_I2C_SYSTEST_REG 0x0f
 -#define OMAP_I2C_BUFSTAT_REG 0x10
 +enum {
 + OMAP_I2C_REV_REG = 0,
 + OMAP_I2C_IE_REG,
 + OMAP_I2C_STAT_REG,
 + OMAP_I2C_IV_REG,
 + OMAP_I2C_WE_REG,
 + OMAP_I2C_SYSS_REG,
 + 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,
 + OMAP_I2C_PSC_REG,
 + OMAP_I2C_SCLL_REG,
 + OMAP_I2C_SCLH_REG,
 + OMAP_I2C_SYSTEST_REG,
 + OMAP_I2C_BUFSTAT_REG,
 + OMAP_I2C_REVNB_LO,
 + OMAP_I2C_REVNB_HI,
 + OMAP_I2C_IRQSTATUS_RAW,
 + OMAP_I2C_IRQENABLE_SET,
 + OMAP_I2C_IRQENABLE_CLR,
 +};
 
  /* I2C Interrupt Enable Register (OMAP_I2C_IE): */
  #define OMAP_I2C_IE_XDR  (1  14)   /* TX Buffer drain int 
 enable */
 @@ -169,6 +177,7 @@ struct omap_i2c_dev {
   u32 speed;  /* Speed of bus in Khz */
   u16 cmd_err;
   u8  *buf;
 + u8  *regs;
   size_t  buf_len;
   struct i2c_adapter  adapter;
   u8  fifo_size;  /* use as flag and value
 @@ -187,15 +196,64 @@ struct omap_i2c_dev {
   u16 westate;
  };
 
 +const static u8 reg_map[] = {
 + [OMAP_I2C_REV_REG] = 0x00,
 + [OMAP_I2C_IE_REG] = 0x01,
 + [OMAP_I2C_STAT_REG] = 0x02,
 + [OMAP_I2C_IV_REG] = 0x03,
 + [OMAP_I2C_WE_REG] = 0x03,
 + [OMAP_I2C_SYSS_REG] = 0x04,
 + [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,
 + [OMAP_I2C_PSC_REG] = 0x0c,
 + [OMAP_I2C_SCLL_REG] = 0x0d,
 + [OMAP_I2C_SCLH_REG] = 0x0e,
 + [OMAP_I2C_SYSTEST_REG] = 0x0f,
 + [OMAP_I2C_BUFSTAT_REG] = 0x10,
 +};
 +
 +const static u8 omap4_reg_map[] = {
 + [OMAP_I2C_REV_REG] = 0x04,
 + [OMAP_I2C_IE_REG] = 0x2c,
 + [OMAP_I2C_STAT_REG] = 0x28,
 + [OMAP_I2C_IV_REG] = 0x34,
 +