[U-Boot] [PATCH v3 8/9] tegra: i2c: Enable new CONFIG_SYS_I2C framework

Stephen Warren swarren at wwwdotorg.org
Tue Jul 30 20:56:22 CEST 2013


On 07/29/2013 10:28 PM, Heiko Schocher wrote:
> Hello Stephen,
> 
> Am 29.07.2013 18:12, schrieb Stephen Warren:
>> On 05/04/2013 06:01 AM, Heiko Schocher wrote:
>>> From: Simon Glass<sjg at chromium.org>
>>>
>>> This enables CONFIG_SYS_I2C on Tegra, updating existing boards and
>>> the Tegra
>>> i2c driver to support this.
>>
>> Heiko, the latest U-Boot tree hangs during boot on Tegra, and "git
> 
> :-(
> 
> Could you enable debug printf?
> 
>> bisect" points at this patch. Olof reported the issue to me.
> 
> Thanks!
> 
>> Can you take a look at the code and see what might be wrong? Thanks.
> 
> Yep.
> 
>> I suspect some kind of initialization ordering issue, since the boot
>> messages are:
>>
>> -----
>> U-Boot SPL 2013.07-rc3-00038-g880540d (Jul 29 2013 - 10:04:37)
>> U-Boot 2013.07-rc3-00038-g880540d (Jul 29 2013 - 10:04:37)
>>
>> TEGRA30
>> Board: NVIDIA Beaver
>> I2C:   Caller requested bad clock: periph=-49, parent=2
>> -----
>>
>> ... and that "bad clock" message implies to me that the I2C driver is
>> initializing before it has parsed the correct clock ID out of device
>> tree.
> 
> Hmm... looking in the patch ... I can see nothing which changes
> some initializing order ...
> 
> @Simon: Do you have an idea?
> 
> just found some wrong settings for tegra30:
> 
> In include/configs/tegra30-common.h:
> /* Total I2C ports on Tegra30 */
> #define TEGRA_I2C_NUM_CONTROLLERS       5
> 
> README says:
>                - drivers/i2c/tegra_i2c.c:
>                 - activate this driver with CONFIG_SYS_I2C_TEGRA
>                 - This driver adds 4 i2c buses with a fix speed from
>                   100000 and the slave addr 0!

I think that's just stale documentation; Tegra20 had just 4 I2C
controllers, and the docs probably weren't updated for Tegra30 which has 5.

> end yes, in the i2c driver are only 4 ports activated ... this

I don't see any limit in the driver; everything seems to use
TEGRA_I2C_NUM_CONTROLLERS.

> should be changed ... but I think, this has nothing to do with
> your problem ... but try to add in the i2c driver one more i2c adapter
> for the case TEGRA_I2C_NUM_CONTROLLERS > 4



More information about the U-Boot mailing list