[PATCH v2 3/3] DA830 EVM: MUSB platform code

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[PATCH v2 3/3] DA830 EVM: MUSB platform code

Kevin Hilman
Sergei Shtylyov <[hidden email]> writes:

> Properly set up the OTG mode thru the CFGCHIP2 register, enable the
> USB0_DRVVBUS pin, and finally register the MUSB platform device.
>
> Signed-off-by: Sergei Shtylyov <[hidden email]>

Thanks, applying to davinci-next.

Kevin

> ---
> The patch is against the recent DaVinci tree.  Tested on DA830 EVM.
>
> Changes from the previous version:
> - made apply in the updated context...
>
>  arch/arm/mach-davinci/board-da830-evm.c |   29 +++++++++++++++++++++++++++++
>  1 files changed, 29 insertions(+)
>
> Index: linux-davinci/arch/arm/mach-davinci/board-da830-evm.c
> ===================================================================
> --- linux-davinci.orig/arch/arm/mach-davinci/board-da830-evm.c
> +++ linux-davinci/arch/arm/mach-davinci/board-da830-evm.c
> @@ -178,8 +178,37 @@ static __init void da830_evm_usb_init(vo
>   cfgchip2 &= ~CFGCHIP2_USB1PHYCLKMUX;
>   cfgchip2 |=  CFGCHIP2_USB2PHYCLKMUX;
>  
> + /*
> + * We have to override VBUS/ID signals when MUSB is configured into the
> + * host-only mode -- ID pin will float if no cable is connected, so the
> + * controller won't be able to drive VBUS thinking that it's a B-device.
> + * Otherwise, we want to use the OTG mode and enable VBUS comparators.
> + */
> + cfgchip2 &= ~CFGCHIP2_OTGMODE;
> +#ifdef CONFIG_USB_MUSB_HOST
> + cfgchip2 |=  CFGCHIP2_FORCE_HOST;
> +#else
> + cfgchip2 |=  CFGCHIP2_SESENDEN | CFGCHIP2_VBDTCTEN;
> +#endif
> +
>   __raw_writel(cfgchip2, DA8XX_SYSCFG_VIRT(DA8XX_CFGCHIP2_REG));
>  
> + /* USB_REFCLKIN is not used. */
> + ret = davinci_cfg_reg(DA830_USB0_DRVVBUS);
> + if (ret)
> + pr_warning("%s: USB 2.0 PinMux setup failed: %d\n",
> +   __func__, ret);
> + else {
> + /*
> + * TPS2065 switch @ 5V supplies 1 A (sustains 1.5 A),
> + * with the power on to power good time of 3 ms.
> + */
> + ret = da8xx_register_usb20(1000, 3);
> + if (ret)
> + pr_warning("%s: USB 2.0 registration failed: %d\n",
> +   __func__, ret);
> + }
> +
>   ret = da8xx_pinmux_setup(da830_evm_usb11_pins);
>   if (ret) {
>   pr_warning("%s: USB 1.1 PinMux setup failed: %d\n",
>
>
> _______________________________________________
> Davinci-linux-open-source mailing list
> [hidden email]
> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source