Stuck creating sysfs hooks for a driver..

From: Kaiwan N Billimoria
Date: Wed Feb 15 2006 - 02:52:44 EST


Hello All,

I am in the process of porting a 2.4 temperature sensor device driver (the National Semiconductor LM70CILD-3 temperature sensor eval board) to the 2.6 Linux kernel (specifically to v 2.6.15.3 <http://2.6.15.3>), with the intention of submitting it for inclusion. All ok, except this: am stuck on inserting an entry in /sys instead of /proc for the
driver (as that is suggested as the new "correct" interface to userspace).

I have read some documentation on sysfs and Rubini's lddbus example in
the LDD3 book; however, i am still a little confused: do we really need
to create a new /sys/bus/<driver_name> for each device inserted into
the lernel at runtime? if (probably) not, where _exactly_ do i create
my entry, and of course, _how _ exactly?

FYI, my driver is a char driver and does not require a major/minor pair as the UI is via proc, and hopefully now, sysfs.
(For those interested, pl find the source here: http://www.designergraphix.com/kaiwan/projects/lm70CILD3.c )

So i guess what i'm also trying to say is this: as i don't require a major/minor pair, i'm abviously
not using register_chrdev() or the cdev() interface..hence i don't have a kobject and auto-inclusion in
the sysfs tree (isn't that right?). So... how exactly do i get my sysfs hooks in - as the device_create_file() API requires struct device and struct device_attribute parameters.

Have any of you come across sample code/howto/tutorial out there that demonstrates just this (creating arbitrary sysfs hooks)? Request your help as i'm stuck here...(i also looked through
Documentation/filesystems/sysfs.txt but was unable to properly map it to code... ).

Perhaps, as the usual googling did not turn up a full-fledged howto on this topic, it's time for a knowledgeable person(s) out there to write one? I feel this would be v useful in the Documentation/ branch..
Just a suggestion..

TIA, kaiwan.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/