On Sun, Apr 02, 2023 at 11:27:28AM +0200, Radoslaw Kujawa wrote:
I am positive it worked before FDT changes. I remember playing around with various sensors and even testing newly written I2C drivers with the original white BB.
Thanks for the confirmation; now I have a better idea what I'm dealing with.
What version were you working with, so that I can better bisect the code?
The FDT change brought in this:
/* XXX standard speed only */
if (sc->sc_type == TI_IIC_OMAP3) {
psc = (96000000 / 19200000) - 1;
scll = sclh = (19200000 / (2 * 100000)) - 6;
} else {
psc = 3;
scll = 53;
sclh = 55;
}
... which appears to be wrong for OMAP4, wasn't in the code pre-FDT, and raises
more doubts about the rest of the BB post-FDT.
The OMAP3 clock setting makes i2cscan work better with "-r" (see below) but
there are still intermittent and non-deterministic false detections. I suspect
those are caused by timing/re-entrancy issues.
I don't see how i2cscan ever worked with the TI AM335x chips, as the default
quick-write scheme has a payload size of zero and is silently dropped by
ti_iic.c.
There's more mystery surrounding the second i2c bus (iic1, reserved for cape
EEPROMs). It's disabled in the dtb, so the FDT code does not enumerate the bus.
Did capes work pre-FDT?
Cheers,
--
-- Chris
GPG key fingerprint B566 051D D99D 37B6 41F2 7593 22EE 9E38 FBA7 7B34