Re: [PATCH 3/3] PCI: apple: Add support for optional PWREN GPIO

From: Rob Herring
Date: Mon May 02 2022 - 11:15:19 EST


On Mon, May 2, 2022 at 4:39 AM Hector Martin <marcan@xxxxxxxxx> wrote:
>
> WiFi and SD card devices on M1 Macs have a separate power enable GPIO.
> Add support for this to the PCIe controller. This is modeled after how
> pcie-fu740 does it.

It did, but it's not ideal really. The problem is the GPIO is really
associated with the device (WiFi/SD) rather than the PCI host and
therefore should be part of a WiFi or SD node. You probably don't have
one (yet), but I would suspect that SD will need one for all the
standard MMC/SD DT properties. The secondary issue is we'll end up
adding more power sequencing properties to control ordering and timing
for different devices. The exception here is standard PCI slot
properties like perst#, clkreq, and standard voltage rails can go in
the host bridge (and for new bindings, those should really be in the
root port node). For a complicated example, see Hikey960 or 970.

Of course with power control related properties there's a chicken or
egg issue that the PCI device is not discoverable until the device is
powered on. This issue comes up over and over with various hacky
solutions in the bindings. The PCI subsystem needs to solve this. My
suggestion is that if the firmware says there is a device on the bus
and it wasn't probed, then we should force probing (or add a pre-probe
hook for drivers). That is what MDIO bus does for example.

Rob