Re: Errant readings on LM81 with T2080 SoC
From: Chris Packham <Chris.Packham@alliedtelesis.co.nz>
Date: 2021-03-08 20:28:20
Also in:
linux-hwmon, linux-i2c, lkml
On 8/03/21 5:59 pm, Guenter Roeck wrote:
On 3/7/21 8:37 PM, Chris Packham wrote: [ ... ]quoted
quoted
That's from -ENXIO which is used in only one place in i2c-mpc.c. I'll enable some debug and see what we get.For the errant readings there was nothing abnormal reported by the driver. For the "No such device or address" I saw "mpc-i2c ffe119000.i2c: No RXAK" which matches up with the -ENXIO return.Id suggest to check the time until not busy and stop in mpc_xfer(). Those hot loops are unusual, and may well mess up the code especially if preempt is enabled. Also, are you using interrupts or polling in your system ?
I'm using interrupts but I see the same issue if I comment out the interrupts in the dtsi file (i.e. force it to use polling).
The interrupt handler looks a bit odd, with "Read again to allow register to stabilise".
Yeah that stuck out to me too. The code in question predates git, I went spelunking in history.git and the "Read again" seems to be in the initial version[0]. I did try to alter the interrupt handler so that it only does one read but that didn't seem to change anything.
Do you have fsl,timeout set in the devicetree properties and, if so, have you played with it ?
Haven't got it set but I'll have a go at tweaking it.
Other than that, the only other real idea I have would be to monitor the i2c bus.
I am in the fortunate position of being able to go into the office and even happen to have the expensive scope at the moment. Now I just need to find a tame HW engineer so I don't burn myself trying to attach the probes. -- [0] - https://git.kernel.org/pub/scm/linux/kernel/git/history/history.git/commit/?id=11b3235dc04a306f6a9ba14c1ab621b2d54f2c56