Re: [PATCH] ehci_fsl update for MPC831x support

David Brownell <[email protected]>
Newsgroups gmane.linux.usb.devel
Message-ID <[email protected]>
On Wednesday 09 May 2007, Li Yang wrote:
> For MPC831x support, change the ehci-fsl driver to preserve
> bits set in platform code.  Add a common CONFIG_USB_EHCI_FSL
> to indicate presence of Freescale EHCI SOC.  Add FSL_USB2_DR_OTG
> operating mode support, thus both host and device can work for the
> mini-ab receptacle.  Note: this doesn't enable OTG protocol
> support.
> 
> Signed-off-by: Li Yang <[email protected]>

Looks pretty much OK, but see below.


> ---
>  drivers/usb/host/Kconfig    |    6 ++++++
>  drivers/usb/host/ehci-fsl.c |   10 +++++++---
>  drivers/usb/host/ehci-hcd.c |    2 +-
>  3 files changed, 14 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
> index 6271187..8da3185 100644
> --- a/drivers/usb/host/Kconfig
> +++ b/drivers/usb/host/Kconfig
> @@ -72,6 +72,12 @@ config USB_EHCI_BIG_ENDIAN_MMIO
>  	depends on USB_EHCI_HCD
>  	default n
>  
> +config USB_EHCI_FSL
> +	bool
> +	default n
> +	---help---
> +	  Variation of ARC USB block used in some Freescale chips.

So does that mean a "select USB_EHCI_ROOT_HUB_TT" is missing?
Or is that part of the variation?

And:  who sets USB_EHCI_FSL?  Shouldn't there be a
"default y if MPC831x || MPC834x" etc?


> +
>  config USB_ISP116X_HCD
>  	tristate "ISP116X HCD support"
>  	depends on USB
> diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
> index a524805..e802a13 100644
> --- a/drivers/usb/host/ehci-fsl.c
> +++ b/drivers/usb/host/ehci-fsl.c
> @@ -67,7 +67,8 @@ int usb_hcd_fsl_probe(const struct hc_driver *driver,
>  	 * in host mode.
>  	 */
>  	if (!((pdata->operating_mode == FSL_USB2_DR_HOST) ||
> -	      (pdata->operating_mode == FSL_USB2_MPH_HOST))) {
> +	      (pdata->operating_mode == FSL_USB2_MPH_HOST) ||
> +	      (pdata->operating_mode == FSL_USB2_DR_OTG))) {
>  		dev_err(&pdev->dev,
>  			"Non Host Mode configured for %s. Wrong driver linked.\n",
>  			pdev->dev.bus_id);
> @@ -185,15 +186,18 @@ static void mpc83xx_usb_setup(struct usb_hcd *hcd)
>  	struct ehci_hcd *ehci = hcd_to_ehci(hcd);
>  	struct fsl_usb2_platform_data *pdata;
>  	void __iomem *non_ehci = hcd->regs;
> +	u32 temp;
>  
>  	pdata =
>  	    (struct fsl_usb2_platform_data *)hcd->self.controller->
>  	    platform_data;
>  	/* Enable PHY interface in the control reg. */
> -	out_be32(non_ehci + FSL_SOC_USB_CTRL, 0x00000004);
> +	temp = in_be32(non_ehci + FSL_SOC_USB_CTRL);
> +	out_be32(non_ehci + FSL_SOC_USB_CTRL, temp | 0x00000004);
>  	out_be32(non_ehci + FSL_SOC_USB_SNOOP1, 0x0000001b);
>  
> -	if (pdata->operating_mode == FSL_USB2_DR_HOST)
> +	if ((pdata->operating_mode == FSL_USB2_DR_HOST) ||
> +			(pdata->operating_mode == FSL_USB2_DR_OTG))
>  		mpc83xx_setup_phy(ehci, pdata->phy_mode, 0);
>  
>  	if (pdata->operating_mode == FSL_USB2_MPH_HOST) {
> diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
> index c7458f7..cc27a87 100644
> --- a/drivers/usb/host/ehci-hcd.c
> +++ b/drivers/usb/host/ehci-hcd.c
> @@ -926,7 +926,7 @@ MODULE_LICENSE ("GPL");
>  #define	PCI_DRIVER		ehci_pci_driver
>  #endif
>  
> -#ifdef CONFIG_MPC834x
> +#ifdef CONFIG_USB_EHCI_FSL
>  #include "ehci-fsl.c"
>  #define	PLATFORM_DRIVER		ehci_fsl_driver
>  #endif
> 



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.