Commit Graph
43 Commits
Author SHA1 Message Date
Frodo Looijaard 634cb32ac0 Update to the latest (mod-19990118) kernel archive
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
1999-01-29 13:40:25 +00:00
Frodo Looijaard 065e52c2b1 Changed all isa.h references to i2c-isa.h
vi `find -type f|xargs grep -l isa.h` worked like a charm :-)


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@182 7894878c-1315-0410-8ee3-d5d059ff63e0
1999-01-29 00:17:11 +00:00
Philip Edelbrock b1cb5b860b (Phil) Renamed isa.h to i2c-isa.h. Note: '#include "isa.h"'s need to be
updated.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@181 7894878c-1315-0410-8ee3-d5d059ff63e0
1999-01-28 22:51:38 +00:00
Frodo Looijaard face12a534 Stuff to get rid of the LM_SENSORS define
Until now, all installed include files depended on a #defined variable
LM_SENSORS: if it was defined, other files were included as "somefile.h"
instead of <linux/somefile.h>. This was clearly dangerous, and is fixed
now, by automatically deleting the offending lines from the include file
when it is installed.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@180 7894878c-1315-0410-8ee3-d5d059ff63e0
1999-01-28 15:36:01 +00:00
Frodo Looijaard f31a1f45f2 Makefile tweaks for the new kernel directory structure
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@179 7894878c-1315-0410-8ee3-d5d059ff63e0
1999-01-28 14:45:20 +00:00
Philip Edelbrock bf7943bb69 (Phil) Added adm9240 and adm1021 entries into the lib and added VID
output to ADM9240.  Status/alarms values need to be implemented instead
of a raw output, but I'll do that too.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@173 7894878c-1315-0410-8ee3-d5d059ff63e0
1999-01-24 00:15:12 +00:00
Frodo Looijaard 50573c910d More i2c-dev fixes
* Made some smbus.h symbols visible in non-kernel mode
* Some i2c-dev.h fixes


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@164 7894878c-1315-0410-8ee3-d5d059ff63e0
1999-01-13 20:25:21 +00:00
Frodo Looijaard a775db2fcc Completed i2c-dev. Not tested yet.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@160 7894878c-1315-0410-8ee3-d5d059ff63e0
1999-01-13 19:07:57 +00:00
Frodo Looijaard 1b05c9e1c1 User-space header file added for i2c-dev access
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@159 7894878c-1315-0410-8ee3-d5d059ff63e0
1999-01-13 16:46:38 +00:00
Frodo Looijaard 81c78982f6 The beginnings of i2c-dev
Everything is in, except the IOCTL hook (which will be pretty simple to add).
It compiles cleanly. It is not tested at all.

Also a very small fix for i2c-proc, and Makefile.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@158 7894878c-1315-0410-8ee3-d5d059ff63e0
1999-01-13 01:32:09 +00:00
Philip Edelbrock e4051fec67 (Phil) Added a driver for the LTC1710. The LTC1710 is a very simple dual
switch.  It can switch two devices which each consume 300mA at 5V (or less).
This is good for fans, lights, or into relays for heftier stuff.

Here's what the usage looks like:

[root@penn sensors]# ls ltc1710-i2c-1-58/*
ltc1710-i2c-1-58/switch1
ltc1710-i2c-1-58/switch2

[root@penn sensors]# cat ltc1710-i2c-1-58/*
0
0

[root@penn sensors]# echo "1" >  ltc1710-i2c-1-58/switch2
(blue LED turned on)

[root@penn sensors]# cat ltc1710-i2c-1-58/*
0
1

One problem with the device: It doesn't support reads.  It ignores any
read transactions, so even detection with a read won't work.  This
also means that the status of the switches has to be remembered and
can't be polled.

As simple as this device is, it is one of the few which actually
allows the computer to send signals OUT into the world to
control something.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@155 7894878c-1315-0410-8ee3-d5d059ff63e0
1999-01-11 05:20:10 +00:00
Philip Edelbrock ff2c35a40b (Phil) Added driver for ADM9240. It isn't full tested, but it is
mostly there and working.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@154 7894878c-1315-0410-8ee3-d5d059ff63e0
1999-01-11 03:33:07 +00:00
Philip Edelbrock 899ca67043 (Phil) Added a driver for the Analog Devices ADM1021. The ADM1021 is
basically an expanded LM75.  It can have an external temp probe (in
addition to the internal one), customizable conversion rate (in # of times
per second, depending on power consumption requirements), and
actually has a device-id register for easier/more-certain detecting!

The only strange property is the low-limit.  The low-limit doesn't act
as a Hystersis value like the LM75.  I.e., if the temp falls below it,
it triggers an alarm instead of clearing it.  Strange, ey?  This makes
using the chip for a thermostat control (like for a fan) much harder.
But it *could* be used to turn on a heater to prevent your computer from
freezing. :')

Here's what my output looks like (without a remote sensor. temp's
are the same format as the LM75 [high-limit, low-limit, value]):

[root@penn adm1021-i2c-0-18]# ls -l
total 0
-r--r--r--   1 root     root            0 Jan  9 23:42 die_code
-rw-r--r--   1 root     root            0 Jan  9 23:42 remote_temp
-r--r--r--   1 root     root            0 Jan  9 23:42 status
-rw-r--r--   1 root     root            0 Jan  9 23:42 temp
[root@penn adm1021-i2c-0-18]# cat *
3
60 20 0
76
60 20 24


PS- all temp values in the ADM1021 (limits and readings) are signed
(2's comp) bytes.  So, all readings go from -128 to 127 C (actually,
the docs say it can only reliable sense down to -65), and only
in whole degree increments.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@153 7894878c-1315-0410-8ee3-d5d059ff63e0
1999-01-10 08:03:43 +00:00
Frodo Looijaard 9248881396 Winbond driver enhancements (untested)
* Force the Winbond into bank 0 before anything else is done
* Copied fan_div patch from lm78.c
* Copied IN_{FROM,TO}_REG patch from lm78.c
* Copied alarms computation bug fix from lm78.c
* Nicer way of managing banks: the bank number to access is now the high
  byte of the (as u16 declared) register number. Only
  w38781d_{read,write}_value needs now to be aware of banks. Also, the
  w38781d_{read,write}_value functions now know that sensors 2 and temp, hyst
  and over registers are word-sized.
* Introduced fan_div for FAN3 and 9-bit temperature readings.
* Made beep file work like the gl518sm one
* Corrected small VID problem (bit 4 was read from the wrong register)


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@121 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-26 01:18:58 +00:00
Frodo Looijaard e5249883ec Completed the LM80 driver. Untested.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@115 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-25 19:30:44 +00:00
Frodo Looijaard f3cfdfa7a5 Added 'beep' file for GL518SM chips
This file consists of two numbers: the first is either 0 (global sound
alarm disable) or 1 (enable), the second is in the same encoding as the
'alarm' file and determines for which alarms the speaker will sound.

The new file was added to the module, the library and the sensors application.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@112 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-24 23:17:55 +00:00
Frodo Looijaard 750e0d00aa Slightly better copyright messages, now telling what the file belongs
to.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@96 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-20 17:04:11 +00:00
Philip Edelbrock b47bfd40c2 (Phil) Fixed some bugs in src/eeprom.c and added more stuff
to /prog/eeprom/decode-dimms.pl


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@94 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-20 07:48:16 +00:00
Frodo Looijaard e50c0d6684 Makefile updates
Several, mostly internal, things changed. Most notably, the install
directories are extended (we'll need this to install the new library).
Also, explicit rules for creating .c and .o files are added.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@88 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-18 16:31:56 +00:00
Philip Edelbrock b469d20bf4 (Phil) Added access to 'beep' buzzer control registers via 'beep' file.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@87 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-18 03:15:07 +00:00
Philip Edelbrock 3f4412405e (Phil) Tried to add remote temp sensors support to Winbond driver. My board
doesn't seem to have any sensors (I guess?), or the Windbond PDF is so
convoluted that I haven't understood it enough to get it working (another
good possibility).  Oh, well. It builds and inserts, anyway.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@85 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-17 07:29:59 +00:00
Philip Edelbrock cd9e3adc9d (Phil) Started w83781d.c. It compiles, inserts, and seems to work, but
has no Winbond specific features implemented yet.  Proper testing for
a Winbond also needs to be implemented.  src/Module.mk and src/sensors.h
were modified slightly to support the new driver.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@83 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-17 03:34:30 +00:00
Philip Edelbrock 446a74bd6a (Phil) Fixed some bugs and added read support for 128 bytes.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@76 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-14 00:31:22 +00:00
Philip Edelbrock 0a56e24ec7 (Phil) Now functional serial eeprom interface! sysctl entries for eeprom
module.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@73 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-13 08:44:58 +00:00
Frodo Looijaard 5dd41b1046 GL518SM driver
To be done: support for GL518SM revision 0x80 and GL520SM

Kyösti, if you have some time soon, could you please test it?


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@56 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-09 17:53:32 +00:00
Frodo Looijaard 2e4f147647 Introduced /proc/sys/dev/sensors/chips file
See doc/sysctl for an explanation why it is needed.

Also fixed two very small cleanup bugs in lm75/lm78, which would probably be
impossible to trigger anyway, but still.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@51 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-08 22:52:05 +00:00
Frodo Looijaard ca90531f6b More documentation, and some small bug fixes
* LM75 temperature limits initializations were switched
* LM78 VID readings were off by a factor 100
* New bit-mask constants in sensors.h for LM78 alarm field


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@49 7894878c-1315-0410-8ee3-d5d059ff63e0
1998-12-08 16:58:10 +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
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 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 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 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 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 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