All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] i2c: Add support for designware i2c controller
@ 2012-02-27  9:13 Amit Virdi
  2012-03-30  6:07 ` Amit Virdi
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Amit Virdi @ 2012-02-27  9:13 UTC (permalink / raw)
  To: u-boot

From: Vipin KUMAR <vipin.kumar@st.com>

Earlier, a driver exists in the u-boot source for designware i2c interface. That
driver was specific to spear platforms. This patch implements the i2c controller
as a generic driver which can be used by multiple platforms

The driver files are now renamed to designware_i2c.c and designware_i2c.h and
these are moved into drivers/i2c folder for reusability by other
platforms

Signed-off-by: Vipin Kumar <vipin.kumar@st.com>
Signed-off-by: Amit Virdi <amit.virdi@st.com>
---
 drivers/i2c/Makefile                               |    2 +-
 drivers/i2c/{spr_i2c.c => designware_i2c.c}        |    4 ++--
 .../spr_i2c.h => drivers/i2c/designware_i2c.h      |    6 +++---
 include/configs/spear-common.h                     |    2 +-
 4 files changed, 7 insertions(+), 7 deletions(-)
 rename drivers/i2c/{spr_i2c.c => designware_i2c.c} (98%)
 rename arch/arm/include/asm/arch-spear/spr_i2c.h => drivers/i2c/designware_i2c.h (98%)

diff --git a/drivers/i2c/Makefile b/drivers/i2c/Makefile
index 504db03..0d268f2 100644
--- a/drivers/i2c/Makefile
+++ b/drivers/i2c/Makefile
@@ -27,6 +27,7 @@ LIB	:= $(obj)libi2c.o
 
 COBJS-$(CONFIG_BFIN_TWI_I2C) += bfin-twi_i2c.o
 COBJS-$(CONFIG_DRIVER_DAVINCI_I2C) += davinci_i2c.o
+COBJS-$(CONFIG_DW_I2C) += designware_i2c.o
 COBJS-$(CONFIG_FSL_I2C) += fsl_i2c.o
 COBJS-$(CONFIG_I2C_MVTWSI) += mvtwsi.o
 COBJS-$(CONFIG_I2C_MV) += mv_i2c.o
@@ -40,7 +41,6 @@ COBJS-$(CONFIG_PPC4XX_I2C) += ppc4xx_i2c.o
 COBJS-$(CONFIG_DRIVER_S3C24X0_I2C) += s3c24x0_i2c.o
 COBJS-$(CONFIG_S3C44B0_I2C) += s3c44b0_i2c.o
 COBJS-$(CONFIG_SOFT_I2C) += soft_i2c.o
-COBJS-$(CONFIG_SPEAR_I2C) += spr_i2c.o
 COBJS-$(CONFIG_TSI108_I2C) += tsi108_i2c.o
 COBJS-$(CONFIG_U8500_I2C) += u8500_i2c.o
 COBJS-$(CONFIG_SH_I2C) += sh_i2c.o
diff --git a/drivers/i2c/spr_i2c.c b/drivers/i2c/designware_i2c.c
similarity index 98%
rename from drivers/i2c/spr_i2c.c
rename to drivers/i2c/designware_i2c.c
index eabfe84..d352146 100644
--- a/drivers/i2c/spr_i2c.c
+++ b/drivers/i2c/designware_i2c.c
@@ -24,7 +24,7 @@
 #include <common.h>
 #include <asm/io.h>
 #include <asm/arch/hardware.h>
-#include <asm/arch/spr_i2c.h>
+#include "designware_i2c.h"
 
 static struct i2c_regs *const i2c_regs_p =
     (struct i2c_regs *)CONFIG_SYS_I2C_BASE;
@@ -113,7 +113,7 @@ int i2c_get_bus_speed(void)
 /*
  * i2c_init - Init function
  * @speed:	required i2c speed
- * @slaveadd:	slave address for the spear device
+ * @slaveadd:	slave address for the device
  *
  * Initialization function.
  */
diff --git a/arch/arm/include/asm/arch-spear/spr_i2c.h b/drivers/i2c/designware_i2c.h
similarity index 98%
rename from arch/arm/include/asm/arch-spear/spr_i2c.h
rename to drivers/i2c/designware_i2c.h
index 7521ebc..03b520e 100644
--- a/arch/arm/include/asm/arch-spear/spr_i2c.h
+++ b/drivers/i2c/designware_i2c.h
@@ -21,8 +21,8 @@
  * MA 02111-1307 USA
  */
 
-#ifndef __SPR_I2C_H_
-#define __SPR_I2C_H_
+#ifndef __DW_I2C_H_
+#define __DW_I2C_H_
 
 struct i2c_regs {
 	u32 ic_con;
@@ -143,4 +143,4 @@ struct i2c_regs {
 #define I2C_FAST_SPEED		400000
 #define I2C_STANDARD_SPEED	100000
 
-#endif /* __SPR_I2C_H_ */
+#endif /* __DW_I2C_H_ */
diff --git a/include/configs/spear-common.h b/include/configs/spear-common.h
index 5a582e8..516b78e 100644
--- a/include/configs/spear-common.h
+++ b/include/configs/spear-common.h
@@ -41,7 +41,7 @@
 
 /* I2C driver configuration */
 #define CONFIG_HARD_I2C
-#define CONFIG_SPEAR_I2C
+#define CONFIG_DW_I2C
 #define CONFIG_SYS_I2C_SPEED			400000
 #define CONFIG_SYS_I2C_SLAVE			0x02
 
-- 
1.7.2.2

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH] i2c: Add support for designware i2c controller
  2012-02-27  9:13 [U-Boot] [PATCH] i2c: Add support for designware i2c controller Amit Virdi
@ 2012-03-30  6:07 ` Amit Virdi
  2012-03-30  6:10 ` [U-Boot] [PATCH] i2c:designware Turn off the ctrl when setting the speed Amit Virdi
  2012-04-24  9:11 ` [U-Boot] [PATCH] i2c: Add support for designware i2c controller Heiko Schocher
  2 siblings, 0 replies; 5+ messages in thread
From: Amit Virdi @ 2012-03-30  6:07 UTC (permalink / raw)
  To: u-boot

Heiko,

On 2/27/2012 2:43 PM, Amit VIRDI wrote:
> From: Vipin KUMAR<vipin.kumar@st.com>
>
> Earlier, a driver exists in the u-boot source for designware i2c interface. That
> driver was specific to spear platforms. This patch implements the i2c controller
> as a generic driver which can be used by multiple platforms
>
> The driver files are now renamed to designware_i2c.c and designware_i2c.h and
> these are moved into drivers/i2c folder for reusability by other
> platforms
>

Any updated on the status of this patch?

Thanks
Amit Virdi

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH] i2c:designware Turn off the ctrl when setting the speed
  2012-02-27  9:13 [U-Boot] [PATCH] i2c: Add support for designware i2c controller Amit Virdi
  2012-03-30  6:07 ` Amit Virdi
@ 2012-03-30  6:10 ` Amit Virdi
  2012-04-24  9:11   ` Heiko Schocher
  2012-04-24  9:11 ` [U-Boot] [PATCH] i2c: Add support for designware i2c controller Heiko Schocher
  2 siblings, 1 reply; 5+ messages in thread
From: Amit Virdi @ 2012-03-30  6:10 UTC (permalink / raw)
  To: u-boot

From: Armando Visconti <armando.visconti@st.com>

The designware i2c controller must be turned off before
setting the speed in IC_CON register, as stated in the
section 6.3.1 of the dw_apb_i2c_db.pdf.

Signed-off-by: Michel Sanches <michel.sanches@st.com>
Signed-off-by: Armando Visconti <armando.visconti@st.com>
Signed-off-by: Amit Virdi <amit.virdi@st.com>
---
 drivers/i2c/designware_i2c.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/drivers/i2c/designware_i2c.c b/drivers/i2c/designware_i2c.c
index d352146..6d118ac 100644
--- a/drivers/i2c/designware_i2c.c
+++ b/drivers/i2c/designware_i2c.c
@@ -40,6 +40,13 @@ static void set_speed(int i2c_spd)
 	unsigned int cntl;
 	unsigned int hcnt, lcnt;
 	unsigned int high, low;
+	unsigned int enbl;
+
+	/* to set speed cltr must be disabled */
+	enbl = readl(&i2c_regs_p->ic_enable);
+	enbl &= ~IC_ENABLE_0B;
+	writel(enbl, &i2c_regs_p->ic_enable);
+
 
 	cntl = (readl(&i2c_regs_p->ic_con) & (~IC_CON_SPD_MSK));
 
@@ -71,6 +78,10 @@ static void set_speed(int i2c_spd)
 
 	lcnt = (IC_CLK * low) / NANO_TO_MICRO;
 	writel(lcnt, &i2c_regs_p->ic_fs_scl_lcnt);
+
+	/* re-enable i2c ctrl back now that speed is set */
+	enbl |= IC_ENABLE_0B;
+	writel(enbl, &i2c_regs_p->ic_enable);
 }
 
 /*
-- 
1.7.2.2

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH] i2c: Add support for designware i2c controller
  2012-02-27  9:13 [U-Boot] [PATCH] i2c: Add support for designware i2c controller Amit Virdi
  2012-03-30  6:07 ` Amit Virdi
  2012-03-30  6:10 ` [U-Boot] [PATCH] i2c:designware Turn off the ctrl when setting the speed Amit Virdi
@ 2012-04-24  9:11 ` Heiko Schocher
  2 siblings, 0 replies; 5+ messages in thread
From: Heiko Schocher @ 2012-04-24  9:11 UTC (permalink / raw)
  To: u-boot

Hello Amit,

Amit Virdi wrote:
> From: Vipin KUMAR <vipin.kumar@st.com>
> 
> Earlier, a driver exists in the u-boot source for designware i2c interface. That
> driver was specific to spear platforms. This patch implements the i2c controller
> as a generic driver which can be used by multiple platforms
> 
> The driver files are now renamed to designware_i2c.c and designware_i2c.h and
> these are moved into drivers/i2c folder for reusability by other
> platforms
> 
> Signed-off-by: Vipin Kumar <vipin.kumar@st.com>
> Signed-off-by: Amit Virdi <amit.virdi@st.com>
> ---
>  drivers/i2c/Makefile                               |    2 +-
>  drivers/i2c/{spr_i2c.c => designware_i2c.c}        |    4 ++--
>  .../spr_i2c.h => drivers/i2c/designware_i2c.h      |    6 +++---
>  include/configs/spear-common.h                     |    2 +-
>  4 files changed, 7 insertions(+), 7 deletions(-)
>  rename drivers/i2c/{spr_i2c.c => designware_i2c.c} (98%)
>  rename arch/arm/include/asm/arch-spear/spr_i2c.h => drivers/i2c/designware_i2c.h (98%)

Applied to u-boot-i2c.git

Thanks!

bye
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot] [PATCH] i2c:designware Turn off the ctrl when setting the speed
  2012-03-30  6:10 ` [U-Boot] [PATCH] i2c:designware Turn off the ctrl when setting the speed Amit Virdi
@ 2012-04-24  9:11   ` Heiko Schocher
  0 siblings, 0 replies; 5+ messages in thread
From: Heiko Schocher @ 2012-04-24  9:11 UTC (permalink / raw)
  To: u-boot

Hello Amit,

Amit Virdi wrote:
> From: Armando Visconti <armando.visconti@st.com>
> 
> The designware i2c controller must be turned off before
> setting the speed in IC_CON register, as stated in the
> section 6.3.1 of the dw_apb_i2c_db.pdf.
> 
> Signed-off-by: Michel Sanches <michel.sanches@st.com>
> Signed-off-by: Armando Visconti <armando.visconti@st.com>
> Signed-off-by: Amit Virdi <amit.virdi@st.com>
> ---
>  drivers/i2c/designware_i2c.c |   11 +++++++++++
>  1 files changed, 11 insertions(+), 0 deletions(-)

Applied to u-boot-i2c.git

Thanks!

bye
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-04-24  9:11 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-27  9:13 [U-Boot] [PATCH] i2c: Add support for designware i2c controller Amit Virdi
2012-03-30  6:07 ` Amit Virdi
2012-03-30  6:10 ` [U-Boot] [PATCH] i2c:designware Turn off the ctrl when setting the speed Amit Virdi
2012-04-24  9:11   ` Heiko Schocher
2012-04-24  9:11 ` [U-Boot] [PATCH] i2c: Add support for designware i2c controller Heiko Schocher

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.