[U-Boot] [PATCH 13/17] post/i2c: Add ability to ignore I2C devices

Heiko Schocher
2010-09-30T06:50:24Z

Hello Peter,

Peter Tyser wrote:
> On Thu, 2010-09-30 at 08:10 +0200, Heiko Schocher wrote:
>> Hello Peter,
>>
>> Peter Tyser wrote:
>>> Add the ability to not report an I2C POST error for a set of given I2C
>>> addresses on bootup. This is useful for the following cases:
>>>
>>> - Some form factors such as XMC and Compact PCI Express have an I2C
>>> EEPROM whose address changes based on geographical address. Eg
>>> installed in one slot its EEPROM address is, 0x50, in another its
>>> 0x51, etc. This allows multiple devices to have their EEPROMs present
>>> on the same I2C bus. Thus the I2C devices present for an XMC or
>>> CPCIe card depend on if and where other cards are installed in the
>>> same system.
>>>
>>> - Some cards have optional I2C devices. Eg one hardware build
>>> configuration has different I2C devices than another.
>>>
>>> - Some cards have optional daughtercards with I2C devices on them.
>>>
>>> - I2C EEPROMs address range depends on their size. Its possible to
>>> support differently size EEPROMs by only probing the EEPROM's base
>>> address and ignoring the other addresses that are impacted by its
>>> size.
>>>
>>> A new I2C_ADDR_IGNORE_LIST define has been added which specifies a list
>>> of I2C addresses for the I2C POST to ignore.
>>>
>>> Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
>>> CC: hs at denx.de
>>> ---
>>> post/drivers/i2c.c | 16 ++++++++++++++++
>>> 1 files changed, 16 insertions(+), 0 deletions(-)
>> Maybe you can add a little info in the README?
>
> The existing I2C_ADDR_LIST isn't documented, so I didn't document this
> addition. I'll mention them both in doc/README.POST.

Thanks!

>>> diff --git a/post/drivers/i2c.c b/post/drivers/i2c.c
>>> index 2dd128e..9e1fd50 100644
>>> --- a/post/drivers/i2c.c
>>> +++ b/post/drivers/i2c.c
>>> @@ -40,6 +40,20 @@
>>>
>>> #if CONFIG_POST & CONFIG_SYS_POST_I2C
>>>
>>> +static int i2c_ignore_device(unsigned int chip)
>>> +{
>>> +#ifdef I2C_ADDR_IGNORE_LIST
>> Hmm.. as this is only used in post code, this should be visible
>> in the defines name, what with:
>>
>> I2C_POST_ADDR_IGNORE_LIST
>
> I was following the lead of the existing I2C_ADDR_LIST define. Agreed
> it should be named differently. I'll go with CONFIG_SYS_POST_I2C_ADDRS
> and CONFIG_SYS_POST_I2C_IGNORES unless someone else chimes in.

Ack. Thanks!

bye,
heiko
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany