On Thu, 31 Mar 2011 18:07:26 -0400, simon@xxxxxxxxxxxxx wrote: > Hi all, > I'm hoping that someone here can help. I am trying to get userland access > to the I2C bus(es) on an embedded system, however recent kernels (ie. > 2.6.38) are not 'loading' any buses when I 'modprobe i2c-dev'. > > Going back to â2.6.32â I am able to see 1 bus, and 'i2cdetect 0' shows a This is a problem on your system and not a general issue with i2c-dev in kernel 2.6.38. i2c-dev merely creates the device nodes in /dev, it doesn't create the buses themselves. So, if loading i2c-dev doesn't create the device nodes, odds are that the i2c buses are missing in the first place. Check in /sys/bus/i2c. > single device sitting at address 0x69 (which I believe to EEPROM on the > wifi card... not confirmed). Very unlikely. EEPROMs typically live in the 0x50-0x57 address range. At 0x69 is almost always a clock chip. > The board is built around the Poulsbo and therefore using the 'i2c-isch' > driver. Check for error messages when you load the i2c-isch driver. Note that in kernel 2.6.34 the structure of the i2c-isch driver was changed, from a standalone PCI driver to a MFD driver. Please make sure that you have CONFIG_LPC_SCH installed and driver lpc_sch loaded, otherwise i2c-isch will never see the platform device it is looking for. > > Reviewing the schematic I see that there are several buses, each going to > individual components: > IT8516 U5/110+111 -> LTC1760 U6/18+22 [battery charger â 0x1A/0x12] > IT8516 U5/115+116 -> W83L771 U60/8+7 [thermal sensor â 0x18??] > IT8516 U5/117+118 -> LSM303DLH U64/19+20 [accel/compass â 0x19] > POULSBO U2/G37+H38 -> PCI Express Socket This suggests that the board uses the SMBus controllers in the ITE IT8516 Super-I/O chip rather than the Intel SCH south bridge. Unfortunately we have no support for the SMBus controllers of the IT8516, and I doubt we get support anytime soon as I was unable to find a datasheet for the ITE IT8516. > I am a little dismayed by the comment in 'i2c-isch.c' which suggest it can > handle only one i2c bus at any time. > -- > /* > Supports: > Intel SCH chipsets (AF82US15W, AF82US15L, AF82UL11L) > Note: we assume there can only be one device, with one SMBus interface. > */ > -- This is a limitation due to the driver design. The i2c-i801 driver has a similar limitation, but is was solved when needed: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=0cd96eb0a74791cacb27ace902b991cfd0e72abe But according to the information you provided above, this is all irrelevant anyway, as the Intel SCH SMBus isn't used on your system (other than for a clock chip you do not care about.) > > This seems to correlate to these comments: > http://www.linuxforums.org/forum/programming-scripting/175147-smbus-intel-sch-us15w.html I can't see anything interesting in this post. > Can anyone confirm whether this is actually the case, and whether it is > possible to configure it to use a different controller address. One would > expect this to be a module option I guess, however it doesn't seem to take > any. A module option to specify an address? Come on, ISA sound cards are gone! :p -- Jean Delvare -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html