On Fri, Sep 09, 2011 at 07:17:47PM +0530, Ajay Kumar Gupta wrote:
> Adding ti81xx_musb_phy_power() which will be used by musb driver through
> its function pointer in board_data.
> 
> Signed-off-by: Ajay Kumar Gupta <[email protected]>
> Signed-off-by: Ravi Babu <[email protected]>

this should go through OMAP tree.

> ---
>  arch/arm/mach-omap2/omap_phy_internal.c |   24 +++++++++++++++++++++++
>  arch/arm/plat-omap/include/plat/usb.h   |   32 
> +++++++++++++++++++++++++++++++
>  2 files changed, 56 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/omap_phy_internal.c 
> b/arch/arm/mach-omap2/omap_phy_internal.c
> index 58775e3..d5e8497 100644
> --- a/arch/arm/mach-omap2/omap_phy_internal.c
> +++ b/arch/arm/mach-omap2/omap_phy_internal.c
> @@ -260,3 +260,27 @@ void am35x_set_mode(u8 musb_mode)
>  
>       omap_ctrl_writel(devconf2, AM35XX_CONTROL_DEVCONF2);
>  }
> +
> +void ti81xx_musb_phy_power(u8 on)
> +{
> +     u32 usbphycfg = omap_ctrl_readl(USBCTRL0);
> +
> +     if (on) {
> +             if (cpu_is_ti816x()) {
> +                     usbphycfg |= TI816X_USBPHY0_NORMAL_MODE;
> +                     usbphycfg &= ~TI816X_USBPHY_REFCLK_OSC;
> +             } else if (cpu_is_ti814x()) {
> +                     usbphycfg &= ~(USBPHY_CM_PWRDN | USBPHY_OTG_PWRDN
> +                             | USBPHY_DPINPUT | USBPHY_DMINPUT);
> +                     usbphycfg |= (USBPHY_OTGVDET_EN | USBPHY_OTGSESSEND_EN
> +                             | USBPHY_DPOPBUFCTL | USBPHY_DMOPBUFCTL);
> +             }
> +     } else {
> +             if (cpu_is_ti816x())
> +                     usbphycfg &= ~TI816X_USBPHY0_NORMAL_MODE;
> +             else if (cpu_is_ti814x())
> +                     usbphycfg |= USBPHY_CM_PWRDN | USBPHY_OTG_PWRDN;
> +
> +     }
> +     omap_ctrl_writel(usbphycfg, USBCTRL0);

don't use omap_ctrl_*(). ioremap your memory space.

> diff --git a/arch/arm/plat-omap/include/plat/usb.h 
> b/arch/arm/plat-omap/include/plat/usb.h
> index 17d3c93..c616385 100644
> --- a/arch/arm/plat-omap/include/plat/usb.h
> +++ b/arch/arm/plat-omap/include/plat/usb.h
> @@ -114,6 +114,7 @@ extern void am35x_musb_reset(void);
>  extern void am35x_musb_phy_power(u8 on);
>  extern void am35x_musb_clear_irq(void);
>  extern void am35x_set_mode(u8 musb_mode);
> +extern void ti81xx_musb_phy_power(u8 on);
>  
>  /*
>   * FIXME correct answer depends on hmc_mode,
> @@ -273,6 +274,37 @@ static inline void omap2_usbfs_init(struct 
> omap_usb_config *pdata)
>  #define CONF2_OTGPWRDN               (1 << 2)
>  #define CONF2_DATPOL         (1 << 1)
>  
> +/* TI81XX specific definitions */
> +#define USBCTRL0     0x620
> +#define USBSTAT0     0x624
> +
> +/* TI816X PHY controls bits */
> +#define TI816X_USBPHY0_NORMAL_MODE   (1 << 0)
> +#define TI816X_USBPHY_REFCLK_OSC     (1 << 8)
> +
> +/* TI814X PHY controls bits */
> +#define USBPHY_CM_PWRDN              (1 << 0)
> +#define USBPHY_OTG_PWRDN     (1 << 1)
> +#define USBPHY_CHGDET_DIS    (1 << 2)
> +#define USBPHY_CHGDET_RSTRT  (1 << 3)
> +#define USBPHY_SRCONDM               (1 << 4)
> +#define USBPHY_SINKONDP              (1 << 5)
> +#define USBPHY_CHGISINK_EN   (1 << 6)
> +#define USBPHY_CHGVSRC_EN    (1 << 7)
> +#define USBPHY_DMPULLUP              (1 << 8)
> +#define USBPHY_DPPULLUP              (1 << 9)
> +#define USBPHY_CDET_EXTCTL   (1 << 10)
> +#define USBPHY_GPIO_MODE     (1 << 12)
> +#define USBPHY_DPOPBUFCTL    (1 << 13)
> +#define USBPHY_DMOPBUFCTL    (1 << 14)
> +#define USBPHY_DPINPUT               (1 << 15)
> +#define USBPHY_DMINPUT               (1 << 16)
> +#define USBPHY_DPGPIO_PD     (1 << 17)
> +#define USBPHY_DMGPIO_PD     (1 << 18)
> +#define USBPHY_OTGVDET_EN    (1 << 19)
> +#define USBPHY_OTGSESSEND_EN (1 << 20)
> +#define USBPHY_DATA_POLARITY (1 << 23)
> +
>  #if defined(CONFIG_ARCH_OMAP1) && defined(CONFIG_USB)
>  u32 omap1_usb0_init(unsigned nwires, unsigned is_device);
>  u32 omap1_usb1_init(unsigned nwires);
> -- 
> 1.6.2.4
> 

-- 
balbi

Attachment: signature.asc
Description: Digital signature

Reply via email to