From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Warren Date: Wed, 31 Oct 2012 09:41:57 -0600 Subject: [U-Boot] [PATCH 2/2] WIP: tegra: i2c: Enable new CONFIG_SYS_I2C framework In-Reply-To: <5090BE73.6050501@denx.de> References: <1351618133-14909-1-git-send-email-sjg@chromium.org> <1351618133-14909-2-git-send-email-sjg@chromium.org> <50905561.90602@wwwdotorg.org> <5090BE73.6050501@denx.de> Message-ID: <509146C5.8020301@wwwdotorg.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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.