From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <9e4733910807011000t67e3abe5kb39302e911558dad@mail.gmail.com> Date: Tue, 1 Jul 2008 13:00:08 -0400 From: "Jon Smirl" To: "Grant Likely" Subject: Re: [PATCH 2/2] Add the of_find_i2c_device_by_node function, V4 In-Reply-To: <20080701164329.GF6918@secretlab.ca> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 References: <20080630230126.12482.87927.stgit@terra> <20080630230128.12482.79570.stgit@terra> <20080701170544.72051418@hyperion.delvare> <9e4733910807010812h30e49144v5b3012e6c156ecca@mail.gmail.com> <20080701164329.GF6918@secretlab.ca> Cc: Jean Delvare , Linuxppc-dev@ozlabs.org, Paul Mackerras , i2c@lm-sensors.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On 7/1/08, Grant Likely wrote: > On Tue, Jul 01, 2008 at 11:12:58AM -0400, Jon Smirl wrote: > > On 7/1/08, Jean Delvare wrote: > > > I'm fine with this patch. In particular, exporting i2c_bus_type is OK. > > > It was un-exported only because it had no user left, but it can be > > > exported again if needed. > > > > Another solution would be to move drivers/of/of_i2c into the i2c > > directory and make it part of i2c core on powerpc builds. > > > My preference is for things like of_spi and of_i2c to go with the > related busses; I think it makes more sense to keep all the I2C stuff > together, but I've already lost that battle once. > This is a similar problem to adding aliases to the i2c driver drivers for the device tree names of the i2c devices. Instead we have code in drivers/of/of_i2c.c that tries to guess the translation from device tree to linux names. Adding aliases to the drivers would eliminate the need for of_find_i2c_driver(). I've previously posted patches implementing device tree names in the drivers that used ifdef to only instantiate on powerpc builds. For example.... diff --git a/drivers/i2c/chips/tps65010.c b/drivers/i2c/chips/tps65010.c index e07274d..9cd1770 100644 --- a/drivers/i2c/chips/tps65010.c +++ b/drivers/i2c/chips/tps65010.c @@ -571,6 +571,10 @@ static const struct i2c_device_id tps65010_id[] = { { "tps65011", TPS65011 }, { "tps65012", TPS65012 }, { "tps65013", TPS65013 }, + OF_ID("ti,tps65010", TPS65010) + OF_ID("ti,tps65011", TPS65011) + OF_ID("ti,tps65012", TPS65012) + OF_ID("ti,tps65013", TPS65013) { }, }; MODULE_DEVICE_TABLE(i2c, tps65010_id); -- Jon Smirl jonsmirl@gmail.com