summaryrefslogtreecommitdiff
path: root/sys/dev/i2c/i2c_scan.c
AgeCommit message (Collapse)Author
2006-01-09do a lot more careful register checking for echos and roll-around andTheo de Raadt
nonsense values in the lm75 probe. while there, make it look for a significant difference the lm77 has, ok grange
2006-01-06pick some register with a known value, to try to tell a lm96000 apartTheo de Raadt
from any of a variety of National superio chipsets for which documention is very hard to find
2006-01-05if both debug and verbose defined, only spit out the dump onceTheo de Raadt
2006-01-04detect lm96000Theo de Raadt
2006-01-04split out I2C_DEBUG into I2C_VERBOSE. VERBOSE is on. Turn on DEBUG toTheo de Raadt
show more information to i2c developers. thanks.
2006-01-03Use "official" chip part names/numbers for matching.Mark Kettenis
ok deraadt@
2005-12-31Better bounds for the lm7x register repeat test; ok deraadt@Miod Vallat
2005-12-31we do not look at the proberegs anymore, always full dumpsTheo de Raadt
2005-12-31if a register dump is going to find that all the registers are the same,Theo de Raadt
then skip it. it's some quirky piece of garbage we can never support
2005-12-31we think we can now probe chips correctly. only print the register dumpTheo de Raadt
if we fail to attach a driver to a chip name. this means that if we incorrectly diagnose a chip, someone will have to compile a debug kernel. i think we are ready for this, but we will see what the next week brings.
2005-12-31add lots of comments. run the xeontemp probe stuff on other architectures asTheo de Raadt
well since we are seeing some of these crummy adm1021/maxim1617 clones on other architectures. (Intel specified that there was a sensor chip with a certain register layout on their Xeon processors. That register layout is a subset of the maxim1617, ie. without ID registers. I guess they wanted to be able to change them later. But the result is that just as the industry was starting to move towards all new chips having ID registers, Intel pushed them all the other way... and now lots of vendors make chips like this without ID registers. Typical vendor power politics.)
2005-12-31reyk, touching a file I am actively hacking on without talking to me is a ↵Theo de Raadt
serious mistake
2005-12-30add i2c driver for Asus ASB100 sensors using register info from lm_sensorsDamien Miller
driver (Asus believe this chip is such critically important IP they won't release docs for it); feedback deraadt@ and kettenis@, ok kettenis@
2005-12-30knf (replace lines of c++/c99 '//' comments with #if 0)Reyk Floeter
2005-12-30Initial W83791D support for lm(4).Mark Kettenis
ok krw@
2005-12-30check for another sign that a lm75 is not thereTheo de Raadt
2005-12-29Match a few more lm(4) Winbond and ASUS chips.Mark Kettenis
2005-12-29stop using I2C_F_POLL; it is a bus driver responsibility nowTheo de Raadt
2005-12-29insanity debugged with djm -- here is the comment from the code:Theo de Raadt
+ * Some Maxim 1617 clones MAY NOT even read cmd 0xfc! When it is + * read, they will power-on-reset. Their default condition + * (control register bit 0x80) therefore will be that they assert + * /ALERT for the 5 potential errors that may occur. One of those + * errors is that the external temperature diode is missing. This + * is unfortunately a common choice of system designers, except + * suddenly now we get a /ALERT, which may on some chipsets cause + * us to receive an entirely unexpected SMI .. and then an NMI. + * + * As we probe each device, if we hit something which looks suspiciously + * like it may potentially be a 1617 or clone, we immediately set this + * variable to avoid reading that register offset.
2005-12-29static functions suckTheo de Raadt
2005-12-28probe for adm1032, a stupid stupid adm1021Theo de Raadt
2005-12-28correct copyrightTheo de Raadt
2005-12-28probe true lm90, lm99, lm89, lm86 devicesTheo de Raadt
2005-12-28if many regs in a "xeontemp" appear the same, it is not oneTheo de Raadt
2005-12-28some chips (especially those crazy i2c/lpc/isa gross things) expose theirTheo de Raadt
banks at other addresses, but there are issues with accessing these other devices. so allow a driver to "knock" these out from future probing. tested by kettenis -- unfortunate enough to have one of these winbond pieces of poo
2005-12-27correct probe for ds1780 (lm87 clone)Theo de Raadt
2005-12-27if too many of the early regs on a adm1021 are zero, it cannot be one..Theo de Raadt
2005-12-27adjust truth in adm commentTheo de Raadt
2005-12-27Don't touch ic_exec callback directly since it can be missed for someAlexander Yurchenko
controllers. Use iic_exec() instead. ok deraadt@
2005-12-27more paranoid checking for 47m192Theo de Raadt
2005-12-27correct adm2940 probeTheo de Raadt
2005-12-27no longer use ia_compat; tested by a fewTheo de Raadt
2005-12-27match about 15 more clone chipsTheo de Raadt
2005-12-27completely bogus adm1021 check; it is much more like the xeon-styleTheo de Raadt
thingies; except for now i only want to do that rather loose check chip on i386 machines with this, i get sensors on a sparc64 v120. hurray
2005-12-26split out debug codeTheo de Raadt
2005-12-26add address qualifiers to a few chips (ie. they can only occur at certainTheo de Raadt
addresses) there are some "xeon" sensors that are actually real maxim1617, and hence have a 0xfe register containing maxim's identifier .. cope. remove totally bogus lm81 detection.
2005-12-25<= instead of < in two loops; spotted by miodTheo de Raadt
2005-12-25even though some i2c devices have ID and chip registers which we can keyTheo de Raadt
on, we must avoid false posities as much as possible. we have to read the manuals for the chips and find other registers which contain fixed values (or even just fixed bits). this will try to avoid us doing a false detection. as well, check for a few more chip types.. (miod should try with this)
2005-12-24even though the adm1021 manual page doesn't say that the rev at 0xffTheo de Raadt
was always 0x0?, the adm1021A (which uses 0x3?) manual page does claim that this was the case. trust it, why not.
2005-12-24handle embedded xeon temperature probes. yes, you got it -- i2c wiresTheo de Raadt
coming off the processor... for an embedded adm1021 on the chip. only the "external" temperature is valid, the other one is disabled.
2005-12-24add lm75/77 detection (not tested yet) and adm1031 probing.Theo de Raadt
verbose logs for the moment, we still have a ways to go
2005-12-23build a cacheing-read api internally, so that we can be even more stingyTheo de Raadt
with i2c cycles. as well, this will let us basically now write if/else code for basically free. much easier; tested by kettenis and pval
2005-12-23better way to probe winbonds, with kettenisTheo de Raadt
2005-12-23oops, 0x31 is as99127fTheo de Raadt
2005-12-23not quite becoming a nightmare, but we are getting there..Theo de Raadt
2005-12-23set both ia_name and ia_compatTheo de Raadt
2005-12-23another check registerTheo de Raadt
2005-12-23next generation. grok a few more chips, but also change the logic toTheo de Raadt
correct locking, etc, etc, and even try a 16-bit register read just to compare against if we fail to match..
2005-12-23grok some more devicesTheo de Raadt
2005-12-23work in progress towards "identifying" various devices on the i2c bus.Theo de Raadt
this will later on hopefully be table driven, but first I have to read the 100 or so data sheets and start coding up detection rules..... bleah