[U-Boot] [PATCH 1/6] driver:i2c:s3c24x0: adapt driver to new i2c
Piotr Wilczek
p.wilczek at samsung.com
Mon Nov 18 08:10:36 CET 2013
Hello Heiko,
> -----Original Message-----
> From: Heiko Schocher [mailto:hs at denx.de]
> Sent: Monday, November 18, 2013 7:18 AM
> To: Piotr Wilczek
> Cc: u-boot at lists.denx.de; Minkyu Kang; Kyungmin Park
> Subject: Re: [PATCH 1/6] driver:i2c:s3c24x0: adapt driver to new i2c
>
> Hello Piotr,
>
> Am 13.11.2013 15:31, schrieb Piotr Wilczek:
> > The s3c24x0 i2c driver is adapted to new i2c framework.
> >
> > Signed-off-by: Piotr Wilczek<p.wilczek at samsung.com>
> > Signed-off-by: Kyungmin Park<kyungmin.park at samsung.com>
> > Cc: Minkyu Kang<mk7.kang at samsung.com>
> > Cc: Heiko Schocher<hs at denx.de>
> > ---
> > drivers/i2c/Makefile | 2 +-
> > drivers/i2c/s3c24x0_i2c.c | 157 +++++++++++++++++++++++++++++-----
> -----------
> > 2 files changed, 101 insertions(+), 58 deletions(-)
>
> Thanks for your work! Ne real issues with your patch, but can you
> squash your patchset in one patch, as we not want to lost "git bisect"
> functionality.
Ok.
>
> Beside of this, only minor comments:
>
> [...]
> > diff --git a/drivers/i2c/s3c24x0_i2c.c b/drivers/i2c/s3c24x0_i2c.c
> > index f77a9d1..0051cac 100644
> > --- a/drivers/i2c/s3c24x0_i2c.c
> > +++ b/drivers/i2c/s3c24x0_i2c.c
> > @@ -23,8 +23,6 @@
> > #include<i2c.h>
> > #include "s3c24x0_i2c.h"
> >
> > -#ifdef CONFIG_HARD_I2C
> > -
> > #define I2C_WRITE 0
> > #define I2C_READ 1
> >
> > @@ -127,7 +125,6 @@
> > * For SPL boot some boards need i2c before SDRAM is initialised so
> force
> > * variables to live in SRAM
> > */
> > -static unsigned int g_current_bus __attribute__((section(".data")));
> > static struct s3c24x0_i2c_bus i2c_bus[CONFIG_MAX_I2C_NUM]
> > __attribute__((section(".data")));
> >
> > @@ -143,6 +140,7 @@ static struct s3c24x0_i2c_bus *get_bus(unsigned
> int bus_idx)
> > struct s3c24x0_i2c_bus *bus;
> >
> > bus =&i2c_bus[bus_idx];
> > +
>
> Why new line here?
I will remove it.
>
> > if (bus->active)
> > return bus;
> > }
> > @@ -254,17 +252,17 @@ static void ReadWriteByte(struct s3c24x0_i2c
> *i2c)
> > writel(readl(&i2c->iiccon)& ~I2CCON_IRPND,&i2c->iiccon);
> > }
> >
> > -static struct s3c24x0_i2c *get_base_i2c(void)
> > +static struct s3c24x0_i2c *get_base_i2c(int bus)
> > {
> > #ifdef CONFIG_EXYNOS4
> > struct s3c24x0_i2c *i2c = (struct s3c24x0_i2c
> *)(samsung_get_base_i2c()
> > +
(EXYNOS4_I2C_SPACING
> > - * g_current_bus));
> > + * bus));
> > return i2c;
> > #elif defined CONFIG_EXYNOS5
> > struct s3c24x0_i2c *i2c = (struct s3c24x0_i2c
> *)(samsung_get_base_i2c()
> > +
(EXYNOS5_I2C_SPACING
> > - * g_current_bus));
> > + * bus));
> > return i2c;
> > #else
> > return s3c24x0_get_base_i2c();
> > @@ -298,7 +296,6 @@ static void i2c_ch_init(struct s3c24x0_i2c *i2c,
> int speed, int slaveadd)
> > writel(I2C_MODE_MT | I2C_TXRX_ENA,&i2c->iicstat);
> > }
> >
> > -#ifdef CONFIG_I2C_MULTI_BUS
> > static int hsi2c_get_clk_details(struct s3c24x0_i2c_bus *i2c_bus)
> > {
> > struct exynos5_hsi2c *hsregs = i2c_bus->hsregs; @@ -307,8 +304,10
> > @@ static int hsi2c_get_clk_details(struct s3c24x0_i2c_bus *i2c_bus)
> > unsigned int i = 0, utemp0 = 0, utemp1 = 0;
> > unsigned int t_ftl_cycle;
> >
> > -#if defined CONFIG_EXYNOS5
> > +#if (defined CONFIG_EXYNOS4 || defined CONFIG_EXYNOS5)
> > clkin = get_i2c_clk();
> > +#else
> > + clkin = get_PCLK();
> > #endif
>
> What has this change to do with the new i2c framework?
Actually it is related to commit shaid: 296a461
Without this change I get the uninitialized variable warning for Exynos 4.
I can make a separate patch fix for this change if you prefer.
>
> [...]
>
> bye,
> Heiko
> --
> DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Best regards,
Piotr Wilczek
More information about the U-Boot
mailing list