linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] USB: host: ehci-atmel: Enable HSIC port on SAMA5D2
@ 2021-09-10 16:38 cristian.birsan
  2021-09-10 16:38 ` [PATCH 1/2] dt-bindings: usb: atmel: add USB PHY type property cristian.birsan
  2021-09-10 16:38 ` [PATCH 2/2] USB: host: ehci-atmel: Add support for HSIC phy cristian.birsan
  0 siblings, 2 replies; 7+ messages in thread
From: cristian.birsan @ 2021-09-10 16:38 UTC (permalink / raw)
  To: stern, gregkh, nicolas.ferre, ada, alexandre.belloni, ludovic.desroches
  Cc: linux-usb, linux-arm-kernel, linux-kernel, Cristian Birsan

From: Cristian Birsan <cristian.birsan@microchip.com>

On SAMA5D2 SoCs, Port C of USB Host contains a High-Speed Inter-Chip (HSIC)
transceiver. It can be used for USB chip-to-chip interconnect with a 2-signal
(strobe, data) synchronous serial interface using 240 MHz DDR signaling.

External cables, connectors, and hot plug & play are not supported.

This patch series enables this feature.

Cristian Birsan (2):
  dt-bindings: usb: atmel: add USB PHY type property
  USB: host: ehci-atmel: Add support for HSIC phy

 Documentation/devicetree/bindings/usb/atmel-usb.txt | 4 ++++
 drivers/usb/host/ehci-atmel.c                       | 8 ++++++++
 2 files changed, 12 insertions(+)

-- 
2.25.1


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

* [PATCH 1/2] dt-bindings: usb: atmel: add USB PHY type property
  2021-09-10 16:38 [PATCH 0/2] USB: host: ehci-atmel: Enable HSIC port on SAMA5D2 cristian.birsan
@ 2021-09-10 16:38 ` cristian.birsan
  2021-09-10 19:07   ` Sergei Shtylyov
  2021-09-10 16:38 ` [PATCH 2/2] USB: host: ehci-atmel: Add support for HSIC phy cristian.birsan
  1 sibling, 1 reply; 7+ messages in thread
From: cristian.birsan @ 2021-09-10 16:38 UTC (permalink / raw)
  To: stern, gregkh, nicolas.ferre, ada, alexandre.belloni, ludovic.desroches
  Cc: linux-usb, linux-arm-kernel, linux-kernel, Cristian Birsan

From: Cristian Birsan <cristian.birsan@microchip.com>

Add USB PHY type property for controllers with HSIC support.

Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
---
 Documentation/devicetree/bindings/usb/atmel-usb.txt | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/atmel-usb.txt b/Documentation/devicetree/bindings/usb/atmel-usb.txt
index a4002624ba14..f512f0290728 100644
--- a/Documentation/devicetree/bindings/usb/atmel-usb.txt
+++ b/Documentation/devicetree/bindings/usb/atmel-usb.txt
@@ -39,6 +39,10 @@ Required properties:
 		"ehci_clk" for the peripheral clock
 		"usb_clk" for the UTMI clock
 
+Optional properties:
+ - phy_type : For multi port host USB controllers, should be one of
+   "utmi", or "hsic".
+
 usb1: ehci@800000 {
 	compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
 	reg = <0x00800000 0x100000>;
-- 
2.25.1


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

* [PATCH 2/2] USB: host: ehci-atmel: Add support for HSIC phy
  2021-09-10 16:38 [PATCH 0/2] USB: host: ehci-atmel: Enable HSIC port on SAMA5D2 cristian.birsan
  2021-09-10 16:38 ` [PATCH 1/2] dt-bindings: usb: atmel: add USB PHY type property cristian.birsan
@ 2021-09-10 16:38 ` cristian.birsan
  2021-09-10 20:49   ` Alan Stern
  2021-09-13 11:39   ` Alexander Dahl
  1 sibling, 2 replies; 7+ messages in thread
From: cristian.birsan @ 2021-09-10 16:38 UTC (permalink / raw)
  To: stern, gregkh, nicolas.ferre, ada, alexandre.belloni, ludovic.desroches
  Cc: linux-usb, linux-arm-kernel, linux-kernel, Cristian Birsan

From: Cristian Birsan <cristian.birsan@microchip.com>

Add support for USB Host High Speed Port HSIC phy.

Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
---
 drivers/usb/host/ehci-atmel.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/usb/host/ehci-atmel.c b/drivers/usb/host/ehci-atmel.c
index e893467d659c..05d41fd65f25 100644
--- a/drivers/usb/host/ehci-atmel.c
+++ b/drivers/usb/host/ehci-atmel.c
@@ -18,6 +18,8 @@
 #include <linux/platform_device.h>
 #include <linux/usb.h>
 #include <linux/usb/hcd.h>
+#include <linux/usb/phy.h>
+#include <linux/usb/of.h>
 
 #include "ehci.h"
 
@@ -25,6 +27,9 @@
 
 static const char hcd_name[] = "ehci-atmel";
 
+#define EHCI_INSNREG(index)			((index) * 4 + 0x90)
+#define EHCI_INSNREG08_HSIC_EN			BIT(2)
+
 /* interface and function clocks */
 #define hcd_to_atmel_ehci_priv(h) \
 	((struct atmel_ehci_priv *)hcd_to_ehci(h)->priv)
@@ -154,6 +159,9 @@ static int ehci_atmel_drv_probe(struct platform_device *pdev)
 		goto fail_add_hcd;
 	device_wakeup_enable(hcd->self.controller);
 
+	if (of_usb_get_phy_mode(pdev->dev.of_node) == USBPHY_INTERFACE_MODE_HSIC)
+		writel(EHCI_INSNREG08_HSIC_EN, hcd->regs + EHCI_INSNREG(8));
+
 	return retval;
 
 fail_add_hcd:
-- 
2.25.1


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

* Re: [PATCH 1/2] dt-bindings: usb: atmel: add USB PHY type property
  2021-09-10 16:38 ` [PATCH 1/2] dt-bindings: usb: atmel: add USB PHY type property cristian.birsan
@ 2021-09-10 19:07   ` Sergei Shtylyov
  2021-09-13 16:38     ` Cristian.Birsan
  0 siblings, 1 reply; 7+ messages in thread
From: Sergei Shtylyov @ 2021-09-10 19:07 UTC (permalink / raw)
  To: cristian.birsan, stern, gregkh, nicolas.ferre, ada,
	alexandre.belloni, ludovic.desroches
  Cc: linux-usb, linux-arm-kernel, linux-kernel

Hello!

On 9/10/21 7:38 PM, cristian.birsan@microchip.com wrote:

> From: Cristian Birsan <cristian.birsan@microchip.com>
> 
> Add USB PHY type property for controllers with HSIC support.
> 
> Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
> ---
>  Documentation/devicetree/bindings/usb/atmel-usb.txt | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/usb/atmel-usb.txt b/Documentation/devicetree/bindings/usb/atmel-usb.txt
> index a4002624ba14..f512f0290728 100644
> --- a/Documentation/devicetree/bindings/usb/atmel-usb.txt
> +++ b/Documentation/devicetree/bindings/usb/atmel-usb.txt
> @@ -39,6 +39,10 @@ Required properties:
>  		"ehci_clk" for the peripheral clock
>  		"usb_clk" for the UTMI clock
>  
> +Optional properties:
> + - phy_type : For multi port host USB controllers, should be one of

   Hyphens are preferred to underscores in the property names.

> +   "utmi", or "hsic".
> +
>  usb1: ehci@800000 {
>  	compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
>  	reg = <0x00800000 0x100000>;

MBR, Sergei

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

* Re: [PATCH 2/2] USB: host: ehci-atmel: Add support for HSIC phy
  2021-09-10 16:38 ` [PATCH 2/2] USB: host: ehci-atmel: Add support for HSIC phy cristian.birsan
@ 2021-09-10 20:49   ` Alan Stern
  2021-09-13 11:39   ` Alexander Dahl
  1 sibling, 0 replies; 7+ messages in thread
From: Alan Stern @ 2021-09-10 20:49 UTC (permalink / raw)
  To: cristian.birsan
  Cc: gregkh, nicolas.ferre, ada, alexandre.belloni, ludovic.desroches,
	linux-usb, linux-arm-kernel, linux-kernel

On Fri, Sep 10, 2021 at 07:38:42PM +0300, cristian.birsan@microchip.com wrote:
> From: Cristian Birsan <cristian.birsan@microchip.com>
> 
> Add support for USB Host High Speed Port HSIC phy.
> 
> Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
> ---

Acked-by: Alan Stern <stern@rowland.harvard.edu>

>  drivers/usb/host/ehci-atmel.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/usb/host/ehci-atmel.c b/drivers/usb/host/ehci-atmel.c
> index e893467d659c..05d41fd65f25 100644
> --- a/drivers/usb/host/ehci-atmel.c
> +++ b/drivers/usb/host/ehci-atmel.c
> @@ -18,6 +18,8 @@
>  #include <linux/platform_device.h>
>  #include <linux/usb.h>
>  #include <linux/usb/hcd.h>
> +#include <linux/usb/phy.h>
> +#include <linux/usb/of.h>
>  
>  #include "ehci.h"
>  
> @@ -25,6 +27,9 @@
>  
>  static const char hcd_name[] = "ehci-atmel";
>  
> +#define EHCI_INSNREG(index)			((index) * 4 + 0x90)
> +#define EHCI_INSNREG08_HSIC_EN			BIT(2)
> +
>  /* interface and function clocks */
>  #define hcd_to_atmel_ehci_priv(h) \
>  	((struct atmel_ehci_priv *)hcd_to_ehci(h)->priv)
> @@ -154,6 +159,9 @@ static int ehci_atmel_drv_probe(struct platform_device *pdev)
>  		goto fail_add_hcd;
>  	device_wakeup_enable(hcd->self.controller);
>  
> +	if (of_usb_get_phy_mode(pdev->dev.of_node) == USBPHY_INTERFACE_MODE_HSIC)
> +		writel(EHCI_INSNREG08_HSIC_EN, hcd->regs + EHCI_INSNREG(8));
> +
>  	return retval;
>  
>  fail_add_hcd:
> -- 
> 2.25.1
> 

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

* Re: [PATCH 2/2] USB: host: ehci-atmel: Add support for HSIC phy
  2021-09-10 16:38 ` [PATCH 2/2] USB: host: ehci-atmel: Add support for HSIC phy cristian.birsan
  2021-09-10 20:49   ` Alan Stern
@ 2021-09-13 11:39   ` Alexander Dahl
  1 sibling, 0 replies; 7+ messages in thread
From: Alexander Dahl @ 2021-09-13 11:39 UTC (permalink / raw)
  To: cristian.birsan
  Cc: stern, gregkh, nicolas.ferre, alexandre.belloni,
	ludovic.desroches, linux-usb, linux-arm-kernel, linux-kernel

Hello Christian,

Am Freitag, 10. September 2021, 18:38:42 CEST schrieb 
cristian.birsan@microchip.com:
> From: Cristian Birsan <cristian.birsan@microchip.com>
> 
> Add support for USB Host High Speed Port HSIC phy.
> 
> Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
> ---
>  drivers/usb/host/ehci-atmel.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/usb/host/ehci-atmel.c b/drivers/usb/host/ehci-atmel.c
> index e893467d659c..05d41fd65f25 100644
> --- a/drivers/usb/host/ehci-atmel.c
> +++ b/drivers/usb/host/ehci-atmel.c
> @@ -18,6 +18,8 @@
>  #include <linux/platform_device.h>
>  #include <linux/usb.h>
>  #include <linux/usb/hcd.h>
> +#include <linux/usb/phy.h>
> +#include <linux/usb/of.h>
> 
>  #include "ehci.h"
> 
> @@ -25,6 +27,9 @@
> 
>  static const char hcd_name[] = "ehci-atmel";
> 
> +#define EHCI_INSNREG(index)			((index) * 4 + 0x90)
> +#define EHCI_INSNREG08_HSIC_EN			BIT(2)
> +
>  /* interface and function clocks */
>  #define hcd_to_atmel_ehci_priv(h) \
>  	((struct atmel_ehci_priv *)hcd_to_ehci(h)->priv)
> @@ -154,6 +159,9 @@ static int ehci_atmel_drv_probe(struct platform_device
> *pdev) goto fail_add_hcd;
>  	device_wakeup_enable(hcd->self.controller);
> 
> +	if (of_usb_get_phy_mode(pdev->dev.of_node) == USBPHY_INTERFACE_MODE_HSIC)
> +		writel(EHCI_INSNREG08_HSIC_EN, hcd->regs + EHCI_INSNREG(8));
> +
>  	return retval;
> 
>  fail_add_hcd:

Tested-by: Alexander Dahl <ada@thorsis.com>

Greets
Alex




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

* Re: [PATCH 1/2] dt-bindings: usb: atmel: add USB PHY type property
  2021-09-10 19:07   ` Sergei Shtylyov
@ 2021-09-13 16:38     ` Cristian.Birsan
  0 siblings, 0 replies; 7+ messages in thread
From: Cristian.Birsan @ 2021-09-13 16:38 UTC (permalink / raw)
  To: sergei.shtylyov, stern, gregkh, Nicolas.Ferre, ada,
	alexandre.belloni, Ludovic.Desroches
  Cc: linux-usb, linux-arm-kernel, linux-kernel

Hi Sergei,

On 9/10/21 10:07 PM, Sergei Shtylyov wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> Hello!
> 
> On 9/10/21 7:38 PM, cristian.birsan@microchip.com wrote:
> 
>> From: Cristian Birsan <cristian.birsan@microchip.com>
>>
>> Add USB PHY type property for controllers with HSIC support.
>>
>> Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
>> ---
>>  Documentation/devicetree/bindings/usb/atmel-usb.txt | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/usb/atmel-usb.txt b/Documentation/devicetree/bindings/usb/atmel-usb.txt
>> index a4002624ba14..f512f0290728 100644
>> --- a/Documentation/devicetree/bindings/usb/atmel-usb.txt
>> +++ b/Documentation/devicetree/bindings/usb/atmel-usb.txt
>> @@ -39,6 +39,10 @@ Required properties:
>>               "ehci_clk" for the peripheral clock
>>               "usb_clk" for the UTMI clock
>>
>> +Optional properties:
>> + - phy_type : For multi port host USB controllers, should be one of
> 
>    Hyphens are preferred to underscores in the property names.
> 

Thank you for looking at my patch.

The property is used with underscore in several places, including Generic USB Controller Device Tree Bindings:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/usb/usb.yaml?h=v5.15-rc1#n33

I preferred to used the same pattern and not add a slightly different property string for the same thing.

>> +   "utmi", or "hsic".
>> +
>>  usb1: ehci@800000 {
>>       compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
>>       reg = <0x00800000 0x100000>;
> 
> MBR, Sergei
> 

Kind regards,
Cristian

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

end of thread, other threads:[~2021-09-13 16:39 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-10 16:38 [PATCH 0/2] USB: host: ehci-atmel: Enable HSIC port on SAMA5D2 cristian.birsan
2021-09-10 16:38 ` [PATCH 1/2] dt-bindings: usb: atmel: add USB PHY type property cristian.birsan
2021-09-10 19:07   ` Sergei Shtylyov
2021-09-13 16:38     ` Cristian.Birsan
2021-09-10 16:38 ` [PATCH 2/2] USB: host: ehci-atmel: Add support for HSIC phy cristian.birsan
2021-09-10 20:49   ` Alan Stern
2021-09-13 11:39   ` Alexander Dahl

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).