On 24/11/2021 08.26, Linus Walleij wrote:
On Tue, Nov 23, 2021 at 3:43 PM Hector Martin <marcan@xxxxxxxxx> wrote:
For those following along in the list: the reason why i2c3 was getting
stuck is because it seems the unused bus is weakly pulled low on these
machines, which jams it.
That looks like some power saving attempt.
I suppose that means that even i2c buses that are in use
could be weakly pulled low when suspending the system
and maybe even inbetween transactions to save some
leak current.
Pulled up vs. down dosn't really result in better power savings; neither
state will necessarily have more leakage. I think it's just that the
pins are completely disconnected, and there's some very minor leakage to
ground (megaohms will do) that ends up pulling them down.
Pulling down an I2C bus between transactions is not legal; the idle
state has to be high.
Apple are actually not very good at configuring GPIOs for power saving;
e.g. the I/Os for that unused i2c bus still have their input buffers
turned on, which is a waste of power. If they wanted to save the
smallest drop of power they'd turn that off. But the effect of this is
so trivial it probably makes no difference in the context of a laptop,
nevermind a desktop like the Mac Mini.
--
Hector Martin (marcan@xxxxxxxxx)
Public Key: https://mrcn.st/pub