On Sat, Nov 8, 2025 at 4:23 AM Manivannan Sadhasivam
<manivannan.sadhasivam@oss.qualcomm.com> wrote:
>
> The devicetree node of the PCIe Root Port/Slot could have the graph port
> to link the PCIe M.2 connector node. Since the M.2 connectors are modelled
> as Power Sequencing devices, they need to be controlled by the pwrctrl
> driver as like the Root Port/Slot supplies.
>
> Hence, create the pwrctrl device if the graph port is found in the node.
>
> Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
> ---
> drivers/pci/probe.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
> index c83e75a0ec1263298aeac7f84bcf5513b003496c..9c8669e2fe72d7edbc2898d60ffdda5fc769d6f5 100644
> --- a/drivers/pci/probe.c
> +++ b/drivers/pci/probe.c
> @@ -9,6 +9,7 @@
> #include <linux/init.h>
> #include <linux/pci.h>
> #include <linux/msi.h>
> +#include <linux/of_graph.h>
> #include <linux/of_pci.h>
> #include <linux/of_platform.h>
> #include <linux/platform_device.h>
> @@ -2555,7 +2556,7 @@ static struct platform_device *pci_pwrctrl_create_device(struct pci_bus *bus, in
> * not. This is decided based on at least one of the power supplies
> * being defined in the devicetree node of the device.
> */
> - if (!of_pci_supply_present(np)) {
> + if (!of_pci_supply_present(np) && !of_graph_is_present(np)) {
> pr_debug("PCI/pwrctrl: Skipping OF node: %s\n", np->name);
> goto err_put_of_node;
> }
>
> --
> 2.48.1
>
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>