[U-Boot] [PATCH 03/14] drivers: i2c: uclass: parse dt parameters only when CONFIG_OF_CONTROL is enable
Simon Glass
sjg at chromium.org
Mon Aug 1 03:01:32 CEST 2016
Hi Mugunthan,
On 25 July 2016 at 08:35, Mugunthan V N <mugunthanvnm at ti.com> wrote:
> On Friday 22 July 2016 07:46 PM, Simon Glass wrote:
>> Hi Muganthan,
>>
>> On 22 July 2016 at 01:35, Mugunthan V N <mugunthanvnm at ti.com> wrote:
>>> On Friday 22 July 2016 08:51 AM, Simon Glass wrote:
>>>> Hi Mugunthan,
>>>>
>>>> On 18 July 2016 at 03:40, Mugunthan V N <mugunthanvnm at ti.com> wrote:
>>>>> parse dt parameter of i2c devices only when CONFIG_OF_CONTROL
>>>>> is enabled.
>>>>>
>>>>> Signed-off-by: Mugunthan V N <mugunthanvnm at ti.com>
>>>>> ---
>>>>> drivers/i2c/i2c-uclass.c | 14 ++++++++++++++
>>>>> 1 file changed, 14 insertions(+)
>>>>
>>>> Reviewed-by: Simon Glass <sjg at chromium.org>
>>>>
>>>> Please see below.
>>>>
>>>>>
>>>>> diff --git a/drivers/i2c/i2c-uclass.c b/drivers/i2c/i2c-uclass.c
>>>>> index 50b99ea..20b30ff 100644
>>>>> --- a/drivers/i2c/i2c-uclass.c
>>>>> +++ b/drivers/i2c/i2c-uclass.c
>>>>> @@ -467,6 +467,7 @@ int i2c_deblock(struct udevice *bus)
>>>>> return ops->deblock(bus);
>>>>> }
>>>>>
>>>>> +#if CONFIG_IS_ENABLED(OF_CONTROL)
>>>>> int i2c_chip_ofdata_to_platdata(const void *blob, int node,
>>>>> struct dm_i2c_chip *chip)
>>>>> {
>>>>> @@ -482,31 +483,44 @@ int i2c_chip_ofdata_to_platdata(const void *blob, int node,
>>>>>
>>>>> return 0;
>>>>> }
>>>>> +#endif
>>>>>
>>>>> static int i2c_post_probe(struct udevice *dev)
>>>>> {
>>>>> +#if CONFIG_IS_ENABLED(OF_CONTROL)
>>>>> struct dm_i2c_bus *i2c = dev_get_uclass_priv(dev);
>>>>>
>>>>> i2c->speed_hz = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
>>>>> "clock-frequency", 100000);
>>>>
>>>> The above should be moved into i2c_chip_ofdata_to_platdata(), which
>>>> will only be called if there is a device tree.
>>>
>>> This cannot be moved to i2c_chip_ofdata_to_platdata() as it is called
>>> from post_bind where uclass_priv will not be allocated. uclass_priv will
>>> be allocated in device probe.
>>
>> OK I see. Then why do we need to support i2c without OF_CONTROL? Would
>> it not be better to enable OF_CONTROL?
>>
>
> Due to the memory size issue in OMAP SoCs, enabling OF_CONTROL for spl
> is not possible. So having an option of enabling i2c uclass without
> OF_CONTROL will be a good option.
How does I2C work without OF_CONTROL? I thought it required it...
Regards,
Simon
More information about the U-Boot
mailing list