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

Peter Tyser ptyser at xes-inc.com
Thu Sep 30 08:35:43 CEST 2010


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 at 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.

> > 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.

Thanks for the review,
Peter



More information about the U-Boot mailing list