Re: [PATCH 3/3] PCI: qcom: Treat PHY and PERST# as optional for the new binding
From: Krishna Chaitanya Chundru
Date: Mon Oct 13 2025 - 10:40:46 EST
On 10/11/2025 9:39 AM, Manivannan Sadhasivam wrote:
+ GPIO folks for the below API queryone case where phy is optional is in pcie tunneling through usb4, there
On Fri, Oct 10, 2025 at 08:32:51PM +0200, Konrad Dybcio wrote:
On 10/10/25 8:25 PM, Manivannan Sadhasivam wrote:
Even for the new DT binding where the PHY and PERST# properties are
specified in the Root Port, both are optional. Hence, treat them as
optional in the driver too.
I suppose this makes sense if the PHY is transparent to the OS
or otherwise pre-programmed and PERST# is hardwired or otherwise
unnecessary.. both of which I suppose aren't totally impossible..
PERST# is by definition an optional signal, but I'm not sure about why PHY is
not used by the controller driver.
we don't require any phy.
- Krishna Chaitanya.
If both properties are not specified, then fall back to parsing the legacy
binding for backwards compatibility.
Fixes: a2fbecdbbb9d ("PCI: qcom: Add support for parsing the new Root Port binding")
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxxxxxxxx>
---
drivers/pci/controller/dwc/pcie-qcom.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c
index 805edbbfe7eba496bc99ca82051dee43d240f359..d380981cf3ad78f549de3dc06bd2f626f8f53920 100644
--- a/drivers/pci/controller/dwc/pcie-qcom.c
+++ b/drivers/pci/controller/dwc/pcie-qcom.c
@@ -1720,13 +1720,20 @@ static int qcom_pcie_parse_port(struct qcom_pcie *pcie, struct device_node *node
reset = devm_fwnode_gpiod_get(dev, of_fwnode_handle(node),
"reset", GPIOD_OUT_HIGH, "PERST#");
- if (IS_ERR(reset))
+ if (IS_ERR(reset) && PTR_ERR(reset) != -ENOENT)
return PTR_ERR(reset);
Please introduce an _optional variant instead
Linus, Bartosz, are you OK with devm_fwnode_gpiod_get_optional() API? Just
wanted to confirm before I go ahead as there are existing users checking for
-ENOENT explicitly. Not sure if they are doing it for a reason other than the
absence of the _optional variant or not.
- Mani