Messages in this thread |  | | Subject | Re: LM90 driver and ti tmp461 detection | | From | Guenter Roeck <> | | Date | Thu, 10 Dec 2015 08:41:57 -0800 |
| |
On 12/10/2015 04:08 AM, Andreas Werner wrote: > Hi, > i have a temperature sensor device named "TI TMP461" which is quite the > same than the tmp451 which is already included in the lm90 driver. > > I just want to add the tmp461 to the driver but currently i have no way > to differ between the tmp461 and tmp451. > > The main different is that the tmp461 address can be configured by to Pins > whereas the tmp451 has a fixed address. > > The register layout is quite the same except that the tmp461 has one > register more (0x16 Channel Enable Register). > > Every zero bit is the same for both bits, so we cannot use these bits for > identification. > > Does anybody of you have a tmp451 to read out the register 0x16 (which is > not implement but i expect a value). May be we can use this to > identify the tmp461. >
Here is a register dump.
00: 5d 69 00 04 08 bf 00 ff 53 00 00 00 00 00 00 00 ]i.???..S....... 10: a0 00 00 00 00 f0 00 00 00 a9 00 00 00 00 00 00 ?....?...?...... 20: b8 0a 01 00 00 XX 00 00 00 00 0e 00 00 00 00 00 ???..X....?..... 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 00 ..............U.
there is nothing to distinguish the two chips as far as I can see. Is your system a devicetree system ? If so, you can just provide a compatible statement such as compatible = "ti,tmp461", "ti,tmp451"; or simply instantiate the chip as tmp451.
Feel free to provide a patch adding '{ "tmp461", tmp451 },' to lm90_id as well as the necessary documentation, but I don't think there is anything we can do to detect the chip.
On the other side, I am a bit concerned that the chip detection doesn't work well, since the chip ID register is really unsupported and just happens to return 0 for both chips. I wonder if there are other TI chips which may be mis-detected as TMP451.
Thanks, Guenter
|  |