summaryrefslogtreecommitdiffstats
path: root/sys/dev/i2c/i2c_scan.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* if a register dump is going to find that all the registers are the same,deraadt2005-12-311-18/+25
| | | | then skip it. it's some quirky piece of garbage we can never support
* we think we can now probe chips correctly. only print the register dumpderaadt2005-12-311-10/+12
| | | | | | 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.
* add lots of comments. run the xeontemp probe stuff on other architectures asderaadt2005-12-311-16/+22
| | | | | | | | | | | 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.)
* reyk, touching a file I am actively hacking on without talking to me is a serious mistakederaadt2005-12-311-7/+5
|
* add i2c driver for Asus ASB100 sensors using register info from lm_sensorsdjm2005-12-301-1/+15
| | | | | driver (Asus believe this chip is such critically important IP they won't release docs for it); feedback deraadt@ and kettenis@, ok kettenis@
* knf (replace lines of c++/c99 '//' comments with #if 0)reyk2005-12-301-5/+7
|
* Initial W83791D support for lm(4).kettenis2005-12-301-8/+5
| | | | ok krw@
* check for another sign that a lm75 is not therederaadt2005-12-301-3/+5
|
* Match a few more lm(4) Winbond and ASUS chips.kettenis2005-12-291-3/+37
|
* stop using I2C_F_POLL; it is a bus driver responsibility nowderaadt2005-12-291-12/+12
|
* insanity debugged with djm -- here is the comment from the code:deraadt2005-12-291-4/+39
| | | | | | | | | | | | | | | + * 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.
* static functions suckderaadt2005-12-291-122/+122
|
* probe for adm1032, a stupid stupid adm1021deraadt2005-12-281-1/+4
|
* correct copyrightderaadt2005-12-281-2/+2
|
* probe true lm90, lm99, lm89, lm86 devicesderaadt2005-12-281-8/+18
|
* if many regs in a "xeontemp" appear the same, it is not onederaadt2005-12-281-4/+7
|
* some chips (especially those crazy i2c/lpc/isa gross things) expose theirderaadt2005-12-281-32/+22
| | | | | | | 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
* correct probe for ds1780 (lm87 clone)deraadt2005-12-271-3/+3
|
* if too many of the early regs on a adm1021 are zero, it cannot be one..deraadt2005-12-271-4/+11
|
* adjust truth in adm commentderaadt2005-12-271-4/+4
|
* Don't touch ic_exec callback directly since it can be missed for somegrange2005-12-271-4/+4
| | | | | | controllers. Use iic_exec() instead. ok deraadt@
* more paranoid checking for 47m192deraadt2005-12-271-2/+4
|
* correct adm2940 probederaadt2005-12-271-5/+8
|
* no longer use ia_compat; tested by a fewderaadt2005-12-271-2/+1
|
* match about 15 more clone chipsderaadt2005-12-271-8/+41
|
* completely bogus adm1021 check; it is much more like the xeon-stylederaadt2005-12-271-2/+7
| | | | | | 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
* split out debug codederaadt2005-12-261-1/+9
|
* add address qualifiers to a few chips (ie. they can only occur at certainderaadt2005-12-261-23/+37
| | | | | | | 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.
* <= instead of < in two loops; spotted by miodderaadt2005-12-251-3/+3
|
* even though some i2c devices have ID and chip registers which we can keyderaadt2005-12-251-26/+57
| | | | | | | | 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)
* even though the adm1021 manual page doesn't say that the rev at 0xffderaadt2005-12-241-4/+4
| | | | | was always 0x0?, the adm1021A (which uses 0x3?) manual page does claim that this was the case. trust it, why not.
* handle embedded xeon temperature probes. yes, you got it -- i2c wiresderaadt2005-12-241-1/+31
| | | | | coming off the processor... for an embedded adm1021 on the chip. only the "external" temperature is valid, the other one is disabled.
* add lm75/77 detection (not tested yet) and adm1031 probing.deraadt2005-12-241-6/+70
| | | | verbose logs for the moment, we still have a ways to go
* build a cacheing-read api internally, so that we can be even more stingyderaadt2005-12-231-95/+79
| | | | | 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
* better way to probe winbonds, with kettenisderaadt2005-12-231-33/+9
|
* oops, 0x31 is as99127fderaadt2005-12-231-2/+2
|
* not quite becoming a nightmare, but we are getting there..deraadt2005-12-231-26/+69
|
* set both ia_name and ia_compatderaadt2005-12-231-2/+2
|
* another check registerderaadt2005-12-231-2/+4
|
* next generation. grok a few more chips, but also change the logic toderaadt2005-12-231-30/+69
| | | | | correct locking, etc, etc, and even try a 16-bit register read just to compare against if we fail to match..
* grok some more devicesderaadt2005-12-231-4/+14
|
* work in progress towards "identifying" various devices on the i2c bus.deraadt2005-12-231-46/+128
| | | | | | 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
* typopedro2005-12-231-2/+2
|
* start at a 2nd generation scannerderaadt2005-12-201-35/+70
|
* First attempt to have a table of known I2C slave devices that wegrange2005-12-191-0/+73
have drivers for. iic(4) will scan the bus for them and try to attach an appropriate driver. For now iic(4) scans for all possible addresses for debugging purposes. ok deraadt@