From: Brian D. <bda...@gm...> - 2006-03-13 15:50:36
|
Dave, On Mar 8, 2006, at 5:43 PM, Dave Hylands wrote: > > The 2.6.15 i2c-pxa driver does support slave receive (or at least > that's the impression I get from looking at the code). I haven't > tested it yet. They don't actually implement slave_recv() in their i2c_algorithm, so it's not really slave receive support in my book. What they do have is an eeprom_client which is an i2c_slave_client. If you're wondering what that is, it's a new interface that appears to have been created solely for the PXA for the purposes of adding slave receive support to the PXA. It's not usable from userland as far as I can tell (of course neither is slave_recv(), unless you make a new char device driver). On the FlockBots we created a character device very similar to /dev/i2c-0 (i2c-d, that does master transmit and slave receive (it's got some other differences too). For that to work, we had to modify i2c-pxa.c and i2c-algo-pxa.c (on the 2.6.11 kernel). Originally this was to be compatible with the Acroname brainstem, and then when the Robostix came along, we kept the same driver and made the Robostix use master transmits for its replies. There is still work to be done, such as adding support for non-blocking IO, and support for select, but it's very usable at this point. Porting our work to the 2.6.15 kernel is on the to do list. We had a few bugs in the 2.6.11 driver to work through, and then 2.6.15 happened... A lot of changes have been made to i2c-pxa.c between 2.6.11 and 2.6.15, so it will take some time to sort things out. I don't like the direction the current official i2c-pxa driver has taken, with a custom interface for slave transmit/receive rather than using the existing interface defined in struct i2c_algorithm. I really need to take a look at the i2c work you've done on the Robostix. It sounds like you've got a lot of slick things going on there. As for the "Flockbots" resistors, I knew just enough to be dangerous. It happened to work with the configuration we were using, and looked fine on an oscilloscope. I'm not surprised to hear of problems in other configurations. Brian Davidson George Mason University |