[U-Boot] [PATCH 1/6] driver:i2c:s3c24x0: adapt driver to new i2c

Heiko Schocher hs at denx.de
Mon Nov 18 08:19:11 CET 2013


Hello Piotr,

Am 18.11.2013 08:10, schrieb Piotr Wilczek:
> 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
[...]
>>> @@ -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.

Yes, please.

bye,
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


More information about the U-Boot mailing list