From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Thu, 16 Dec 2010 11:37:41 +0100 Subject: [U-Boot] [PATCH 4/5] mxc_i2c: add support for MX53 processor In-Reply-To: <1292494665-25674-5-git-send-email-r64343@freescale.com> References: <1292494665-25674-1-git-send-email-r64343@freescale.com> <1292494665-25674-5-git-send-email-r64343@freescale.com> Message-ID: <4D09EBF5.4020104@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Jason, Jason Liu wrote: > This patch add I2C support for Freescale MX53 processor > > Signed-off-by: Jason Liu > --- > drivers/i2c/mxc_i2c.c | 18 +++++++++++++----- > 1 files changed, 13 insertions(+), 5 deletions(-) > mode change 100644 => 100755 drivers/i2c/mxc_i2c.c > > diff --git a/drivers/i2c/mxc_i2c.c b/drivers/i2c/mxc_i2c.c > old mode 100644 > new mode 100755 > index 8e10fbb..f9f32cc > --- a/drivers/i2c/mxc_i2c.c > +++ b/drivers/i2c/mxc_i2c.c > @@ -24,10 +24,11 @@ > > #include > > -#if defined(CONFIG_HARD_I2C) > +#if defined(CONFIG_MX53) > +#include > +#endif > > -#include > -#include Why do you delete this includes? That will break mx31 boards. Please add instead a #if defined(CONFIG_MX31) around it > +#if defined(CONFIG_HARD_I2C) Why you move this define here? > #define IADR 0x00 > #define IFDR 0x04 > @@ -56,8 +57,10 @@ > #elif defined (CONFIG_SYS_I2C_MX31_PORT3) > #define I2C_BASE 0x43f84000 > #define I2C_CLK_OFFSET 30 > +#elif defined(CONFIG_SYS_I2C_PORT) > +#define I2C_BASE CONFIG_SYS_I2C_PORT > #else > -#error "define CONFIG_SYS_I2C_MX31_PORTx to use the mx31 I2C driver" > +#error "define CONFIG_SYS_I2C_PORT to use the I2C driver" This error message will be not correct on mx31 based boards, as they have to define CONFIG_SYS_I2C_MX31_PORTx, please correct. > #endif > > #ifdef DEBUG > @@ -72,11 +75,16 @@ static u16 div[] = { 30, 32, 36, 42, 48, 52, 60, 72, 80, 88, 104, 128, 144, > > void i2c_init(int speed, int unused) > { > - int freq = mx31_get_ipg_clk(); > + int freq; > int i; > > +#ifdef CONFIG_MX31 > + freq = mx31_get_ipg_clk(); > /* start the required I2C clock */ > __REG(CCM_CGR0) = __REG(CCM_CGR0) | (3 << I2C_CLK_OFFSET); > +#else > + freq = mxc_get_clock(MXC_IPG_PERCLK); > +#endif > > for (i = 0; i < 0x1f; i++) > if (freq / div[i] <= speed) bye, Heiko -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany