All of lore.kernel.org
 help / color / mirror / Atom feed
* [RESEND PATCH] usb: dwc2: Add reset control to dwc2
@ 2016-06-21 19:12 dinguyen
  2016-07-06 16:07 ` Dinh Nguyen
  2016-07-06 16:25 ` Philipp Zabel
  0 siblings, 2 replies; 6+ messages in thread
From: dinguyen @ 2016-06-21 19:12 UTC (permalink / raw)
  To: p.zabel; +Cc: dinh.linux, dinguyen, johnyoun, linux-kernel, Dinh Nguyen

From: Dinh Nguyen <dinguyen@opensource.altera.com>

Allow for platforms that have a reset controller driver in place to bring
the USB IP out of reset.

Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
Acked-by: John Youn <johnyoun@synopsys.com>
Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
Acked-by: Felipe Balbi <felipe.balbi@linux.intel.com>
---
v7: Use devm_reset_control_get_optional()
v6: fix 80 line checkpatch warning in dev_err print
v5: updated error conditions for not finding the reset property
v4: use dev_dbg() if not a -EPROBE_DEFER
v3: fix compile error
v2: move to lowlevel_hw_init()
---
 drivers/usb/dwc2/core.h     |    1 +
 drivers/usb/dwc2/platform.c |   22 ++++++++++++++++++++++
 2 files changed, 23 insertions(+)

diff --git a/drivers/usb/dwc2/core.h b/drivers/usb/dwc2/core.h
index 3c58d63..f748132 100644
--- a/drivers/usb/dwc2/core.h
+++ b/drivers/usb/dwc2/core.h
@@ -837,6 +837,7 @@ struct dwc2_hsotg {
 	void *priv;
 	int     irq;
 	struct clk *clk;
+	struct reset_control *reset;
 
 	unsigned int queuing_high_bandwidth:1;
 	unsigned int srp_success:1;
diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c
index 88629be..d34f169 100644
--- a/drivers/usb/dwc2/platform.c
+++ b/drivers/usb/dwc2/platform.c
@@ -45,6 +45,7 @@
 #include <linux/platform_device.h>
 #include <linux/phy/phy.h>
 #include <linux/platform_data/s3c-hsotg.h>
+#include <linux/reset.h>
 
 #include <linux/usb/of.h>
 
@@ -337,6 +338,24 @@ static int dwc2_lowlevel_hw_init(struct dwc2_hsotg *hsotg)
 {
 	int i, ret;
 
+	hsotg->reset = devm_reset_control_get_optional(hsotg->dev, "dwc2");
+	if (IS_ERR(hsotg->reset)) {
+		ret = PTR_ERR(hsotg->reset);
+		switch (ret) {
+		case -ENOENT:
+		case -ENOTSUPP:
+			hsotg->reset = NULL;
+			break;
+		default:
+			dev_err(hsotg->dev, "error getting reset control %d\n",
+				ret);
+			return ret;
+		}
+	}
+
+	if (hsotg->reset)
+		reset_control_deassert(hsotg->reset);
+
 	/* Set default UTMI width */
 	hsotg->phyif = GUSBCFG_PHYIF16;
 
@@ -434,6 +453,9 @@ static int dwc2_driver_remove(struct platform_device *dev)
 	if (hsotg->ll_hw_enabled)
 		dwc2_lowlevel_hw_disable(hsotg);
 
+	if (hsotg->reset)
+		reset_control_assert(hsotg->reset);
+
 	return 0;
 }
 
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [RESEND PATCH] usb: dwc2: Add reset control to dwc2
  2016-06-21 19:12 [RESEND PATCH] usb: dwc2: Add reset control to dwc2 dinguyen
@ 2016-07-06 16:07 ` Dinh Nguyen
  2016-07-06 16:25 ` Philipp Zabel
  1 sibling, 0 replies; 6+ messages in thread
From: Dinh Nguyen @ 2016-07-06 16:07 UTC (permalink / raw)
  To: p.zabel; +Cc: dinh.linux, dinguyen, johnyoun, linux-kernel

Ping?

Dinh

On 06/21/2016 02:12 PM, dinguyen@opensource.altera.com wrote:
> From: Dinh Nguyen <dinguyen@opensource.altera.com>
> 
> Allow for platforms that have a reset controller driver in place to bring
> the USB IP out of reset.
> 
> Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
> Acked-by: John Youn <johnyoun@synopsys.com>
> Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
> Acked-by: Felipe Balbi <felipe.balbi@linux.intel.com>
> ---
> v7: Use devm_reset_control_get_optional()
> v6: fix 80 line checkpatch warning in dev_err print
> v5: updated error conditions for not finding the reset property
> v4: use dev_dbg() if not a -EPROBE_DEFER
> v3: fix compile error
> v2: move to lowlevel_hw_init()
> ---
>  drivers/usb/dwc2/core.h     |    1 +
>  drivers/usb/dwc2/platform.c |   22 ++++++++++++++++++++++
>  2 files changed, 23 insertions(+)
> 
> diff --git a/drivers/usb/dwc2/core.h b/drivers/usb/dwc2/core.h
> index 3c58d63..f748132 100644
> --- a/drivers/usb/dwc2/core.h
> +++ b/drivers/usb/dwc2/core.h
> @@ -837,6 +837,7 @@ struct dwc2_hsotg {
>  	void *priv;
>  	int     irq;
>  	struct clk *clk;
> +	struct reset_control *reset;
>  
>  	unsigned int queuing_high_bandwidth:1;
>  	unsigned int srp_success:1;
> diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c
> index 88629be..d34f169 100644
> --- a/drivers/usb/dwc2/platform.c
> +++ b/drivers/usb/dwc2/platform.c
> @@ -45,6 +45,7 @@
>  #include <linux/platform_device.h>
>  #include <linux/phy/phy.h>
>  #include <linux/platform_data/s3c-hsotg.h>
> +#include <linux/reset.h>
>  
>  #include <linux/usb/of.h>
>  
> @@ -337,6 +338,24 @@ static int dwc2_lowlevel_hw_init(struct dwc2_hsotg *hsotg)
>  {
>  	int i, ret;
>  
> +	hsotg->reset = devm_reset_control_get_optional(hsotg->dev, "dwc2");
> +	if (IS_ERR(hsotg->reset)) {
> +		ret = PTR_ERR(hsotg->reset);
> +		switch (ret) {
> +		case -ENOENT:
> +		case -ENOTSUPP:
> +			hsotg->reset = NULL;
> +			break;
> +		default:
> +			dev_err(hsotg->dev, "error getting reset control %d\n",
> +				ret);
> +			return ret;
> +		}
> +	}
> +
> +	if (hsotg->reset)
> +		reset_control_deassert(hsotg->reset);
> +
>  	/* Set default UTMI width */
>  	hsotg->phyif = GUSBCFG_PHYIF16;
>  
> @@ -434,6 +453,9 @@ static int dwc2_driver_remove(struct platform_device *dev)
>  	if (hsotg->ll_hw_enabled)
>  		dwc2_lowlevel_hw_disable(hsotg);
>  
> +	if (hsotg->reset)
> +		reset_control_assert(hsotg->reset);
> +
>  	return 0;
>  }
>  
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RESEND PATCH] usb: dwc2: Add reset control to dwc2
  2016-06-21 19:12 [RESEND PATCH] usb: dwc2: Add reset control to dwc2 dinguyen
  2016-07-06 16:07 ` Dinh Nguyen
@ 2016-07-06 16:25 ` Philipp Zabel
  2016-07-06 17:48   ` John Youn
  1 sibling, 1 reply; 6+ messages in thread
From: Philipp Zabel @ 2016-07-06 16:25 UTC (permalink / raw)
  To: dinguyen; +Cc: dinh.linux, dinguyen, johnyoun, linux-kernel

Hi Dinh,

Am Dienstag, den 21.06.2016, 14:12 -0500 schrieb
dinguyen@opensource.altera.com:
> From: Dinh Nguyen <dinguyen@opensource.altera.com>
> 
> Allow for platforms that have a reset controller driver in place to bring
> the USB IP out of reset.
> 
> Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
> Acked-by: John Youn <johnyoun@synopsys.com>
> Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
> Acked-by: Felipe Balbi <felipe.balbi@linux.intel.com>

Acked-by: Philipp Zabel <p.zabel@pengutronix.de>

This is an USB patch. Doesn't John collect patches and send pull
requests? Then you should put Greg Kroah-Hartman and
linux-usb@vger.kernel.org into Cc:. Things get easily lost on
linux-kernel.

regards
Philipp

> ---
> v7: Use devm_reset_control_get_optional()
> v6: fix 80 line checkpatch warning in dev_err print
> v5: updated error conditions for not finding the reset property
> v4: use dev_dbg() if not a -EPROBE_DEFER
> v3: fix compile error
> v2: move to lowlevel_hw_init()
> ---
>  drivers/usb/dwc2/core.h     |    1 +
>  drivers/usb/dwc2/platform.c |   22 ++++++++++++++++++++++
>  2 files changed, 23 insertions(+)
> 
> diff --git a/drivers/usb/dwc2/core.h b/drivers/usb/dwc2/core.h
> index 3c58d63..f748132 100644
> --- a/drivers/usb/dwc2/core.h
> +++ b/drivers/usb/dwc2/core.h
> @@ -837,6 +837,7 @@ struct dwc2_hsotg {
>  	void *priv;
>  	int     irq;
>  	struct clk *clk;
> +	struct reset_control *reset;
>  
>  	unsigned int queuing_high_bandwidth:1;
>  	unsigned int srp_success:1;
> diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c
> index 88629be..d34f169 100644
> --- a/drivers/usb/dwc2/platform.c
> +++ b/drivers/usb/dwc2/platform.c
> @@ -45,6 +45,7 @@
>  #include <linux/platform_device.h>
>  #include <linux/phy/phy.h>
>  #include <linux/platform_data/s3c-hsotg.h>
> +#include <linux/reset.h>
>  
>  #include <linux/usb/of.h>
>  
> @@ -337,6 +338,24 @@ static int dwc2_lowlevel_hw_init(struct dwc2_hsotg *hsotg)
>  {
>  	int i, ret;
>  
> +	hsotg->reset = devm_reset_control_get_optional(hsotg->dev, "dwc2");
> +	if (IS_ERR(hsotg->reset)) {
> +		ret = PTR_ERR(hsotg->reset);
> +		switch (ret) {
> +		case -ENOENT:
> +		case -ENOTSUPP:
> +			hsotg->reset = NULL;
> +			break;
> +		default:
> +			dev_err(hsotg->dev, "error getting reset control %d\n",
> +				ret);
> +			return ret;
> +		}
> +	}
> +
> +	if (hsotg->reset)
> +		reset_control_deassert(hsotg->reset);
> +
>  	/* Set default UTMI width */
>  	hsotg->phyif = GUSBCFG_PHYIF16;
>  
> @@ -434,6 +453,9 @@ static int dwc2_driver_remove(struct platform_device *dev)
>  	if (hsotg->ll_hw_enabled)
>  		dwc2_lowlevel_hw_disable(hsotg);
>  
> +	if (hsotg->reset)
> +		reset_control_assert(hsotg->reset);
> +
>  	return 0;
>  }
>  

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RESEND PATCH] usb: dwc2: Add reset control to dwc2
  2016-07-06 16:25 ` Philipp Zabel
@ 2016-07-06 17:48   ` John Youn
  2016-07-07  9:11     ` Philipp Zabel
  0 siblings, 1 reply; 6+ messages in thread
From: John Youn @ 2016-07-06 17:48 UTC (permalink / raw)
  To: Philipp Zabel, dinguyen; +Cc: dinh.linux, dinguyen, John.Youn, linux-kernel

On 7/6/2016 9:25 AM, Philipp Zabel wrote:
> Hi Dinh,
> 
> Am Dienstag, den 21.06.2016, 14:12 -0500 schrieb
> dinguyen@opensource.altera.com:
>> From: Dinh Nguyen <dinguyen@opensource.altera.com>
>>
>> Allow for platforms that have a reset controller driver in place to bring
>> the USB IP out of reset.
>>
>> Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
>> Acked-by: John Youn <johnyoun@synopsys.com>
>> Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
>> Acked-by: Felipe Balbi <felipe.balbi@linux.intel.com>
> 
> Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
> 
> This is an USB patch. Doesn't John collect patches and send pull
> requests? Then you should put Greg Kroah-Hartman and
> linux-usb@vger.kernel.org into Cc:. Things get easily lost on
> linux-kernel.
> 

Hi Philipp,

Could you take this patch for 4.8 on your reset-next?

Without the following fix from your tree, Dinh's patch will break
several platforms.

http://marc.info/?l=linux-usb&m=146473891018262&w=2

If it's too late we can probably have it go through Felipe's tree
during -rc.

Regards,
John

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RESEND PATCH] usb: dwc2: Add reset control to dwc2
  2016-07-06 17:48   ` John Youn
@ 2016-07-07  9:11     ` Philipp Zabel
  2016-07-07 17:57       ` John Youn
  0 siblings, 1 reply; 6+ messages in thread
From: Philipp Zabel @ 2016-07-07  9:11 UTC (permalink / raw)
  To: John Youn; +Cc: dinguyen, dinh.linux, dinguyen, linux-kernel

Am Mittwoch, den 06.07.2016, 10:48 -0700 schrieb John Youn:
> On 7/6/2016 9:25 AM, Philipp Zabel wrote:
> > Hi Dinh,
> > 
> > Am Dienstag, den 21.06.2016, 14:12 -0500 schrieb
> > dinguyen@opensource.altera.com:
> >> From: Dinh Nguyen <dinguyen@opensource.altera.com>
> >>
> >> Allow for platforms that have a reset controller driver in place to bring
> >> the USB IP out of reset.
> >>
> >> Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
> >> Acked-by: John Youn <johnyoun@synopsys.com>
> >> Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
> >> Acked-by: Felipe Balbi <felipe.balbi@linux.intel.com>
> > 
> > Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
> > 
> > This is an USB patch. Doesn't John collect patches and send pull
> > requests? Then you should put Greg Kroah-Hartman and
> > linux-usb@vger.kernel.org into Cc:. Things get easily lost on
> > linux-kernel.
> > 
> 
> Hi Philipp,
> 
> Could you take this patch for 4.8 on your reset-next?
>
> Without the following fix from your tree, Dinh's patch will break
> several platforms.
> 
> http://marc.info/?l=linux-usb&m=146473891018262&w=2

My apologies, I have completely missed your mail from 21.06.

> If it's too late we can probably have it go through Felipe's tree
> during -rc.

Yes, I got two pull requests merged this round, but the last one
probably was already too late. I'd prefer this patch to go the USB
route.

regards
Philipp

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RESEND PATCH] usb: dwc2: Add reset control to dwc2
  2016-07-07  9:11     ` Philipp Zabel
@ 2016-07-07 17:57       ` John Youn
  0 siblings, 0 replies; 6+ messages in thread
From: John Youn @ 2016-07-07 17:57 UTC (permalink / raw)
  To: Philipp Zabel, John Youn; +Cc: dinguyen, dinh.linux, dinguyen, linux-kernel

On 7/7/2016 2:12 AM, Philipp Zabel wrote:
> Am Mittwoch, den 06.07.2016, 10:48 -0700 schrieb John Youn:
>> On 7/6/2016 9:25 AM, Philipp Zabel wrote:
>>> Hi Dinh,
>>>
>>> Am Dienstag, den 21.06.2016, 14:12 -0500 schrieb
>>> dinguyen@opensource.altera.com:
>>>> From: Dinh Nguyen <dinguyen@opensource.altera.com>
>>>>
>>>> Allow for platforms that have a reset controller driver in place to bring
>>>> the USB IP out of reset.
>>>>
>>>> Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
>>>> Acked-by: John Youn <johnyoun@synopsys.com>
>>>> Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
>>>> Acked-by: Felipe Balbi <felipe.balbi@linux.intel.com>
>>>
>>> Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
>>>
>>> This is an USB patch. Doesn't John collect patches and send pull
>>> requests? Then you should put Greg Kroah-Hartman and
>>> linux-usb@vger.kernel.org into Cc:. Things get easily lost on
>>> linux-kernel.
>>>
>>
>> Hi Philipp,
>>
>> Could you take this patch for 4.8 on your reset-next?
>>
>> Without the following fix from your tree, Dinh's patch will break
>> several platforms.
>>
>> http://marc.info/?l=linux-usb&m=146473891018262&w=2
> 
> My apologies, I have completely missed your mail from 21.06.
> 
>> If it's too late we can probably have it go through Felipe's tree
>> during -rc.
> 
> Yes, I got two pull requests merged this round, but the last one
> probably was already too late. I'd prefer this patch to go the USB
> route.
> 

Sure we'll do that.

Thanks,
John

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-07-07 17:57 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-21 19:12 [RESEND PATCH] usb: dwc2: Add reset control to dwc2 dinguyen
2016-07-06 16:07 ` Dinh Nguyen
2016-07-06 16:25 ` Philipp Zabel
2016-07-06 17:48   ` John Youn
2016-07-07  9:11     ` Philipp Zabel
2016-07-07 17:57       ` John Youn

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.