[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