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

Hector Martin marcan at marcan.st
Tue Nov 23 21:42:12 PST 2021


On 24/11/2021 08.26, Linus Walleij wrote:
> On Tue, Nov 23, 2021 at 3:43 PM Hector Martin <marcan at marcan.st> 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 at marcan.st)
Public Key: https://mrcn.st/pub



More information about the linux-arm-kernel mailing list