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 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev