i2c_slave_send & recv?
Brent Roman
brent at mbari.org
Tue Apr 8 04:12:36 CEST 2003
Hi,
We are developing a complex embedded instument.
It will consist of a tiny XScale board running linux attached
via I2C to a variety of custom sensors and actuators
that we intend to custom design.
To efficiently utilize limited I2C bus bandwidth, I had intended
to have the Linux system act as an I2C slave, responding
to events detected by the intelligent sensors more or less in real-time.
The alternative would be to poll each sensor continuously :-(
I'm concerned about the following in i2c.h:
/* Some adapter types (i.e. PCF 8584 based ones) may support slave behaviuor.
* This is not tested/implemented yet and will change in the future.
*/
extern int i2c_slave_send(struct i2c_client *,char*,int);
extern int i2c_slave_recv(struct i2c_client *,char*,int);
Even if I implement these functions for the XScale's built-in I2C hardware
how would an application detect incoming messages?
I don't see any sort of event notification mechanism.
Would i2c_slave_recv simply block until it received a message from
the addressed client? If so, would I need to start multiple threads to
monitor multiple clients simutaneously?
Given this interface, the best I can think of right now is to define
a sort of wildcard address so one thread could i2c_slave_revc from
it and unblock when a message is received from any master.
But, as you probably can tell, I'm pretty confused right now.
I'm hoping one of the I2C package developers can set me straight...
Regards,
--
Brent Roman
Software Engineer Tel: 831 775 1808
mailto:brent at mbari.org http://www.mbari.org/~brent
More information about the lm-sensors
mailing list