Re: [PATCH v3 3/4] arm64: dts: apple: t8103: Add i2c nodes

From: Hector Martin
Date: Wed Nov 24 2021 - 00:42:30 EST


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