All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kishon Vijay Abraham I <kishon@ti.com>
To: George Cherian <george.cherian@ti.com>
Cc: linux-usb@vger.kernel.org, balbi@ti.com,
	linux-kernel@vger.kernel.org, gregkh@linuxfoundation.org,
	linux-omap@vger.kernel.org, bigeasy@linutronix.de
Subject: Re: [PATCH v2 1/4] usb: phy: phy-omap-control: Add API to power and wakeup
Date: Fri, 19 Jul 2013 18:50:44 +0530	[thread overview]
Message-ID: <51E93D2C.1090202@ti.com> (raw)
In-Reply-To: <1374237277-17769-2-git-send-email-george.cherian@ti.com>

Hi,

On Friday 19 July 2013 06:04 PM, George Cherian wrote:
> on/off USB PHY for AM335X
> 
> Add APIs to
> 	-power on/off USB PHY for AM335X
> 	-enable/disable PHY wakeup.
> 
> This API will be called from phy-amxxxx-usb driver.
> 
> Signed-off-by: George Cherian <george.cherian@ti.com>
> ---
>  drivers/usb/phy/phy-omap-control.c   | 67 ++++++++++++++++++++++++++++++++++++
>  include/linux/usb/omap_control_usb.h | 24 +++++++++++++
>  2 files changed, 91 insertions(+)
> 
> diff --git a/drivers/usb/phy/phy-omap-control.c b/drivers/usb/phy/phy-omap-control.c
> index 1419ced..4f2502c 100644
> --- a/drivers/usb/phy/phy-omap-control.c
> +++ b/drivers/usb/phy/phy-omap-control.c
> @@ -46,6 +46,73 @@ struct device *omap_get_control_dev(void)
>  EXPORT_SYMBOL_GPL(omap_get_control_dev);
>  
>  /**
> + * omap_control_am335x_phy_wkup - PHY wakeup on/off  using control
> + *	module
> + * @dev: the control module device
> + * @on: 0 to off and 1 to on PHY wakeup feature

%s/off/disable %s/on/enable
> + * @id: phy id 0 or 1 for phy instance 0 and 1 repectively
> + *
> + * AMXXXX PHY driver should call this API to enable or disable PHY wakeup.
> + */
> +void omap_control_am335x_phy_wkup(struct device *dev, bool on, u8 id)
> +{
> +	u32 val;
> +	u32 *phy_wkup_reg;
> +	struct omap_control_usb	*control_usb = dev_get_drvdata(dev);
> +
> +	if (control_usb->type != OMAP_CTRL_DEV_TYPE3 || id < 0 || id > 1)
> +		return;
> +
> +	phy_wkup_reg = control_usb->dev_conf + AM335X_USB_WKUP_OFFSET;
> +	val = readl(phy_wkup_reg);
> +
> +	if (on)
> +		val |= id ? AM335X_USB1_WKUP_CTRL_ENABLE :
> +				AM335X_USB0_WKUP_CTRL_ENABLE;
> +	 else
> +		val &= id ? ~AM335X_USB1_WKUP_CTRL_ENABLE :
> +				~AM335X_USB0_WKUP_CTRL_ENABLE;
> +
> +

You really need two blank spaces here?
> +	writel(val, phy_wkup_reg);
> +}
> +EXPORT_SYMBOL_GPL(omap_control_am335x_phy_wkup);
> +
> +/**
> + * omap_control_am335x_phy_power - power on/off the serializer using control
> + *	module
> + * @dev: the control module device
> + * @on: 0 to off and 1 to on based on powering on or off the PHY
> + * @id: phy id 0 or 1 for phy instance 0 and 1 repectively
> + *
> + * AMXXXX PHY driver should call this API to power on or off the PHY.
> + */
> +void omap_control_am335x_phy_power(struct device *dev, bool on, u8 id)
> +{
> +	u32 val;
> +	u32 *phy_pwr_reg;
> +	struct omap_control_usb	*control_usb = dev_get_drvdata(dev);
> +
> +	if (control_usb->type != OMAP_CTRL_DEV_TYPE3 || id < 0 || id > 1)
> +		return;
> +
> +	phy_pwr_reg = GET_PHY_POWER_REG(control_usb->dev_conf, id);
> +	val = readl(phy_pwr_reg);
> +
> +	if (on) {
> +		val &= ~(AM335X_USBPHY_CM_PWRDN | AM335X_USBPHY_OTG_PWRDN);
> +		val |= AM335X_USBPHY_OTGVDET_EN |
> +			AM335X_USBPHY_OTGSESSEND_EN;
> +	} else
> +		val |= AM335X_USBPHY_CM_PWRDN | AM335X_USBPHY_OTG_PWRDN;
> +
> +
ditto.
> +	writel(val, phy_pwr_reg);
> +}
> +EXPORT_SYMBOL_GPL(omap_control_am335x_phy_power);
> +
> +
ditto.
> +/**
>   * omap_control_usb3_phy_power - power on/off the serializer using control
>   *	module
>   * @dev: the control module device
> diff --git a/include/linux/usb/omap_control_usb.h b/include/linux/usb/omap_control_usb.h
> index 27b5b8c..a92b417 100644
> --- a/include/linux/usb/omap_control_usb.h
> +++ b/include/linux/usb/omap_control_usb.h
> @@ -45,6 +45,7 @@ enum omap_control_usb_mode {
>  /* To differentiate ctrl module IP having either mailbox or USB3 PHY power */
>  #define	OMAP_CTRL_DEV_TYPE1		0x1
>  #define	OMAP_CTRL_DEV_TYPE2		0x2
> +#define	OMAP_CTRL_DEV_TYPE3		0x3
>  
>  #define	OMAP_CTRL_DEV_PHY_PD		BIT(0)
>  
> @@ -63,10 +64,23 @@ enum omap_control_usb_mode {
>  #define	OMAP_CTRL_USB3_PHY_TX_RX_POWERON	0x3
>  #define	OMAP_CTRL_USB3_PHY_TX_RX_POWEROFF	0x0
>  
> +#define GET_PHY_POWER_REG(base, id)	((u32 *)base + (id * 2))

how about
#define GET_PHY_POWER_REG(base, id)	((u32 *)(base) + ((id) * 2))
> +#define AM335X_USBPHY_CM_PWRDN		(1 << 0)
> +#define AM335X_USBPHY_OTG_PWRDN		(1 << 1)
> +#define AM335X_USBPHY_OTGVDET_EN		(1 << 19)
> +#define AM335X_USBPHY_OTGSESSEND_EN	(1 << 20)
> +#define AM335X_USB_WKUP_OFFSET		0xA
> +#define AM335X_USB0_WKUP_CTRL_ENABLE	(1 << 0)
> +#define AM335X_USB1_WKUP_CTRL_ENABLE	(1 << 8)
> +
> +
> +

too many blank lines...

Thanks
Kishon

WARNING: multiple messages have this Message-ID (diff)
From: Kishon Vijay Abraham I <kishon@ti.com>
To: George Cherian <george.cherian@ti.com>
Cc: <linux-usb@vger.kernel.org>, <balbi@ti.com>,
	<linux-kernel@vger.kernel.org>, <gregkh@linuxfoundation.org>,
	<linux-omap@vger.kernel.org>, <bigeasy@linutronix.de>
Subject: Re: [PATCH v2 1/4] usb: phy: phy-omap-control: Add API to power and wakeup
Date: Fri, 19 Jul 2013 18:50:44 +0530	[thread overview]
Message-ID: <51E93D2C.1090202@ti.com> (raw)
In-Reply-To: <1374237277-17769-2-git-send-email-george.cherian@ti.com>

Hi,

On Friday 19 July 2013 06:04 PM, George Cherian wrote:
> on/off USB PHY for AM335X
> 
> Add APIs to
> 	-power on/off USB PHY for AM335X
> 	-enable/disable PHY wakeup.
> 
> This API will be called from phy-amxxxx-usb driver.
> 
> Signed-off-by: George Cherian <george.cherian@ti.com>
> ---
>  drivers/usb/phy/phy-omap-control.c   | 67 ++++++++++++++++++++++++++++++++++++
>  include/linux/usb/omap_control_usb.h | 24 +++++++++++++
>  2 files changed, 91 insertions(+)
> 
> diff --git a/drivers/usb/phy/phy-omap-control.c b/drivers/usb/phy/phy-omap-control.c
> index 1419ced..4f2502c 100644
> --- a/drivers/usb/phy/phy-omap-control.c
> +++ b/drivers/usb/phy/phy-omap-control.c
> @@ -46,6 +46,73 @@ struct device *omap_get_control_dev(void)
>  EXPORT_SYMBOL_GPL(omap_get_control_dev);
>  
>  /**
> + * omap_control_am335x_phy_wkup - PHY wakeup on/off  using control
> + *	module
> + * @dev: the control module device
> + * @on: 0 to off and 1 to on PHY wakeup feature

%s/off/disable %s/on/enable
> + * @id: phy id 0 or 1 for phy instance 0 and 1 repectively
> + *
> + * AMXXXX PHY driver should call this API to enable or disable PHY wakeup.
> + */
> +void omap_control_am335x_phy_wkup(struct device *dev, bool on, u8 id)
> +{
> +	u32 val;
> +	u32 *phy_wkup_reg;
> +	struct omap_control_usb	*control_usb = dev_get_drvdata(dev);
> +
> +	if (control_usb->type != OMAP_CTRL_DEV_TYPE3 || id < 0 || id > 1)
> +		return;
> +
> +	phy_wkup_reg = control_usb->dev_conf + AM335X_USB_WKUP_OFFSET;
> +	val = readl(phy_wkup_reg);
> +
> +	if (on)
> +		val |= id ? AM335X_USB1_WKUP_CTRL_ENABLE :
> +				AM335X_USB0_WKUP_CTRL_ENABLE;
> +	 else
> +		val &= id ? ~AM335X_USB1_WKUP_CTRL_ENABLE :
> +				~AM335X_USB0_WKUP_CTRL_ENABLE;
> +
> +

You really need two blank spaces here?
> +	writel(val, phy_wkup_reg);
> +}
> +EXPORT_SYMBOL_GPL(omap_control_am335x_phy_wkup);
> +
> +/**
> + * omap_control_am335x_phy_power - power on/off the serializer using control
> + *	module
> + * @dev: the control module device
> + * @on: 0 to off and 1 to on based on powering on or off the PHY
> + * @id: phy id 0 or 1 for phy instance 0 and 1 repectively
> + *
> + * AMXXXX PHY driver should call this API to power on or off the PHY.
> + */
> +void omap_control_am335x_phy_power(struct device *dev, bool on, u8 id)
> +{
> +	u32 val;
> +	u32 *phy_pwr_reg;
> +	struct omap_control_usb	*control_usb = dev_get_drvdata(dev);
> +
> +	if (control_usb->type != OMAP_CTRL_DEV_TYPE3 || id < 0 || id > 1)
> +		return;
> +
> +	phy_pwr_reg = GET_PHY_POWER_REG(control_usb->dev_conf, id);
> +	val = readl(phy_pwr_reg);
> +
> +	if (on) {
> +		val &= ~(AM335X_USBPHY_CM_PWRDN | AM335X_USBPHY_OTG_PWRDN);
> +		val |= AM335X_USBPHY_OTGVDET_EN |
> +			AM335X_USBPHY_OTGSESSEND_EN;
> +	} else
> +		val |= AM335X_USBPHY_CM_PWRDN | AM335X_USBPHY_OTG_PWRDN;
> +
> +
ditto.
> +	writel(val, phy_pwr_reg);
> +}
> +EXPORT_SYMBOL_GPL(omap_control_am335x_phy_power);
> +
> +
ditto.
> +/**
>   * omap_control_usb3_phy_power - power on/off the serializer using control
>   *	module
>   * @dev: the control module device
> diff --git a/include/linux/usb/omap_control_usb.h b/include/linux/usb/omap_control_usb.h
> index 27b5b8c..a92b417 100644
> --- a/include/linux/usb/omap_control_usb.h
> +++ b/include/linux/usb/omap_control_usb.h
> @@ -45,6 +45,7 @@ enum omap_control_usb_mode {
>  /* To differentiate ctrl module IP having either mailbox or USB3 PHY power */
>  #define	OMAP_CTRL_DEV_TYPE1		0x1
>  #define	OMAP_CTRL_DEV_TYPE2		0x2
> +#define	OMAP_CTRL_DEV_TYPE3		0x3
>  
>  #define	OMAP_CTRL_DEV_PHY_PD		BIT(0)
>  
> @@ -63,10 +64,23 @@ enum omap_control_usb_mode {
>  #define	OMAP_CTRL_USB3_PHY_TX_RX_POWERON	0x3
>  #define	OMAP_CTRL_USB3_PHY_TX_RX_POWEROFF	0x0
>  
> +#define GET_PHY_POWER_REG(base, id)	((u32 *)base + (id * 2))

how about
#define GET_PHY_POWER_REG(base, id)	((u32 *)(base) + ((id) * 2))
> +#define AM335X_USBPHY_CM_PWRDN		(1 << 0)
> +#define AM335X_USBPHY_OTG_PWRDN		(1 << 1)
> +#define AM335X_USBPHY_OTGVDET_EN		(1 << 19)
> +#define AM335X_USBPHY_OTGSESSEND_EN	(1 << 20)
> +#define AM335X_USB_WKUP_OFFSET		0xA
> +#define AM335X_USB0_WKUP_CTRL_ENABLE	(1 << 0)
> +#define AM335X_USB1_WKUP_CTRL_ENABLE	(1 << 8)
> +
> +
> +

too many blank lines...

Thanks
Kishon

  reply	other threads:[~2013-07-19 13:20 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-19 12:34 [PATCH v2 0/4] Add phy support for AM335X platform using Generic PHy framework George Cherian
2013-07-19 12:34 ` George Cherian
2013-07-19 12:34 ` [PATCH v2 1/4] usb: phy: phy-omap-control: Add API to power and wakeup George Cherian
2013-07-19 12:34   ` George Cherian
2013-07-19 13:20   ` Kishon Vijay Abraham I [this message]
2013-07-19 13:20     ` Kishon Vijay Abraham I
2013-07-29 14:25   ` Sebastian Andrzej Siewior
2013-07-30  4:53     ` George Cherian
2013-07-30  4:53       ` George Cherian
2013-07-30  7:35       ` Sebastian Andrzej Siewior
2013-07-19 12:34 ` [PATCH v2 2/4] phy: phy-amxxxx-usb: Add PHY driver for amxxxx platform George Cherian
2013-07-19 12:34   ` George Cherian
2013-07-19 13:32   ` Kishon Vijay Abraham I
2013-07-19 13:32     ` Kishon Vijay Abraham I
2013-07-29 15:17   ` Sebastian Andrzej Siewior
2013-07-30  5:19     ` George Cherian
2013-07-30  5:19       ` George Cherian
2013-07-30  8:53       ` Sebastian Andrzej Siewior
2013-07-30 14:24         ` George Cherian
2013-07-30 14:24           ` George Cherian
2013-07-30 14:33           ` Felipe Balbi
2013-07-30 14:33             ` Felipe Balbi
2013-07-30 14:39             ` Sebastian Andrzej Siewior
2013-07-19 12:34 ` [PATCH v2 3/4] arm: dts: Add USB phy nodes for AM33XX George Cherian
2013-07-19 12:34   ` George Cherian
2013-07-19 13:34   ` Kishon Vijay Abraham I
2013-07-19 13:34     ` Kishon Vijay Abraham I
2013-07-19 13:56   ` Sergei Shtylyov
2013-07-19 14:20     ` Sebastian Andrzej Siewior
2013-07-19 18:33       ` Sergei Shtylyov
2013-07-19 18:42         ` Sebastian Andrzej Siewior
2013-07-20  3:41           ` George Cherian
2013-07-20  3:41             ` George Cherian
2013-07-22  5:45             ` George Cherian
2013-07-22  5:45               ` George Cherian
2013-07-20  3:36         ` George Cherian
2013-07-20  3:36           ` George Cherian
2013-07-19 12:34 ` [PATCH v2 4/4] usb: musb: dsps: Remove the phy control from glue and add phy driver APIs George Cherian
2013-07-19 12:34   ` George Cherian
2013-07-19 13:44   ` Kishon Vijay Abraham I
2013-07-19 13:44     ` Kishon Vijay Abraham I
2013-07-19 13:17 ` [PATCH v2 0/4] Add phy support for AM335X platform using Generic PHy framework Kishon Vijay Abraham I
2013-07-19 13:17   ` Kishon Vijay Abraham I
2013-08-10 11:59 ` Ezequiel Garcia
2013-08-14 10:36   ` Sebastian Andrzej Siewior

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51E93D2C.1090202@ti.com \
    --to=kishon@ti.com \
    --cc=balbi@ti.com \
    --cc=bigeasy@linutronix.de \
    --cc=george.cherian@ti.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.