From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sergei Shtylyov Date: Thu, 30 Sep 2010 15:00:18 +0400 Subject: [U-Boot] [PATCH 13/17] post/i2c: Add ability to ignore I2C devices In-Reply-To: <1285787156-6005-13-git-send-email-ptyser@xes-inc.com> References: <1285787156-6005-1-git-send-email-ptyser@xes-inc.com> <1285787156-6005-13-git-send-email-ptyser@xes-inc.com> Message-ID: <4CA46DC2.80209@mvista.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello. On 29-09-2010 23:05, 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 > CC: hs at denx.de > --- > post/drivers/i2c.c | 16 ++++++++++++++++ > 1 files changed, 16 insertions(+), 0 deletions(-) > 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 > + unsigned char i2c_ignore_list[] = I2C_ADDR_IGNORE_LIST; This array is aking to be *static*... WBR, Sergei