[U-Boot] [PATCH 2/2] WIP: tegra: i2c: Enable new CONFIG_SYS_I2C framework

Stephen Warren swarren at wwwdotorg.org
Wed Oct 31 16:41:57 CET 2012


On 10/31/2012 12:00 AM, Heiko Schocher wrote:
> Hello Stephen,
> 
> On 30.10.2012 23:32, Stephen Warren wrote:
>> On 10/30/2012 11:28 AM, Simon Glass wrote:
>>> (just for illustration, please don't merge)
>>>
>>> This enables CONFIG_SYS_I2C on Tegra, updating existing boards and
>>> the Tegra
>>> i2c driver to support this.
>>
>>> diff --git a/drivers/i2c/i2c_core.c b/drivers/i2c/i2c_core.c
>>
>>> +#ifdef CONFIG_TEGRA_I2C
>>> +extern struct i2c_adapter tegra_i2c_adap[];
>>> +#endif
>>
>> I'm not sure why that's needed if the config files have to put the
>> adpater list into a #define:
>>
>>> diff --git a/include/configs/seaboard.h b/include/configs/seaboard.h
>>
>>> +#define CONFIG_SYS_I2C
>>> +#define CONFIG_SYS_I2C_ADAPTERS    {&tegra_i2c_adap[0]}
>>> +#define CONFIG_SYS_NUM_I2C_ADAPTERS    TEGRA_I2C_NUM_CONTROLLERS
>>
>> But, why is CONFIG_SYS_I2C_ADAPTERS needed; can't the adapter init
>> functions (which presumably would be called from board code or as a
>> result of DT parsing) dynamically register themselves?
> 
> This would not work, if we are running for example from flash on
> powerpc before relocation. There some boards need to read RAM
> infos from an SPD Eeprom through i2c ... so we must have very early
> i2c bus ready and usable ...
> 
> It maybe a good plus to add i2c busses/adapters dynamically after
> relocation is done and we have enough RAM ... I tried such an
> approach here:
> 
> http://git.denx.de/?p=u-boot/u-boot-i2c.git;a=commit;h=ccb680c8cf9002232bc459e4003e3b47db5e1bf4
> 
> but this is an old state (only rebased a long time),
> but it is maybe a good base for doing such an feature
> if it is needed ...

I mainly ask because Simon is pushing to have Tegra's U-Boot completely
driven by device tree. If we need to hard-code the list of enabled I2C
adapters in the U-Boot config file, and don't also support dynamically
added I2C drivers, then that will be incompatible with device tree.


More information about the U-Boot mailing list