
Hi Lukasz,
-----Original Message----- From: Lukasz Majewski [mailto:lukma@denx.de] Sent: Monday, April 01, 2019 4:04 PM To: Siva Durga Prasad Paladugu sivadur@xilinx.com Cc: u-boot@lists.denx.de; marex@denx.de; jjhiblot@ti.com; sjg@chromium.org; patrick.delaunay@st.com; Michal Simek michals@xilinx.com Subject: Re: [PATCH] usb: dwc3: Handle case where setup_phy is not needed
On Mon, 1 Apr 2019 10:23:42 +0000 Siva Durga Prasad Paladugu sivadur@xilinx.com wrote:
Hi Lukasz,
-----Original Message----- From: Lukasz Majewski [mailto:lukma@denx.de] Sent: Monday, April 01, 2019 1:03 PM To: Siva Durga Prasad Paladugu sivadur@xilinx.com Cc: u-boot@lists.denx.de; marex@denx.de; jjhiblot@ti.com; sjg@chromium.org; patrick.delaunay@st.com; Michal Simek michals@xilinx.com Subject: Re: [PATCH] usb: dwc3: Handle case where setup_phy is not needed
Hi Siva Durga Prasad Paladugu,
If CONFIG_PHY is not enabled then the dwc3_setup_phy() returns ENOTSUPP which can be still valid and intentional
^^^^^^^^^^^^^^^^^^^^^^^^^^^ - could
you elaborate on this a bit more?
What is the use case when -ENOTSUPP is valid and intentional ?
In the cases where phy will be setup by First stage boot loader itself and don't want to do it again at u-boot.
I think that I saw some time ago similar patch for uart - on IMX IIRC (it was also setup by BootROM on SoC).
Maybe we would need some kind of switch in Kconfig to indicate this use case?
Another option would be to mark this in DTS as TI specific property?
My point is that we shall not proceed with the flow when we do receive - ENOTSUPP
TBH, I feel we should not call dwc3_setup_phy() if CONFIG_PHY is not enabled. If we look at dwc3_setup_phy() definition, it is under CONFIG_PHY.
Thanks, Siva
Thanks, Siva
so modify error check to handle this -ENOTSUPP.
Signed-off-by: Siva Durga Prasad Paladugu siva.durga.paladugu@xilinx.com --- drivers/usb/dwc3/dwc3-generic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c index 3e6c494..a261d8d 100644 --- a/drivers/usb/dwc3/dwc3-generic.c +++ b/drivers/usb/dwc3/dwc3-generic.c @@ -47,7 +47,7 @@ static int dwc3_generic_peripheral_probe(struct udevice *dev) struct dwc3 *dwc3 = &priv->dwc3;
rc = dwc3_setup_phy(dev, &priv->phys, &priv->num_phys);
- if (rc)
if (rc && rc != -ENOTSUPP) return rc;
dwc3->regs = map_physmem(priv->base, DWC3_OTG_REGS_END,
MAP_NOCACHE);
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80
Email:
lukma@denx.de
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de