Commit Graph
29 Commits
Author SHA1 Message Date
Frodo Looijaard 45e87b2b9e SMBus emulation on real I2C adapters finished
Not tested, as I do not own such an adapter...

Block reading not implemented, as it seems impossible to do with the
currently available I2C primitives.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@43 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-06 23:03:46 +00:00
Frodo Looijaard f322a67793 Better header files
* Header files isa.h, sensors.h and smbus.h will now be installed on a
  'make install';
* #ifdef __KERNEL__ added to the above header files where appropriate;
* Correct files are included, both if __KERNEL__ is true and false.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@42 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-06 16:19:24 +00:00
Frodo Looijaard 831b8e88f3 Resolved ISA crash.
Status: You can insert all modules, and it works like a charm!

Changes:
* Corrected check for SMBus algorithm in smbus_access
* (The unimplemented) smbus_access_i2c now returns an error, instead of
  an undefined result


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@41 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-06 16:07:23 +00:00
Frodo Looijaard ce0521ba13 LM75 data correctly readable now!
* 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
1998-12-06 15:21:29 +00:00
Frodo Looijaard e0484650ef Fixed some more bugs
* 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
1998-12-05 16:36:47 +00:00
Frodo Looijaard 61d74f13e0 Minor fixes
* /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
1998-12-05 16:12:47 +00:00
Philip Edelbrock 279eb7c5c0 (Phil) Fixed a couple 2.1.x issues:
- The schedule() and timeout issue (since 2.1.127 I think)

- A syntax error in piix4 (pci func 3 sensing code Frodo wrote)


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@37 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-05 04:23:52 +00:00
Frodo Looijaard 3e7c6427d0 Very minor namespace fixes, and TODO list update (or should I say
downdate; I only removed a few things :-))


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@36 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-05 01:08:42 +00:00
Frodo Looijaard 6b510ea008 Last fixes in piix4.o
* 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
1998-12-05 01:03:03 +00:00
Frodo Looijaard f18d210815 PIIX4 update
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
1998-12-05 00:47:22 +00:00
Frodo Looijaard 831fd5e911 Corrected LM78 probing.
If your LM78/78-J/79 is still not detected, please recompile lm78.o with
DEBUG=1 and mail the output of dmesg. Same for Winbonds.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@33 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-04 15:26:29 +00:00
Frodo Looijaard 35e3f46b09 This should solve the 2.1 kernel /proc/bus/i2c-? problem.
The inode list that is used to determine which i2c-? file is accessed,
was not initialized for 2.1 kernels due to a #endif statement that
was one line too low :-(


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@32 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-04 15:16:49 +00:00
Philip Edelbrock 36d4745b0d (Phil) OK, here is the first shot at integrating PIIX4 support in the new
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
1998-12-04 03:49:32 +00:00
Frodo Looijaard b2f89aee3f LM75 driver finished
Well, it should work. But until we have implemented the remaining parts of
piix4.o, we won't be able to test it. Anybody?


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@29 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-04 00:47:40 +00:00
Frodo Looijaard 857a44f757 Simplification of /proc files functions in chip drivers
I moved a large part of the proc and sysctl call-back functions into
sensors.c. The result saved about 100 lines in lm78.c; it now uses only
2 pages according to lsmod, instead of 3! Also, other modules can use
the same functions, saving coding efforts and keeping them small.

I also fixed a fan_div display error.

Expect more code to be moved to sensors.c: I am writing lm75.c, and
most things which are in both modules (and so probably general purpose)
will be moved to sensors.c.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@28 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-03 23:15:17 +00:00
Frodo Looijaard 0aa9e734d0 Some lm78 updates
* LM78, LM78-J and LM79 now all supported
* Chip type reflected in /proc/bus/i2c-?, /proc/.../sensors/* and
  /proc/ioports.
* VID initialises IN0 and IN1, except if it is 3.50 V (then it falls back to
  2.80 V)
* Slightly better ISA detection (but still not good enough)
* Temperature now in tenth of degrees, instead of whole degrees (for better
  compatibility)


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@27 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-03 18:20:59 +00:00
Frodo Looijaard 81dd46d199 Made sure the right i2c.h file was always included
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@23 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-02 17:43:13 +00:00
Frodo Looijaard cbf518d36e Fixes to make code compile with 2.1 kernels
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
1998-12-02 17:25:53 +00:00
Frodo Looijaard af7232145d Bug-fixes: lm78.c is now working!
Yes, our first chip driver is now fully operative. Some parts of it can
still be moved to sensors.o and reused by other drivers, but this can be
done later.

Bug fixes:
* i2c-core.c: Corrected previous patch (a client was now unloaded twice,
  which caused problems, as could be expected).
* lm78.c, sensors.c: some minor typos, which caused the crashes
* lm78.c: FAN_DIV only has two fields (fan 3 is not changable)
* sensors.c: ISA/SMBus addresses are prefixed with zeros in directory names


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@20 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-02 00:47:37 +00:00
Frodo Looijaard 6ea68ba7a2 Many things, most notable the lm78 module
* Some Makefile changes. doc/makefiles documents most of them.
* The lm78 module now compiles, but it will still crash.
* New module sensors, with general code usable by chip driver modules
* i2c-core: added function i2c_adapter_id(), which returns a (low)
  unique i2c-bus ID.
* lm78.h stuff moved into lm78.c or sensors.h


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@19 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-01 21:11:32 +00:00
Frodo Looijaard dcf30092e1 Finished i2c-proc.c
When you insert i2c-proc.o, you will find some files in /proc/bus (which
is first created for 2.0 kernels). Currently, the following files are
implemented:
  * /proc/bus/i2c
    A list of i2c/smbus adapters. If DEBUG was true when you compiled this
    module, you will also see the ISA pseudo-adapter (if isa.o is loaded).
  * /proc/bus/i2c-?
    For each adapter in /proc/bus/i2c, a list of registered clients.
    If DEBUG was true when you compiled this module, you will also see
    the i2c-proc pseudo client.
Of course, these entries are modified when adapters are added/removed.

Kernel 2.1.x users are encouraged to test this module, as /proc entries
are somewhat different beginning with kernel 2.1.29.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@18 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-28 01:40:37 +00:00
Frodo Looijaard ad1f47a49a Dynamic generation of /proc/bus/i2c-? files (no info yet)
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@17 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-28 00:07:36 +00:00
Frodo Looijaard 85e409d322 i2c-proc now creates complete /proc/bus/i2c
* i2c-bus is renamed to i2c-proc
* small patch in i2c-core.c (see correspondence with Simon Vogl)
* sensors.h contains i2c constants
* It seems lm78.[ch] was not yet committed?!?


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@16 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-27 22:02:09 +00:00
Frodo Looijaard c26eff1184 Start of i2c-bus, a module for displaying i2c bus information in /proc
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
1998-11-27 00:26:51 +00:00
Frodo Looijaard 45d6e40e75 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
1998-11-26 10:16:08 +00:00
Frodo Looijaard 4d29df9f32 isa module added, some bugfixes
'isa.o' is roughly what was called 'sensor.o' in doc/design.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@12 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-23 22:34:34 +00:00
Frodo Looijaard ed7e4c3001 Makefile enhancements, printk enhancements
* 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
1998-11-22 21:36:52 +00:00
Frodo Looijaard 9f4acd58b1 piix4.c basic skeleton
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
1998-11-19 15:14:01 +00:00
Frodo Looijaard 36d5e317ce Module smbus.o, many other small changes
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@8 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-11-19 03:07:18 +00:00