Voodoo3 I2C notes (or short commings):
* only one type of read supported: type 'byte' (no 'command')
* only one type of write supported: type 'byte_data'
(The two above are more the limitation of the BT869 rather than
the I2C bus.)
* I used the SMBus 'model' rather than the 'bit' model because
I thought it was easier this way.
* failed bus transactions yeild 0xFF, not an error! So, this means
that many drivers instantly latch onto this adapter because all
reads and writes succeed without error. Without the datasheet for
the chip, I can't do much to fix this. (Amazing I got this far!)
BT869/868 notes:
* the BT869 has lots and lots of registers (~50), but can
only read 3 (fairly uninteresting) status registers(!). Right
now all three status registers are read through the 'status' file,
but I haven't decided on the best method for writing to the rest
of the registers.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@448 7894878c-1315-0410-8ee3-d5d059ff63e0
There are now two new insmod parameters, and the #define has disappeared
force: if set to anything but zero, this enables the PIIX4 as the old
#define did.
force_addr: This first sets a new I/O port address for the PIIX4, and
afterwards enables it. Supercedes 'force'.
Note that using force_addr is very, very dangerous if you do not know
what you are doing. On the other hand, it was very easy to add, and can
be a big help if your BIOS doesn't set correct addresses.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@353 7894878c-1315-0410-8ee3-d5d059ff63e0
* Removed unnecessary MOD_INC/DEC_USE_COUNT in host adapter drivers
(i2c-via bit-lp bit-velle)
You can now rmmod adapters even when they have registered clients.
Without this, you would have to detach the clients first. Only way of doing
this is to rmmod the client drivers, but the same drivers might be used to
access clients behind other hosts.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@347 7894878c-1315-0410-8ee3-d5d059ff63e0
It compiles now cleanly against kernel 2.0.36; I checked, double-checked and
cross-checked.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@247 7894878c-1315-0410-8ee3-d5d059ff63e0
All our own code (ie. anything not in the i2c directory) compiles now without
warnings, even with WARN=1 (which sets -Wall -Wstrict-prototypes -Wshadow
-Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wnested-externs
-Winline). There is one exception: the lex code (conf-lex.l) complains about
unused functions. That's flex' fault, not ours!
The i2c code still emits many warnings with the above flags; that's Simon's
problem.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@233 7894878c-1315-0410-8ee3-d5d059ff63e0
integrated LM78, so the driver is only a customized copy of lm78.c
This southbridge can also do i2c, but this not enough documented in
the datasheet. So i2c is currently not supported.
Some cosmetic changes for VIA driver and documentation.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@196 7894878c-1315-0410-8ee3-d5d059ff63e0
It tries to delete bit-via.o, bit-mb.o, isa.o and piix4.o in the module
install directory.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@194 7894878c-1315-0410-8ee3-d5d059ff63e0
lm_sensors2 source tree. Improvements in VIA driver,
now checks revision code and refuses to load the
module if bit_test (in algo-bit) fails.
(Also fixes previous unsuccessfull CVS commit)
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@187 7894878c-1315-0410-8ee3-d5d059ff63e0
I really hope I did not forget an add or remove. If strange things happen
when you compile, please let me know.
There may still be problems with the EXPORT_* stuff; it seems to work now
for kernel 2.0.36pre19, but it may give trouble for earlier kernels. We
need to check that.
Some i2c modules may be a bit verbose at this moment.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@184 7894878c-1315-0410-8ee3-d5d059ff63e0
I added two new make file 'includes': busses/Module.mk and chips/Module.mk
Frodo- You may want to review the makefile structure to make sure that
the system works as you intended.
Note: The docs still need to be updated to reflect the new file arrangement,
but at least it builds!
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@176 7894878c-1315-0410-8ee3-d5d059ff63e0
Read the intro; it describes how you can use CVS to diff between old releases.
Stupid copyright typo in piix4.c fixed
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@146 7894878c-1315-0410-8ee3-d5d059ff63e0
* Fixed FORCE_PIIX4_ENABLE bus (misspelled function call)
* Added Kyösti's mail about the VIA chipset to the doc directory, as
temporary placeholder
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@78 7894878c-1315-0410-8ee3-d5d059ff63e0
* Somehow, i2c-proc did not yet use the i2c_adapter_id call. This must have
slipped through.
* isa.o and smbus.o changes I made to make them less noisy had a small
error (no return value), which caused strange device detections.
* Added /proc/bus/i2c module-count monitoring - somehow, this slipped
through, too.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@68 7894878c-1315-0410-8ee3-d5d059ff63e0
access unimplementable functionality. And removed a #if which could never
become true anyway from i2c-proc.c.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@67 7894878c-1315-0410-8ee3-d5d059ff63e0
* Changed test in lm75 setup code to 'read/write returns < 0' instead of
(old) 'read/write returns 0xff'. Nowadays, we can see the difference
between an error and a 0xff result, after all.
* Introduced constants used by PIIX4 for transaction types. These are
*not* the same as those in smbus.h.
* Some small code optimalizations in piix4.o.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@40 7894878c-1315-0410-8ee3-d5d059ff63e0
* PIIX4: better names in /proc files
* sensors.c: fixed bug which prevented registration of non-ISA clients
Status:
* lm75 inserts happily and interacts with the PIIX4 correctly
* lm75 readings are still wrong (all 0xff)
* lm75 insertion with ISA bus present causes oops
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@39 7894878c-1315-0410-8ee3-d5d059ff63e0
* /proc/bus/i2c printed garbage if more than one adapter was registered
* There was a double line in piix4.c in the delay function
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@38 7894878c-1315-0410-8ee3-d5d059ff63e0
* Cleanup bug (ioports were not deregistered)
* PIIX4 search (it seems that for function 3, we must seek for a slightly
different device, too).
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@35 7894878c-1315-0410-8ee3-d5d059ff63e0
It compiles now for 2.0 kernels; I hope it still compiles for 2.1 kernels :-)
Changes:
* The non-BIOS PCI interface was introduced in kernel 2.1.54, so I changed
all #ifdef statements to use that kernel as starting point
* I integrated everything in piix4.h into piix4.c; as no other module will
ever need to know about anything PIIX4-specific, we do not need a
separate header file (same went for lm78.c and lm75.c)
* In piix4_setup, both the 2.0 and 2.1 versions continue seeking for PCI
devices until they have found 'function 3' of the PIIX4. This is the
'function' we need for SMBus access.
* At some places in piix4_setup, even for 2.1 kernels the PCI BIOS code was
used. This was seemingly needed, probably because the wrong 'function'
was accessed. I have removed this; if there are troubles with the PIIX4 on
kernels newer than 2.1.53, we need to introduce it again.
* Renamed global things to start uniformly with piix4_
* Changed printk statements to start with piix4.o:
* Pasted in missing part of piix4_access
* No need to lock the adapter on access; this is already done by the
smbus_access function in smbus.c. I corrected a locking bug there too,
by the way.
* Added a few include files needed by 2.0 at least
* Replaced the call to schedule_timeout() in piix4_do_pause with the old
code; schedule_timeout seems to be defined nowhere?!? Phil, was this
your addition, and if so, what should it read?
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@34 7894878c-1315-0410-8ee3-d5d059ff63e0
lm_sensors2 project. It was *very* easy to copy-and-paste it in, so I'm
hoping that it won't include any new bugs. It builds and compiles, but
I wasn't able to test it (under 2.1.131) until we get some compatibility
problems solved. There is probably a little cleaning up to do yet, but
everything looks like it is happy. Test it under 2.0.x and let me know
what happens.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@30 7894878c-1315-0410-8ee3-d5d059ff63e0
Everything now compiles cleanly (except for warnings in kernel header files)
against 2.1.122. As I do not run 2.1 kernels, loading them could not be
tested.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@22 7894878c-1315-0410-8ee3-d5d059ff63e0
Nothing much here yet, except some code to create /proc/bus/i2c. Should work
for kernels 2.0 and 2.1 (please test).
Other notable things:
printk statements in all modules made to have to same 'look'.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@15 7894878c-1315-0410-8ee3-d5d059ff63e0
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
* Modules now print their version number and date on insertion
* Some printk statements missed a \n
* 'make clean' now works, even if some .d (dependency) files contain garbage.
Note that *only* 'make clean' helps in that case; 'make clean all', for
example, will fail! There is really no nice way to solve that.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@11 7894878c-1315-0410-8ee3-d5d059ff63e0
The real PIIX4 access code must still be written; perhaps somebody else could
do this? Most of it could be copied from the old piix4.c. But check carefully
what you are doing, as some things *have* changed (like the SMBUS_{BYTE,...}
variables!).
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@9 7894878c-1315-0410-8ee3-d5d059ff63e0