[PATCH] riscv: dts: spacemit: pcie: fix missing power regulator
Yao Zi
me at ziyao.cc
Sun Mar 1 21:44:50 PST 2026
On Mon, Mar 02, 2026 at 11:05:11AM +0800, Chukun Pan wrote:
> 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)?
This schema is required to be taken during review of the PCIe driver[1],
and it should be the future way to handle Root Port specific properties
through pwctrl-slot driver instead of the host driver.
> 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?
Thus I don't think it's a good idea. We should go back and investigate
a proper fix for the irq domain problem.
> ```
> - 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
Best regards,
Yao Zi
[1]: https://lore.kernel.org/linux-pci/u53qfrubgrcamiz35ox6lcdpp5bbzfwcsic466z5r6yyx6xz3n@c64nw2pegtfe/
More information about the linux-riscv
mailing list