20 lines
1 KiB
Plaintext
20 lines
1 KiB
Plaintext
![]() |
Any w1 device must be connected to w1 bus master device - for example
|
||
|
ds9490 usb device or w1-over-GPIO or RS232 converter.
|
||
|
Driver for w1 bus master must provide several functions(you can find
|
||
|
them in struct w1_bus_master definition in w1.h) which then will be
|
||
|
called by w1 core to send various commands over w1 bus(by default it is
|
||
|
reset and search commands). When some device is found on the bus, w1 core
|
||
|
checks if driver for it's family is loaded.
|
||
|
If driver is loaded w1 core creates new w1_slave object and registers it
|
||
|
in the system(creates some generic sysfs files(struct w1_family_ops in
|
||
|
w1_family.h), notifies any registered listener and so on...).
|
||
|
It is device driver's business to provide any communication method
|
||
|
upstream.
|
||
|
For example w1_therm driver(ds18?20 thermal sensor family driver)
|
||
|
provides temperature reading function which is bound to ->rbin() method
|
||
|
of the above w1_family_ops structure.
|
||
|
w1_smem - driver for simple 64bit memory cell provides ID reading
|
||
|
method.
|
||
|
|
||
|
You can call above methods by reading appropriate sysfs files.
|