"cell-index" vs. "index" vs. no index in I2C device nodes

Timur Tabi timur at freescale.com
Fri Jun 6 02:13:23 EST 2008


Grant Likely wrote:

> That is still Linux internal artifacts leaking out.  Don't encode that
> data into the device tree.

The I2C bus number is *not* an internal artifact.  On Freescale parts, the one
I2C adapter is specifically designated I2C1, and the 2nd one is specifically
designated I2C2.  This is part of the silicon, and so the device tree should
specify it.

> Besides, the whole thing looks bass ackwards and doesn't match the
> Linux driver model.  'busses' should register 'devices'.  'drivers'
> should then bind to those 'devices'.  Where ASoC is concerned, the i2c
> bus should register its own child devices, which includes the codecs,
> and an ASoC codec driver should bind against it.  The fabric driver
> should then use the codec's exported API.

Sorry, I don't really understand that.  The codec driver is just an I2C driver
that registers callbacks with ASoC.  The fabric driver does not know what codec
driver is present.  In many cases, there could be multiple codecs.  Sometimes
they're the same type of codec, just at different I2C addresses.  Sometimes,
they're completely different codecs.  So I could have any number of codec
drivers loaded.  How would I know which exported API to call?

-- 
Timur Tabi
Linux kernel developer at Freescale



More information about the Linuxppc-dev mailing list