On Fri, Dec 27, 2013 at 10:38:40AM +0800, Peter Chen wrote:
> We need this to keep PHY's power on or off during the system
> suspend mode. If we need to enable USB wakeup, then we
> must keep PHY's power being on during the system suspend mode.
> Otherwise, we need to keep PHY's power being off to save power.
> 
> Signed-off-by: Peter Chen <peter.c...@freescale.com>
> ---
>  drivers/usb/phy/phy-mxs-usb.c |   61 
> +++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 61 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/usb/phy/phy-mxs-usb.c b/drivers/usb/phy/phy-mxs-usb.c
> index 96aac05..53b8dad 100644
> --- a/drivers/usb/phy/phy-mxs-usb.c
> +++ b/drivers/usb/phy/phy-mxs-usb.c
> @@ -57,6 +57,10 @@
>  #define BM_USBPHY_DEBUG_CLKGATE                      BIT(30)
>  
>  /* Anatop Registers */
> +#define ANADIG_ANA_MISC0                     0x150
> +#define ANADIG_ANA_MISC0_SET                 0x154
> +#define ANADIG_ANA_MISC0_CLR                 0x158
> +
>  #define ANADIG_USB1_VBUS_DET_STAT            0x1c0
>  #define ANADIG_USB2_VBUS_DET_STAT            0x220
>  
> @@ -65,6 +69,9 @@
>  #define ANADIG_USB2_LOOPBACK_SET             0x244
>  #define ANADIG_USB2_LOOPBACK_CLR             0x248
>  
> +#define BM_ANADIG_ANA_MISC0_STOP_MODE_CONFIG BIT(12)
> +#define BM_ANADIG_ANA_MISC0_STOP_MODE_CONFIG_SL BIT(11)
> +
>  #define BM_ANADIG_USB1_VBUS_DET_STAT_VBUS_VALID      BIT(3)
>  #define BM_ANADIG_USB2_VBUS_DET_STAT_VBUS_VALID      BIT(3)
>  
> @@ -134,6 +141,16 @@ struct mxs_phy {
>       int port_id;
>  };
>  
> +static inline bool is_imx6q_phy(struct mxs_phy *mxs_phy)
> +{
> +     return mxs_phy->data == &imx6q_phy_data;
> +}
> +
> +static inline bool is_imx6sl_phy(struct mxs_phy *mxs_phy)
> +{
> +     return mxs_phy->data == &imx6sl_phy_data;
> +}
> +
>  static int mxs_phy_hw_init(struct mxs_phy *mxs_phy)
>  {
>       int ret;
> @@ -382,6 +399,8 @@ static int mxs_phy_probe(struct platform_device *pdev)
>  
>       platform_set_drvdata(pdev, mxs_phy);
>  
> +     device_set_wakeup_capable(&pdev->dev, true);
> +
>       ret = usb_add_phy_dev(&mxs_phy->phy);
>       if (ret)
>               return ret;
> @@ -398,6 +417,47 @@ static int mxs_phy_remove(struct platform_device *pdev)
>       return 0;
>  }
>  
> +#ifdef CONFIG_PM_SLEEP

please use CONFIG_PM instead.

-- 
balbi

Attachment: signature.asc
Description: Digital signature

Reply via email to