Re: Need help: Watchdog-driver over smbus (i2c)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hallo Sven,

On Mon, 30 Nov 2009 22:30:07 +0100, Sven Anders wrote:
> I'm trying to code a watchdog driver for the Winbond w83793g chip. I
> already coded a watchdog for another Winbond chip before, but for
> this I need to access it over the system managment bus (or more
> specific the i2c, client address 2E).
> 
> I already coded the detection and initialization routines, but now I
> need some help, because I do not know how to use the i2c framework
> together with the watchdog framework.
> All other drivers I found are using the sysfs framework. This functions
> use the to_i2c_client() function to get a pointer to the i2c client.
> 
> I tried to store the i2c client pointer to a global variable, to use
> it later in the watchdog functions.
>
> But when I try to use the "i2c_smbus_read_byte_data()" or
> "i2c_smbus_write_byte_data()" functions, I will get a kernel OOPS
> (without any hw-sensors driver loaded!).
> 
> What is the best method to get the watchdog framework (i.e. the open,
> close, write, read and ioctl functions) to work with the i2c framework?

The fact that the device is accessed over I2C/SMBus doesn't change
anything to the watchdog interface. It is only an implementation detail
for the way the data registers are accessed.

> Moreover the w83793g hardware sensors driver may already
> accessing the same chip. What is the normal way to deal with this?

Do not write a separate driver for the watchdog functionality. Instead,
add the functionality to the existing hwmon/w83793.c driver. Otherwise
both features will be mutually exclusive.

An example of how this can be done is in hwmon/fschmd.c [1] if you want
to take a look. This is an I2C/SMBus device driver as well, so your code
should be very similar in the end.

[1] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=drivers/hwmon/fschmd.c

Hope this helps,
-- 
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

[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux