[PATCH] riscv: dts: spacemit: pcie: fix missing power regulator

Chukun Pan amadeus at jmu.edu.cn
Sun Mar 1 19:05:11 PST 2026


Hi,

> &pcie1_port {
>  	phys = <&pcie1_phy>;
> +	vpcie3v3-supply = <&pcie_vcc_3v3>;
>  };
> 
>  &pcie1 {
> @@ -320,6 +321,7 @@ &pcie2_phy {
> 
>  &pcie2_port {
>  	phys = <&pcie2_phy>;
> +	vpcie3v3-supply = <&pcie_vcc_3v3>;
>  };

```
&pcie1 {
	vpcie3v3-supply = <&pcie_vcc_3v3>;
	status = "okay";
};
```

According to DT binding, the vpcie3v3-supply of the &pciex node should
be moved to the &pciex_port node. This is simply a duplication of the
property.

But do we really need this pcie_port (PCIe bridge)?

The PCIe bridge node (pcie at 0) was treated as a platform device, but it
did not define the interrupts property, which resulted in the following
warning: `[    2.897980] irq: no irq domain found for pcie at 0 !`

Would it be better to submit a patch to remove this pcie_port?

```
-       ret = k1_pcie_parse_port(k1);
-       if (ret)
-               return dev_err_probe(dev, ret, "failed to parse root port\n");
+       k1->phy = devm_phy_get(dev, "pcie-phy");
+       if (IS_ERR(k1->phy))
+               return dev_err_probe(dev, PTR_ERR(k1->phy), "missing PHY\n");
```

I have tested this change and it works.

Thanks,
Chukun



More information about the linux-riscv mailing list