[U-Boot] [PATCH 03/14] drivers: i2c: uclass: parse dt parameters only when CONFIG_OF_CONTROL is enable
Mugunthan V N
mugunthanvnm at ti.com
Mon Jul 25 16:35:01 CEST 2016
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.
Regards
Mugunthan V N
More information about the U-Boot
mailing list