Patchwork [U-Boot,V1,1/1] EXYNOS5: I2C: Add FDT and non-FDT support for I2C

login
register
mail settings
Submitter Amar
Date April 4, 2013, 6:27 a.m.
Message ID <1365056826-17057-2-git-send-email-amarendra.xt@samsung.com>
Download mbox | patch
Permalink /patch/233636/
State Accepted
Delegated to: Minkyu Kang
Headers show

Comments

Amar - April 4, 2013, 6:27 a.m.
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@samsung.com>
---
 drivers/i2c/s3c24x0_i2c.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
Simon Glass - May 11, 2013, 6:53 p.m.
On Thu, Apr 4, 2013 at 12:27 AM, Amar <amarendra.xt@samsung.com> wrote:
> 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@samsung.com>

Acked-by: Simon Glass <sjg@chromium.org>
Minkyu Kang - June 24, 2013, 4:57 a.m.
On 12/05/13 03:53, Simon Glass wrote:
> On Thu, Apr 4, 2013 at 12:27 AM, Amar <amarendra.xt@samsung.com> wrote:
>> 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@samsung.com>
> 
> Acked-by: Simon Glass <sjg@chromium.org>
> 

applied to u-boot-samsung

Thanks,
Minkyu Kang.

Patch

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)