From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Fri, 7 Nov 2014 12:09:06 +0100 Subject: [U-Boot] [PATCH v3 1/3] usb:ehci-mx6 add board_usb_phy_mode function In-Reply-To: <545CA702.6090301@freescale.com> References: <1415322494-20415-1-git-send-email-Peng.Fan@freescale.com> <201411070925.14856.marex@denx.de> <545CA702.6090301@freescale.com> Message-ID: <201411071209.06824.marex@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Friday, November 07, 2014 at 12:03:30 PM, Peng Fan wrote: [...] > >> @@ -160,7 +174,7 @@ static int usb_phy_enable(int index, struct usb_ehci > >> *ehci) val |= (USBPHY_CTRL_ENUTMILEVEL2 | USBPHY_CTRL_ENUTMILEVEL3); > >> > >> __raw_writel(val, phy_ctrl); > >> > >> - return val & USBPHY_CTRL_OTG_ID; > >> + return board_usb_phy_mode(index); > > > > This should be called from ehci_hcd_init() right after usb_phy_enable(). > > Afterall, the mode detection has nothing to do with the PHY enabling. > > This back to what I did in patch v2. right after usb_phy_enable(), just > paste that piece of code here: > > The weak function: > +int __weak board_ehci_usb_mode(int index, enum usb_init_type *type) > +{ > + return 0; > +} > + > > type = usb_phy_enable(index, ehci) ? USB_INIT_DEVICE : > USB_INIT_HOST; > > + board_usb_phy_mode(index, &type); > + The usb_phy_enable() should not return the PHY mode at all though. It should be the board_usb_phy_mode() which adjusts the PHY type. The usb_phy_enable() should return just a success/failure return value. > What need to do is to let board can modify the `type` like following: > +int board_usb_phy_mode(int port, enum usb_init_type *type) > +{ > + if (port == 1) > + /* port1 works in HOST Mode */ > + *type = USB_INIT_HOST; > + > + return 0; > +} > + > This is the way that I did in patch v2. If this is fine, I'll resent > this patch set. It should really explicitly set it, not modify it, see above. [...]