Example lm_sensors-2 driver

Though it is called the LM78 driver, there is not too much LM78 specific
code in it; it can better be seen as an example code skeleton for other
drivers. Right now, it creats a file /proc/sensors-test, which contains
a list of busses it registered itself on. Stupid, but very useful for
testing purposes!

You need a 2.0 kernel for lm78.o to insert (or hack the /proc system
specific parts; see lm78.c of lm_sensors version 1 how to do this).
Other parts of lm_sensors-2 are not tested for 2.1 kernels either, but
I am certain it won't work in this case :-).

See the TODO list to get some idea what is left to do, choose something
and implement it. Or not :-). But please, send a note to the mailing
list when you start on something, to avoid duplicate work...

Other notable changes:
  the smbus_access routines now use (the more logical) i2c_adapter
  structure, instead of smbus_adapter.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@13 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Frodo Looijaard committed 1998-11-26 10:16:08 +00:00
1 parent 4d29df9f32
commit 45d6e40e75
12 files changed
+75 -46

No files matched your search

+5 -4
View File
@@ -30,7 +30,7 @@
#include "version.h"
#include "smbus.h"
static s32 smbus_access_i2c (struct smbus_adapter * adapter, u8 addr,
static s32 smbus_access_i2c (struct i2c_adapter * adapter, u8 addr,
char read_write, u8 command, int size,
union smbus_data * data);
@@ -69,7 +69,7 @@ struct smbus_algorithm smbus_algorithm = {
simulate the SMBus commands using the i2c access routines.
We do all locking here, so you can ignore that in the adapter-specific
smbus_accesss routine. */
s32 smbus_access (struct smbus_adapter * adapter, u8 addr, char read_write,
s32 smbus_access (struct i2c_adapter * adapter, u8 addr, char read_write,
u8 command, int size, union smbus_data * data)
{
int res;
@@ -79,7 +79,8 @@ s32 smbus_access (struct smbus_adapter * adapter, u8 addr, char read_write,
down(&adapter->lock);
#endif
if (adapter->id & ALGO_SMBUS)
res = adapter->smbus_access(addr,read_write,command,size,data);
res = ((struct smbus_adapter *) adapter) ->
smbus_access(addr,read_write,command,size,data);
else
res = smbus_access_i2c(adapter,addr,read_write,command,size,data);
#ifdef SPINLOCK
@@ -95,7 +96,7 @@ s32 smbus_access (struct smbus_adapter * adapter, u8 addr, char read_write,
For SMBUS_QUICK: Use addr, read_write
For SMBUS_BYTE: Use addr, read_write, command
.... */
s32 smbus_access_i2c(struct smbus_adapter * adapter, u8 addr, char read_write,
s32 smbus_access_i2c(struct i2c_adapter * adapter, u8 addr, char read_write,
u8 command, int size, union smbus_data * data)
{
/* So we need to generate a series of msgs */