diff mbox

[U-Boot] omap4 i2c: add support for i2c bus 4

Message ID 1344423455-14711-1-git-send-email-koen@dominion.thruhere.net
State Accepted
Commit a532278074f1d1fa7d46b144e0d4b824ae7d3335
Delegated to: Heiko Schocher
Headers show

Commit Message

Koen Kooi Aug. 8, 2012, 10:57 a.m. UTC
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
---
 arch/arm/include/asm/arch-omap4/cpu.h |    1 +
 arch/arm/include/asm/arch-omap4/i2c.h |    2 +-
 drivers/i2c/omap24xx_i2c.c            |    8 ++++++++
 3 files changed, 10 insertions(+), 1 deletions(-)

Comments

SRICHARAN R Aug. 27, 2012, 6:08 a.m. UTC | #1
Hi,
-- a/arch/arm/include/asm/arch-omap4/cpu.h
> +++ b/arch/arm/include/asm/arch-omap4/cpu.h
> @@ -138,6 +138,7 @@ struct watchdog {
>  #define I2C_BASE1              (OMAP44XX_L4_PER_BASE + 0x70000)
>  #define I2C_BASE2              (OMAP44XX_L4_PER_BASE + 0x72000)
>  #define I2C_BASE3              (OMAP44XX_L4_PER_BASE + 0x60000)
> +#define I2C_BASE4              (OMAP44XX_L4_PER_BASE + 0x350000)
>
>  /* MUSB base */
>  #define MUSB_BASE              (OMAP44XX_L4_CORE_BASE + 0xAB000)
> diff --git a/arch/arm/include/asm/arch-omap4/i2c.h b/arch/arm/include/asm/arch-omap4/i2c.h
> index a91b4c2..02ee2f8 100644
> --- a/arch/arm/include/asm/arch-omap4/i2c.h
> +++ b/arch/arm/include/asm/arch-omap4/i2c.h
> @@ -23,7 +23,7 @@
>  #ifndef _OMAP4_I2C_H_
>  #define _OMAP4_I2C_H_
>
> -#define I2C_BUS_MAX    3
> +#define I2C_BUS_MAX    4
>  #define I2C_DEFAULT_BASE       I2C_BASE1
>
>  struct i2c {
> diff --git a/drivers/i2c/omap24xx_i2c.c b/drivers/i2c/omap24xx_i2c.c
> index 81193b0..df8ab92 100644
> --- a/drivers/i2c/omap24xx_i2c.c
> +++ b/drivers/i2c/omap24xx_i2c.c
> @@ -448,6 +448,14 @@ int i2c_set_bus_num(unsigned int bus)
>                 return -1;
>         }
>
> +#if I2C_BUS_MAX == 4
> +       if (bus == 3)
> +               i2c_base = (struct i2c *)I2C_BASE4;
> +       else
> +       if (bus == 2)
> +               i2c_base = (struct i2c *)I2C_BASE3;
> +       else
> +#endif

 How about having a const array of bases and directly index
 from that than having #ifdefs and if checks ??

Thanks,
 Sricharan
diff mbox

Patch

diff --git a/arch/arm/include/asm/arch-omap4/cpu.h b/arch/arm/include/asm/arch-omap4/cpu.h
index a8c4c60..3a0bfbf 100644
--- a/arch/arm/include/asm/arch-omap4/cpu.h
+++ b/arch/arm/include/asm/arch-omap4/cpu.h
@@ -138,6 +138,7 @@  struct watchdog {
 #define I2C_BASE1		(OMAP44XX_L4_PER_BASE + 0x70000)
 #define I2C_BASE2		(OMAP44XX_L4_PER_BASE + 0x72000)
 #define I2C_BASE3		(OMAP44XX_L4_PER_BASE + 0x60000)
+#define I2C_BASE4		(OMAP44XX_L4_PER_BASE + 0x350000)
 
 /* MUSB base */
 #define MUSB_BASE		(OMAP44XX_L4_CORE_BASE + 0xAB000)
diff --git a/arch/arm/include/asm/arch-omap4/i2c.h b/arch/arm/include/asm/arch-omap4/i2c.h
index a91b4c2..02ee2f8 100644
--- a/arch/arm/include/asm/arch-omap4/i2c.h
+++ b/arch/arm/include/asm/arch-omap4/i2c.h
@@ -23,7 +23,7 @@ 
 #ifndef _OMAP4_I2C_H_
 #define _OMAP4_I2C_H_
 
-#define I2C_BUS_MAX	3
+#define I2C_BUS_MAX	4
 #define I2C_DEFAULT_BASE	I2C_BASE1
 
 struct i2c {
diff --git a/drivers/i2c/omap24xx_i2c.c b/drivers/i2c/omap24xx_i2c.c
index 81193b0..df8ab92 100644
--- a/drivers/i2c/omap24xx_i2c.c
+++ b/drivers/i2c/omap24xx_i2c.c
@@ -448,6 +448,14 @@  int i2c_set_bus_num(unsigned int bus)
 		return -1;
 	}
 
+#if I2C_BUS_MAX == 4
+	if (bus == 3)
+		i2c_base = (struct i2c *)I2C_BASE4;
+	else
+	if (bus == 2)
+		i2c_base = (struct i2c *)I2C_BASE3;
+	else
+#endif
 #if I2C_BUS_MAX == 3
 	if (bus == 2)
 		i2c_base = (struct i2c *)I2C_BASE3;