* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox