From mboxrd@z Thu Jan 1 00:00:00 1970 From: Troy Kisky Date: Fri, 22 Jun 2012 12:41:48 -0700 Subject: [U-Boot] [PATCH 18/24] mxc_i2c.c: finish adding CONFIG_I2C_MULTI_BUS support In-Reply-To: <201206221909.42758.marex@denx.de> References: <1340338339-11626-1-git-send-email-troy.kisky@boundarydevices.com> <1340338339-11626-18-git-send-email-troy.kisky@boundarydevices.com> <201206221909.42758.marex@denx.de> Message-ID: <4FE4CA7C.6080001@boundarydevices.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 6/22/2012 10:09 AM, Marek Vasut wrote: > Dear Troy Kisky, > >> Signed-off-by: Troy Kisky >> --- >> drivers/i2c/mxc_i2c.c | 17 +++++++++++++++++ >> 1 file changed, 17 insertions(+) >> >> diff --git a/drivers/i2c/mxc_i2c.c b/drivers/i2c/mxc_i2c.c >> index 339bb6f..5d18752 100644 >> --- a/drivers/i2c/mxc_i2c.c >> +++ b/drivers/i2c/mxc_i2c.c >> @@ -407,6 +407,23 @@ static void toggle_i2c(void *base) >> p->toggle_fn(p->toggle_data); >> } >> >> +#ifdef CONFIG_I2C_MULTI_BUS >> +unsigned int i2c_get_bus_num(void) >> +{ >> + return g_bus; > Is this global variable? If so, it won't work before relocation. And i2c can be > enabled before relocation. Correct and correct. If you need i2c working before relocation, you cannot enable MULTI_BUS. Should I put this in struct global_data to remove this restriction? > >> +} >> + >> +int i2c_set_bus_num(unsigned bus_idx) >> +{ >> + if (bus_idx >= ARRAY_SIZE(g_parms)) >> + return -1; >> + if (!g_parms[bus_idx].base) >> + return -1; >> + g_bus = bus_idx; >> + return 0; >> +} >> +#endif >> + >> int i2c_read(uchar chip, uint addr, int alen, uchar *buf, int len) >> { >> return bus_i2c_read(get_base(), chip, addr, alen, buf, len); > Best regards, > Marek Vasut >