[U-Boot] [PATCH V1 1/1] EXYNOS5: I2C: Add FDT and non-FDT support for I2C
Amar
amarendra.xt at samsung.com
Thu Apr 4 08:27:06 CEST 2013
This patch updates the function board_i2c_init() to add support for both
FDT and non-FDT for I2C, and initialise the I2C channels.
Signed-off-by: Amar <amarendra.xt at samsung.com>
---
drivers/i2c/s3c24x0_i2c.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/i2c/s3c24x0_i2c.c b/drivers/i2c/s3c24x0_i2c.c
index 46d2506..5234ff6 100644
--- a/drivers/i2c/s3c24x0_i2c.c
+++ b/drivers/i2c/s3c24x0_i2c.c
@@ -515,11 +515,12 @@ int i2c_write(uchar chip, uint addr, int alen, uchar *buffer, int len)
len) != 0);
}
-#ifdef CONFIG_OF_CONTROL
void board_i2c_init(const void *blob)
{
+ int i;
+#ifdef CONFIG_OF_CONTROL
int node_list[CONFIG_MAX_I2C_NUM];
- int count, i;
+ int count;
count = fdtdec_find_aliases_for_id(blob, "i2c",
COMPAT_SAMSUNG_S3C2440_I2C, node_list,
@@ -539,8 +540,15 @@ void board_i2c_init(const void *blob)
bus->bus_num = i2c_busses++;
exynos_pinmux_config(bus->id, 0);
}
+#else
+ for (i = 0; i < CONFIG_MAX_I2C_NUM; i++) {
+ exynos_pinmux_config((PERIPH_ID_I2C0 + i),
+ PINMUX_FLAG_NONE);
+ }
+#endif
}
+#ifdef CONFIG_OF_CONTROL
static struct s3c24x0_i2c_bus *get_bus(unsigned int bus_idx)
{
if (bus_idx < i2c_busses)
--
1.8.0
More information about the U-Boot
mailing list