From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonyoung Shim Date: Tue, 19 Jun 2012 16:30:59 +0900 Subject: [U-Boot] [PATCH 7/8 V2] I2C: Add support for Multi channel In-Reply-To: References: <1339049394-4816-1-git-send-email-rajeshwari.s@samsung.com> <1339049394-4816-8-git-send-email-rajeshwari.s@samsung.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 2012/6/19 Rajeshwari Birje : > Hi Joonyoung Shim, > > Thank you for comments. > > On Fri, Jun 15, 2012 at 12:45 PM, Joonyoung Shim wrote: >> Hi, >> >> 2012/6/7 Rajeshwari Shinde : >>> This adds multiple i2c channel support for I2C. >>> >>> Signed-off-by: Alim Akhtar >>> Signed-off-by: Rajeshwari Shinde >>> Acked-by: Simon Glass >>> --- >>> ?drivers/i2c/s3c24x0_i2c.c | ? 27 +++++++++++++++++++++++++++ >>> ?1 files changed, 27 insertions(+), 0 deletions(-) >>> >>> diff --git a/drivers/i2c/s3c24x0_i2c.c b/drivers/i2c/s3c24x0_i2c.c >>> index a71f147..7521cb8 100644 >>> --- a/drivers/i2c/s3c24x0_i2c.c >>> +++ b/drivers/i2c/s3c24x0_i2c.c >>> @@ -191,6 +191,33 @@ static void i2c_bus_init(struct s3c24x0_i2c *i2c, unsigned int bus) >>> ? ? ? ?i2c_ch_init(i2c, CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); >>> ?} >>> >>> +/* >>> + * MULTI BUS I2C support >>> + */ >>> + >>> +#ifdef CONFIG_I2C_MULTI_BUS >>> +int i2c_set_bus_num(unsigned int bus) >>> +{ >>> + ? ? ? struct s3c24x0_i2c *i2c; >>> + >>> + ? ? ? if ((bus < 0) || (bus >= CONFIG_MAX_I2C_NUM)) { >>> + ? ? ? ? ? ? ? debug("Bad bus: %d\n", bus); >>> + ? ? ? ? ? ? ? return -1; >>> + ? ? ? } >>> + >>> + ? ? ? g_current_bus = bus; >>> + ? ? ? i2c = get_base_i2c(g_current_bus); >>> + ? ? ? i2c_bus_init(i2c, g_current_bus); >> >> This causes duplicated pin configuration whenever calls i2c_set_bus_num(). >> > -- Initally we are initialising only for bus 0, When this function > gets called with bus id other than 0 we need to initialise that bus. The problem is i2c_set_bus_num() can be called many times. If did i2c_bus_init() already, just set g_current_bus. -- - Joonyoung Shim