mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-11-03 13:38:25 +00:00
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:
1 parent
4d29df9f32
commit
45d6e40e75
12 files changed
+75
-46
No files matched your search
+5
-4
@@ -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 */
|
||||
|
||||
Reference in new issue
Block a user