All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/6] usb: gadget: udc: atmel: add usb device support for SAM9x60 SoC
@ 2020-07-22 13:44 ` cristian.birsan
  0 siblings, 0 replies; 20+ messages in thread
From: cristian.birsan @ 2020-07-22 13:44 UTC (permalink / raw)
  To: balbi, gregkh, nicolas.ferre, alexandre.belloni,
	ludovic.desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel
  Cc: Cristian Birsan

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

This patch set adds usb device support for SAM9x60 SoC.
The DPRAM memory for the USB High Speed Device Port (UDPHS) hardware
block was increased and the allocation method is changed. This patch
series simplifies the endpoint allocation scheme to acomodate this SoC
and the old ones.

Changes in v3:
- rebase on top of testing/next
- depends on https://lore.kernel.org/linux-arm-kernel/cover.1594231056.git.mirq-linux@rere.qmqm.pl/
- extend usba_udc_config structure with endpoint preallocaion flag
- collect acked-by tags

Changes in v2:
- drop the patch that adds reference to pmc for sam9x60
- use dt-bindings: usb prefix
- enable usb device in device tree

Claudiu Beznea (1):
  usb: gadget: udc: atmel: use of_find_matching_node_and_match

Cristian Birsan (5):
  dt-bindings: usb: atmel: Update DT bindings documentation for sam9x60
  usb: gadget: udc: atmel: simplify endpoint allocation
  usb: gadget: udc: atmel: use 1 bank endpoints for control transfers
  usb: gadget: udc: atmel: update endpoint allocation for sam9x60
  ARM: dts: at91: sam9x60ek: enable usb device

 .../devicetree/bindings/usb/atmel-usb.txt     |  1 +
 arch/arm/boot/dts/at91-sam9x60ek.dts          | 13 ++++
 arch/arm/boot/dts/sam9x60.dtsi                | 14 ++++
 drivers/usb/gadget/udc/atmel_usba_udc.c       | 67 ++++++++++++-------
 drivers/usb/gadget/udc/atmel_usba_udc.h       |  3 +-
 5 files changed, 74 insertions(+), 24 deletions(-)

-- 
2.25.1


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

* [PATCH v3 0/6] usb: gadget: udc: atmel: add usb device support for SAM9x60 SoC
@ 2020-07-22 13:44 ` cristian.birsan
  0 siblings, 0 replies; 20+ messages in thread
From: cristian.birsan @ 2020-07-22 13:44 UTC (permalink / raw)
  To: balbi, gregkh, nicolas.ferre, alexandre.belloni,
	ludovic.desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel
  Cc: Cristian Birsan

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

This patch set adds usb device support for SAM9x60 SoC.
The DPRAM memory for the USB High Speed Device Port (UDPHS) hardware
block was increased and the allocation method is changed. This patch
series simplifies the endpoint allocation scheme to acomodate this SoC
and the old ones.

Changes in v3:
- rebase on top of testing/next
- depends on https://lore.kernel.org/linux-arm-kernel/cover.1594231056.git.mirq-linux@rere.qmqm.pl/
- extend usba_udc_config structure with endpoint preallocaion flag
- collect acked-by tags

Changes in v2:
- drop the patch that adds reference to pmc for sam9x60
- use dt-bindings: usb prefix
- enable usb device in device tree

Claudiu Beznea (1):
  usb: gadget: udc: atmel: use of_find_matching_node_and_match

Cristian Birsan (5):
  dt-bindings: usb: atmel: Update DT bindings documentation for sam9x60
  usb: gadget: udc: atmel: simplify endpoint allocation
  usb: gadget: udc: atmel: use 1 bank endpoints for control transfers
  usb: gadget: udc: atmel: update endpoint allocation for sam9x60
  ARM: dts: at91: sam9x60ek: enable usb device

 .../devicetree/bindings/usb/atmel-usb.txt     |  1 +
 arch/arm/boot/dts/at91-sam9x60ek.dts          | 13 ++++
 arch/arm/boot/dts/sam9x60.dtsi                | 14 ++++
 drivers/usb/gadget/udc/atmel_usba_udc.c       | 67 ++++++++++++-------
 drivers/usb/gadget/udc/atmel_usba_udc.h       |  3 +-
 5 files changed, 74 insertions(+), 24 deletions(-)

-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH v3 1/6] usb: gadget: udc: atmel: use of_find_matching_node_and_match
  2020-07-22 13:44 ` cristian.birsan
@ 2020-07-22 13:44   ` cristian.birsan
  -1 siblings, 0 replies; 20+ messages in thread
From: cristian.birsan @ 2020-07-22 13:44 UTC (permalink / raw)
  To: balbi, gregkh, nicolas.ferre, alexandre.belloni,
	ludovic.desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel
  Cc: Claudiu Beznea

From: Claudiu Beznea <claudiu.beznea@microchip.com>

Instead of trying to match every possible compatible use
of_find_matching_node_and_match() and pass the compatible array.

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
---
 drivers/usb/gadget/udc/atmel_usba_udc.c | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
index c5128c229c52..ee2b550aa400 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.c
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
@@ -2112,6 +2112,13 @@ static const struct of_device_id atmel_udc_dt_ids[] = {
 
 MODULE_DEVICE_TABLE(of, atmel_udc_dt_ids);
 
+static const struct of_device_id atmel_pmc_dt_ids[] = {
+	{ .compatible = "atmel,at91sam9g45-pmc" },
+	{ .compatible = "atmel,at91sam9rl-pmc" },
+	{ .compatible = "atmel,at91sam9x5-pmc" },
+	{ /* sentinel */ }
+};
+
 static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
 						    struct usba_udc *udc)
 {
@@ -2128,13 +2135,17 @@ static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
 
 	udc_config = match->data;
 	udc->errata = udc_config->errata;
-	udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9g45-pmc");
-	if (IS_ERR(udc->pmc))
-		udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9rl-pmc");
-	if (IS_ERR(udc->pmc))
-		udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9x5-pmc");
-	if (udc->errata && IS_ERR(udc->pmc))
-		return ERR_CAST(udc->pmc);
+	if (udc->errata) {
+		pp = of_find_matching_node_and_match(NULL, atmel_pmc_dt_ids,
+						     NULL);
+		if (!pp)
+			return ERR_PTR(-ENODEV);
+
+		udc->pmc = syscon_node_to_regmap(pp);
+		of_node_put(pp);
+		if (IS_ERR(udc->pmc))
+			return ERR_CAST(udc->pmc);
+	}
 
 	udc->num_ep = 0;
 
-- 
2.25.1


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

* [PATCH v3 1/6] usb: gadget: udc: atmel: use of_find_matching_node_and_match
@ 2020-07-22 13:44   ` cristian.birsan
  0 siblings, 0 replies; 20+ messages in thread
From: cristian.birsan @ 2020-07-22 13:44 UTC (permalink / raw)
  To: balbi, gregkh, nicolas.ferre, alexandre.belloni,
	ludovic.desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel
  Cc: Claudiu Beznea

From: Claudiu Beznea <claudiu.beznea@microchip.com>

Instead of trying to match every possible compatible use
of_find_matching_node_and_match() and pass the compatible array.

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
---
 drivers/usb/gadget/udc/atmel_usba_udc.c | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
index c5128c229c52..ee2b550aa400 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.c
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
@@ -2112,6 +2112,13 @@ static const struct of_device_id atmel_udc_dt_ids[] = {
 
 MODULE_DEVICE_TABLE(of, atmel_udc_dt_ids);
 
+static const struct of_device_id atmel_pmc_dt_ids[] = {
+	{ .compatible = "atmel,at91sam9g45-pmc" },
+	{ .compatible = "atmel,at91sam9rl-pmc" },
+	{ .compatible = "atmel,at91sam9x5-pmc" },
+	{ /* sentinel */ }
+};
+
 static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
 						    struct usba_udc *udc)
 {
@@ -2128,13 +2135,17 @@ static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
 
 	udc_config = match->data;
 	udc->errata = udc_config->errata;
-	udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9g45-pmc");
-	if (IS_ERR(udc->pmc))
-		udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9rl-pmc");
-	if (IS_ERR(udc->pmc))
-		udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9x5-pmc");
-	if (udc->errata && IS_ERR(udc->pmc))
-		return ERR_CAST(udc->pmc);
+	if (udc->errata) {
+		pp = of_find_matching_node_and_match(NULL, atmel_pmc_dt_ids,
+						     NULL);
+		if (!pp)
+			return ERR_PTR(-ENODEV);
+
+		udc->pmc = syscon_node_to_regmap(pp);
+		of_node_put(pp);
+		if (IS_ERR(udc->pmc))
+			return ERR_CAST(udc->pmc);
+	}
 
 	udc->num_ep = 0;
 
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH v3 2/6] dt-bindings: usb: atmel: Update DT bindings documentation for sam9x60
  2020-07-22 13:44 ` cristian.birsan
@ 2020-07-22 13:44   ` cristian.birsan
  -1 siblings, 0 replies; 20+ messages in thread
From: cristian.birsan @ 2020-07-22 13:44 UTC (permalink / raw)
  To: balbi, gregkh, nicolas.ferre, alexandre.belloni,
	ludovic.desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel
  Cc: Cristian Birsan, Rob Herring

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

Add sam9x60 binding.

Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
Acked-by: Rob Herring <robh@kernel.org>
---
 Documentation/devicetree/bindings/usb/atmel-usb.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/usb/atmel-usb.txt b/Documentation/devicetree/bindings/usb/atmel-usb.txt
index 423b99a8fd97..a4002624ba14 100644
--- a/Documentation/devicetree/bindings/usb/atmel-usb.txt
+++ b/Documentation/devicetree/bindings/usb/atmel-usb.txt
@@ -82,6 +82,7 @@ Required properties:
 	       "atmel,at91sam9rl-udc"
 	       "atmel,at91sam9g45-udc"
 	       "atmel,sama5d3-udc"
+	       "microchip,sam9x60-udc"
  - reg: Address and length of the register set for the device
  - interrupts: Should contain usba interrupt
  - clocks: Should reference the peripheral and host clocks
-- 
2.25.1


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

* [PATCH v3 2/6] dt-bindings: usb: atmel: Update DT bindings documentation for sam9x60
@ 2020-07-22 13:44   ` cristian.birsan
  0 siblings, 0 replies; 20+ messages in thread
From: cristian.birsan @ 2020-07-22 13:44 UTC (permalink / raw)
  To: balbi, gregkh, nicolas.ferre, alexandre.belloni,
	ludovic.desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel
  Cc: Rob Herring, Cristian Birsan

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

Add sam9x60 binding.

Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
Acked-by: Rob Herring <robh@kernel.org>
---
 Documentation/devicetree/bindings/usb/atmel-usb.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/usb/atmel-usb.txt b/Documentation/devicetree/bindings/usb/atmel-usb.txt
index 423b99a8fd97..a4002624ba14 100644
--- a/Documentation/devicetree/bindings/usb/atmel-usb.txt
+++ b/Documentation/devicetree/bindings/usb/atmel-usb.txt
@@ -82,6 +82,7 @@ Required properties:
 	       "atmel,at91sam9rl-udc"
 	       "atmel,at91sam9g45-udc"
 	       "atmel,sama5d3-udc"
+	       "microchip,sam9x60-udc"
  - reg: Address and length of the register set for the device
  - interrupts: Should contain usba interrupt
  - clocks: Should reference the peripheral and host clocks
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH v3 3/6] usb: gadget: udc: atmel: simplify endpoint allocation
  2020-07-22 13:44 ` cristian.birsan
@ 2020-07-22 13:44   ` cristian.birsan
  -1 siblings, 0 replies; 20+ messages in thread
From: cristian.birsan @ 2020-07-22 13:44 UTC (permalink / raw)
  To: balbi, gregkh, nicolas.ferre, alexandre.belloni,
	ludovic.desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel
  Cc: Cristian Birsan

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

Simplify the endpoint allocation and cleanup the code.

Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
---
 drivers/usb/gadget/udc/atmel_usba_udc.c | 21 ++++++++-------------
 drivers/usb/gadget/udc/atmel_usba_udc.h |  1 -
 2 files changed, 8 insertions(+), 14 deletions(-)

diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
index ee2b550aa400..f767708598a4 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.c
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
@@ -1091,8 +1091,6 @@ static struct usb_ep *atmel_usba_match_ep(struct usb_gadget *gadget,
 				USBA_BF(EPT_SIZE, fls(ep->fifo_size - 1) - 3);
 
 		ep->ept_cfg |= USBA_BF(BK_NUMBER, ep->nr_banks);
-
-		ep->udc->configured_ep++;
 	}
 
 	return _ep;
@@ -1786,7 +1784,7 @@ static irqreturn_t usba_udc_irq(int irq, void *devid)
 
 	if (status & USBA_END_OF_RESET) {
 		struct usba_ep *ep0, *ep;
-		int i, n;
+		int i;
 
 		usba_writel(udc, INT_CLR,
 			USBA_END_OF_RESET|USBA_END_OF_RESUME
@@ -1834,13 +1832,14 @@ static irqreturn_t usba_udc_irq(int irq, void *devid)
 				"ODD: EP0 configuration is invalid!\n");
 
 		/* Preallocate other endpoints */
-		n = fifo_mode ? udc->num_ep : udc->configured_ep;
-		for (i = 1; i < n; i++) {
+		for (i = 1; i < udc->num_ep; i++) {
 			ep = &udc->usba_ep[i];
-			usba_ep_writel(ep, CFG, ep->ept_cfg);
-			if (!(usba_ep_readl(ep, CFG) & USBA_EPT_MAPPED))
-				dev_err(&udc->pdev->dev,
-					"ODD: EP%d configuration is invalid!\n", i);
+			if (ep->ep.claimed) {
+				usba_ep_writel(ep, CFG, ep->ept_cfg);
+				if (!(usba_ep_readl(ep, CFG) & USBA_EPT_MAPPED))
+					dev_err(&udc->pdev->dev,
+						"ODD: EP%d configuration is invalid!\n", i);
+			}
 		}
 	}
 
@@ -2025,9 +2024,6 @@ static int atmel_usba_stop(struct usb_gadget *gadget)
 	if (udc->vbus_pin)
 		disable_irq(gpiod_to_irq(udc->vbus_pin));
 
-	if (fifo_mode == 0)
-		udc->configured_ep = 1;
-
 	udc->suspended = false;
 	usba_stop(udc);
 
@@ -2155,7 +2151,6 @@ static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
 	if (fifo_mode == 0) {
 		pp = NULL;
 		udc->num_ep = udc_config->num_ep;
-		udc->configured_ep = 1;
 	} else {
 		udc->num_ep = usba_config_fifo_table(udc);
 	}
diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.h b/drivers/usb/gadget/udc/atmel_usba_udc.h
index 48e332439ed5..a9bf655eb513 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.h
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.h
@@ -336,7 +336,6 @@ struct usba_udc {
 	int irq;
 	struct gpio_desc *vbus_pin;
 	int num_ep;
-	int configured_ep;
 	struct usba_fifo_cfg *fifo_cfg;
 	struct clk *pclk;
 	struct clk *hclk;
-- 
2.25.1


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

* [PATCH v3 3/6] usb: gadget: udc: atmel: simplify endpoint allocation
@ 2020-07-22 13:44   ` cristian.birsan
  0 siblings, 0 replies; 20+ messages in thread
From: cristian.birsan @ 2020-07-22 13:44 UTC (permalink / raw)
  To: balbi, gregkh, nicolas.ferre, alexandre.belloni,
	ludovic.desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel
  Cc: Cristian Birsan

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

Simplify the endpoint allocation and cleanup the code.

Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
---
 drivers/usb/gadget/udc/atmel_usba_udc.c | 21 ++++++++-------------
 drivers/usb/gadget/udc/atmel_usba_udc.h |  1 -
 2 files changed, 8 insertions(+), 14 deletions(-)

diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
index ee2b550aa400..f767708598a4 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.c
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
@@ -1091,8 +1091,6 @@ static struct usb_ep *atmel_usba_match_ep(struct usb_gadget *gadget,
 				USBA_BF(EPT_SIZE, fls(ep->fifo_size - 1) - 3);
 
 		ep->ept_cfg |= USBA_BF(BK_NUMBER, ep->nr_banks);
-
-		ep->udc->configured_ep++;
 	}
 
 	return _ep;
@@ -1786,7 +1784,7 @@ static irqreturn_t usba_udc_irq(int irq, void *devid)
 
 	if (status & USBA_END_OF_RESET) {
 		struct usba_ep *ep0, *ep;
-		int i, n;
+		int i;
 
 		usba_writel(udc, INT_CLR,
 			USBA_END_OF_RESET|USBA_END_OF_RESUME
@@ -1834,13 +1832,14 @@ static irqreturn_t usba_udc_irq(int irq, void *devid)
 				"ODD: EP0 configuration is invalid!\n");
 
 		/* Preallocate other endpoints */
-		n = fifo_mode ? udc->num_ep : udc->configured_ep;
-		for (i = 1; i < n; i++) {
+		for (i = 1; i < udc->num_ep; i++) {
 			ep = &udc->usba_ep[i];
-			usba_ep_writel(ep, CFG, ep->ept_cfg);
-			if (!(usba_ep_readl(ep, CFG) & USBA_EPT_MAPPED))
-				dev_err(&udc->pdev->dev,
-					"ODD: EP%d configuration is invalid!\n", i);
+			if (ep->ep.claimed) {
+				usba_ep_writel(ep, CFG, ep->ept_cfg);
+				if (!(usba_ep_readl(ep, CFG) & USBA_EPT_MAPPED))
+					dev_err(&udc->pdev->dev,
+						"ODD: EP%d configuration is invalid!\n", i);
+			}
 		}
 	}
 
@@ -2025,9 +2024,6 @@ static int atmel_usba_stop(struct usb_gadget *gadget)
 	if (udc->vbus_pin)
 		disable_irq(gpiod_to_irq(udc->vbus_pin));
 
-	if (fifo_mode == 0)
-		udc->configured_ep = 1;
-
 	udc->suspended = false;
 	usba_stop(udc);
 
@@ -2155,7 +2151,6 @@ static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
 	if (fifo_mode == 0) {
 		pp = NULL;
 		udc->num_ep = udc_config->num_ep;
-		udc->configured_ep = 1;
 	} else {
 		udc->num_ep = usba_config_fifo_table(udc);
 	}
diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.h b/drivers/usb/gadget/udc/atmel_usba_udc.h
index 48e332439ed5..a9bf655eb513 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.h
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.h
@@ -336,7 +336,6 @@ struct usba_udc {
 	int irq;
 	struct gpio_desc *vbus_pin;
 	int num_ep;
-	int configured_ep;
 	struct usba_fifo_cfg *fifo_cfg;
 	struct clk *pclk;
 	struct clk *hclk;
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH v3 4/6] usb: gadget: udc: atmel: use 1 bank endpoints for control transfers
  2020-07-22 13:44 ` cristian.birsan
@ 2020-07-22 13:44   ` cristian.birsan
  -1 siblings, 0 replies; 20+ messages in thread
From: cristian.birsan @ 2020-07-22 13:44 UTC (permalink / raw)
  To: balbi, gregkh, nicolas.ferre, alexandre.belloni,
	ludovic.desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel
  Cc: Cristian Birsan

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

Use 1 bank endpoints for control transfers

Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
---
 drivers/usb/gadget/udc/atmel_usba_udc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
index f767708598a4..843ba525d277 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.c
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
@@ -1056,6 +1056,7 @@ static struct usb_ep *atmel_usba_match_ep(struct usb_gadget *gadget,
 
 		switch (usb_endpoint_type(desc)) {
 		case USB_ENDPOINT_XFER_CONTROL:
+			ep->nr_banks = 1;
 			break;
 
 		case USB_ENDPOINT_XFER_ISOC:
-- 
2.25.1


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

* [PATCH v3 4/6] usb: gadget: udc: atmel: use 1 bank endpoints for control transfers
@ 2020-07-22 13:44   ` cristian.birsan
  0 siblings, 0 replies; 20+ messages in thread
From: cristian.birsan @ 2020-07-22 13:44 UTC (permalink / raw)
  To: balbi, gregkh, nicolas.ferre, alexandre.belloni,
	ludovic.desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel
  Cc: Cristian Birsan

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

Use 1 bank endpoints for control transfers

Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
---
 drivers/usb/gadget/udc/atmel_usba_udc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
index f767708598a4..843ba525d277 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.c
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
@@ -1056,6 +1056,7 @@ static struct usb_ep *atmel_usba_match_ep(struct usb_gadget *gadget,
 
 		switch (usb_endpoint_type(desc)) {
 		case USB_ENDPOINT_XFER_CONTROL:
+			ep->nr_banks = 1;
 			break;
 
 		case USB_ENDPOINT_XFER_ISOC:
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH v3 5/6] usb: gadget: udc: atmel: update endpoint allocation for sam9x60
  2020-07-22 13:44 ` cristian.birsan
@ 2020-07-22 13:44   ` cristian.birsan
  -1 siblings, 0 replies; 20+ messages in thread
From: cristian.birsan @ 2020-07-22 13:44 UTC (permalink / raw)
  To: balbi, gregkh, nicolas.ferre, alexandre.belloni,
	ludovic.desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel
  Cc: Cristian Birsan

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

The DPRAM memory from the USB High Speed Device Port (UDPHS) hardware
block was increased. This patch updates the endpoint allocation for sam9x60
to take advantage of this larger memory. At the same time the
constraint to allocate the endpoints in order was lifted. To handle old
and new hardware in the same driver the ep_prealloc was added.

Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
---
 drivers/usb/gadget/udc/atmel_usba_udc.c | 20 +++++++++++++++++---
 drivers/usb/gadget/udc/atmel_usba_udc.h |  2 ++
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
index 843ba525d277..8015b99f6b5c 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.c
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
@@ -1061,12 +1061,14 @@ static struct usb_ep *atmel_usba_match_ep(struct usb_gadget *gadget,
 
 		case USB_ENDPOINT_XFER_ISOC:
 			ep->fifo_size = 1024;
-			ep->nr_banks = 2;
+			if (ep->udc->ep_prealloc)
+				ep->nr_banks = 2;
 			break;
 
 		case USB_ENDPOINT_XFER_BULK:
 			ep->fifo_size = 512;
-			ep->nr_banks = 1;
+			if (ep->udc->ep_prealloc)
+				ep->nr_banks = 1;
 			break;
 
 		case USB_ENDPOINT_XFER_INT:
@@ -1076,7 +1078,8 @@ static struct usb_ep *atmel_usba_match_ep(struct usb_gadget *gadget,
 			else
 				ep->fifo_size =
 				    roundup_pow_of_two(le16_to_cpu(desc->wMaxPacketSize));
-			ep->nr_banks = 1;
+			if (ep->udc->ep_prealloc)
+				ep->nr_banks = 1;
 			break;
 		}
 
@@ -2087,23 +2090,33 @@ static const struct usba_udc_config udc_at91sam9rl_cfg = {
 	.errata = &at91sam9rl_errata,
 	.config = ep_config_sam9,
 	.num_ep = ARRAY_SIZE(ep_config_sam9),
+	.ep_prealloc = true,
 };
 
 static const struct usba_udc_config udc_at91sam9g45_cfg = {
 	.errata = &at91sam9g45_errata,
 	.config = ep_config_sam9,
 	.num_ep = ARRAY_SIZE(ep_config_sam9),
+	.ep_prealloc = true,
 };
 
 static const struct usba_udc_config udc_sama5d3_cfg = {
 	.config = ep_config_sama5,
 	.num_ep = ARRAY_SIZE(ep_config_sama5),
+	.ep_prealloc = true,
+};
+
+static const struct usba_udc_config udc_sam9x60_cfg = {
+	.num_ep = ARRAY_SIZE(ep_config_sam9),
+	.config = ep_config_sam9,
+	.ep_prealloc = false,
 };
 
 static const struct of_device_id atmel_udc_dt_ids[] = {
 	{ .compatible = "atmel,at91sam9rl-udc", .data = &udc_at91sam9rl_cfg },
 	{ .compatible = "atmel,at91sam9g45-udc", .data = &udc_at91sam9g45_cfg },
 	{ .compatible = "atmel,sama5d3-udc", .data = &udc_sama5d3_cfg },
+	{ .compatible = "microchip,sam9x60-udc", .data = &udc_sam9x60_cfg },
 	{ /* sentinel */ }
 };
 
@@ -2131,6 +2144,7 @@ static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
 		return ERR_PTR(-EINVAL);
 
 	udc_config = match->data;
+	udc->ep_prealloc = udc_config->ep_prealloc;
 	udc->errata = udc_config->errata;
 	if (udc->errata) {
 		pp = of_find_matching_node_and_match(NULL, atmel_pmc_dt_ids,
diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.h b/drivers/usb/gadget/udc/atmel_usba_udc.h
index a9bf655eb513..620472f218bc 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.h
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.h
@@ -317,6 +317,7 @@ struct usba_udc_config {
 	const struct usba_udc_errata *errata;
 	const struct usba_ep_config *config;
 	const int num_ep;
+	const bool ep_prealloc;
 };
 
 struct usba_udc {
@@ -343,6 +344,7 @@ struct usba_udc {
 	bool bias_pulse_needed;
 	bool clocked;
 	bool suspended;
+	bool ep_prealloc;
 
 	u16 devstatus;
 
-- 
2.25.1


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

* [PATCH v3 5/6] usb: gadget: udc: atmel: update endpoint allocation for sam9x60
@ 2020-07-22 13:44   ` cristian.birsan
  0 siblings, 0 replies; 20+ messages in thread
From: cristian.birsan @ 2020-07-22 13:44 UTC (permalink / raw)
  To: balbi, gregkh, nicolas.ferre, alexandre.belloni,
	ludovic.desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel
  Cc: Cristian Birsan

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

The DPRAM memory from the USB High Speed Device Port (UDPHS) hardware
block was increased. This patch updates the endpoint allocation for sam9x60
to take advantage of this larger memory. At the same time the
constraint to allocate the endpoints in order was lifted. To handle old
and new hardware in the same driver the ep_prealloc was added.

Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
---
 drivers/usb/gadget/udc/atmel_usba_udc.c | 20 +++++++++++++++++---
 drivers/usb/gadget/udc/atmel_usba_udc.h |  2 ++
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
index 843ba525d277..8015b99f6b5c 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.c
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
@@ -1061,12 +1061,14 @@ static struct usb_ep *atmel_usba_match_ep(struct usb_gadget *gadget,
 
 		case USB_ENDPOINT_XFER_ISOC:
 			ep->fifo_size = 1024;
-			ep->nr_banks = 2;
+			if (ep->udc->ep_prealloc)
+				ep->nr_banks = 2;
 			break;
 
 		case USB_ENDPOINT_XFER_BULK:
 			ep->fifo_size = 512;
-			ep->nr_banks = 1;
+			if (ep->udc->ep_prealloc)
+				ep->nr_banks = 1;
 			break;
 
 		case USB_ENDPOINT_XFER_INT:
@@ -1076,7 +1078,8 @@ static struct usb_ep *atmel_usba_match_ep(struct usb_gadget *gadget,
 			else
 				ep->fifo_size =
 				    roundup_pow_of_two(le16_to_cpu(desc->wMaxPacketSize));
-			ep->nr_banks = 1;
+			if (ep->udc->ep_prealloc)
+				ep->nr_banks = 1;
 			break;
 		}
 
@@ -2087,23 +2090,33 @@ static const struct usba_udc_config udc_at91sam9rl_cfg = {
 	.errata = &at91sam9rl_errata,
 	.config = ep_config_sam9,
 	.num_ep = ARRAY_SIZE(ep_config_sam9),
+	.ep_prealloc = true,
 };
 
 static const struct usba_udc_config udc_at91sam9g45_cfg = {
 	.errata = &at91sam9g45_errata,
 	.config = ep_config_sam9,
 	.num_ep = ARRAY_SIZE(ep_config_sam9),
+	.ep_prealloc = true,
 };
 
 static const struct usba_udc_config udc_sama5d3_cfg = {
 	.config = ep_config_sama5,
 	.num_ep = ARRAY_SIZE(ep_config_sama5),
+	.ep_prealloc = true,
+};
+
+static const struct usba_udc_config udc_sam9x60_cfg = {
+	.num_ep = ARRAY_SIZE(ep_config_sam9),
+	.config = ep_config_sam9,
+	.ep_prealloc = false,
 };
 
 static const struct of_device_id atmel_udc_dt_ids[] = {
 	{ .compatible = "atmel,at91sam9rl-udc", .data = &udc_at91sam9rl_cfg },
 	{ .compatible = "atmel,at91sam9g45-udc", .data = &udc_at91sam9g45_cfg },
 	{ .compatible = "atmel,sama5d3-udc", .data = &udc_sama5d3_cfg },
+	{ .compatible = "microchip,sam9x60-udc", .data = &udc_sam9x60_cfg },
 	{ /* sentinel */ }
 };
 
@@ -2131,6 +2144,7 @@ static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
 		return ERR_PTR(-EINVAL);
 
 	udc_config = match->data;
+	udc->ep_prealloc = udc_config->ep_prealloc;
 	udc->errata = udc_config->errata;
 	if (udc->errata) {
 		pp = of_find_matching_node_and_match(NULL, atmel_pmc_dt_ids,
diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.h b/drivers/usb/gadget/udc/atmel_usba_udc.h
index a9bf655eb513..620472f218bc 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.h
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.h
@@ -317,6 +317,7 @@ struct usba_udc_config {
 	const struct usba_udc_errata *errata;
 	const struct usba_ep_config *config;
 	const int num_ep;
+	const bool ep_prealloc;
 };
 
 struct usba_udc {
@@ -343,6 +344,7 @@ struct usba_udc {
 	bool bias_pulse_needed;
 	bool clocked;
 	bool suspended;
+	bool ep_prealloc;
 
 	u16 devstatus;
 
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH v3 6/6] ARM: dts: at91: sam9x60ek: enable usb device
  2020-07-22 13:44 ` cristian.birsan
@ 2020-07-22 13:44   ` cristian.birsan
  -1 siblings, 0 replies; 20+ messages in thread
From: cristian.birsan @ 2020-07-22 13:44 UTC (permalink / raw)
  To: balbi, gregkh, nicolas.ferre, alexandre.belloni,
	ludovic.desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel
  Cc: Cristian Birsan

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

Enable usb device for sam9x60ek board.

Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
---
 arch/arm/boot/dts/at91-sam9x60ek.dts | 13 +++++++++++++
 arch/arm/boot/dts/sam9x60.dtsi       | 14 ++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/arch/arm/boot/dts/at91-sam9x60ek.dts b/arch/arm/boot/dts/at91-sam9x60ek.dts
index a5f5718c711a..984cf596dfe9 100644
--- a/arch/arm/boot/dts/at91-sam9x60ek.dts
+++ b/arch/arm/boot/dts/at91-sam9x60ek.dts
@@ -559,6 +559,12 @@ pinctrl_key_gpio_default: pinctrl_key_gpio {
 			atmel,pins = <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
 		};
 	};
+
+	usb0 {
+		pinctrl_usba_vbus: usba_vbus {
+			atmel,pins = <AT91_PIOB 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+		};
+	};
 }; /* pinctrl */
 
 &pmc {
@@ -657,6 +663,13 @@ timer1: timer@1 {
 	};
 };
 
+&usb0 {
+	atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usba_vbus>;
+	status = "okay";
+};
+
 &usb1 {
 	num-ports = <3>;
 	atmel,vbus-gpio = <0
diff --git a/arch/arm/boot/dts/sam9x60.dtsi b/arch/arm/boot/dts/sam9x60.dtsi
index 6763423d64b8..ef0ef8625f25 100644
--- a/arch/arm/boot/dts/sam9x60.dtsi
+++ b/arch/arm/boot/dts/sam9x60.dtsi
@@ -69,6 +69,20 @@ ahb {
 		#size-cells = <1>;
 		ranges;
 
+		usb0: gadget@500000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "microchip,sam9x60-udc";
+			reg = <0x00500000 0x100000
+				0xf803c000 0x400>;
+			interrupts = <23 IRQ_TYPE_LEVEL_HIGH 2>;
+			clocks = <&pmc PMC_TYPE_PERIPHERAL 23>, <&pmc PMC_TYPE_CORE PMC_UTMI>;
+			clock-names = "pclk", "hclk";
+			assigned-clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>;
+			assigned-clock-rates = <480000000>;
+			status = "disabled";
+		};
+
 		usb1: ohci@600000 {
 			compatible = "atmel,at91rm9200-ohci", "usb-ohci";
 			reg = <0x00600000 0x100000>;
-- 
2.25.1


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

* [PATCH v3 6/6] ARM: dts: at91: sam9x60ek: enable usb device
@ 2020-07-22 13:44   ` cristian.birsan
  0 siblings, 0 replies; 20+ messages in thread
From: cristian.birsan @ 2020-07-22 13:44 UTC (permalink / raw)
  To: balbi, gregkh, nicolas.ferre, alexandre.belloni,
	ludovic.desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel
  Cc: Cristian Birsan

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

Enable usb device for sam9x60ek board.

Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
---
 arch/arm/boot/dts/at91-sam9x60ek.dts | 13 +++++++++++++
 arch/arm/boot/dts/sam9x60.dtsi       | 14 ++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/arch/arm/boot/dts/at91-sam9x60ek.dts b/arch/arm/boot/dts/at91-sam9x60ek.dts
index a5f5718c711a..984cf596dfe9 100644
--- a/arch/arm/boot/dts/at91-sam9x60ek.dts
+++ b/arch/arm/boot/dts/at91-sam9x60ek.dts
@@ -559,6 +559,12 @@ pinctrl_key_gpio_default: pinctrl_key_gpio {
 			atmel,pins = <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
 		};
 	};
+
+	usb0 {
+		pinctrl_usba_vbus: usba_vbus {
+			atmel,pins = <AT91_PIOB 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+		};
+	};
 }; /* pinctrl */
 
 &pmc {
@@ -657,6 +663,13 @@ timer1: timer@1 {
 	};
 };
 
+&usb0 {
+	atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_usba_vbus>;
+	status = "okay";
+};
+
 &usb1 {
 	num-ports = <3>;
 	atmel,vbus-gpio = <0
diff --git a/arch/arm/boot/dts/sam9x60.dtsi b/arch/arm/boot/dts/sam9x60.dtsi
index 6763423d64b8..ef0ef8625f25 100644
--- a/arch/arm/boot/dts/sam9x60.dtsi
+++ b/arch/arm/boot/dts/sam9x60.dtsi
@@ -69,6 +69,20 @@ ahb {
 		#size-cells = <1>;
 		ranges;
 
+		usb0: gadget@500000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "microchip,sam9x60-udc";
+			reg = <0x00500000 0x100000
+				0xf803c000 0x400>;
+			interrupts = <23 IRQ_TYPE_LEVEL_HIGH 2>;
+			clocks = <&pmc PMC_TYPE_PERIPHERAL 23>, <&pmc PMC_TYPE_CORE PMC_UTMI>;
+			clock-names = "pclk", "hclk";
+			assigned-clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>;
+			assigned-clock-rates = <480000000>;
+			status = "disabled";
+		};
+
 		usb1: ohci@600000 {
 			compatible = "atmel,at91rm9200-ohci", "usb-ohci";
 			reg = <0x00600000 0x100000>;
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH v3 1/6] usb: gadget: udc: atmel: use of_find_matching_node_and_match
  2020-07-22 13:44   ` cristian.birsan
@ 2020-07-22 14:43     ` Claudiu.Beznea
  -1 siblings, 0 replies; 20+ messages in thread
From: Claudiu.Beznea @ 2020-07-22 14:43 UTC (permalink / raw)
  To: Cristian.Birsan, balbi, gregkh, Nicolas.Ferre, alexandre.belloni,
	Ludovic.Desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel



On 22.07.2020 16:44, cristian.birsan@microchip.com wrote:
> From: Claudiu Beznea <claudiu.beznea@microchip.com>
> 
> Instead of trying to match every possible compatible use
> of_find_matching_node_and_match() and pass the compatible array.
> 
> Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
> ---
>  drivers/usb/gadget/udc/atmel_usba_udc.c | 25 ++++++++++++++++++-------
>  1 file changed, 18 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
> index c5128c229c52..ee2b550aa400 100644
> --- a/drivers/usb/gadget/udc/atmel_usba_udc.c
> +++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
> @@ -2112,6 +2112,13 @@ static const struct of_device_id atmel_udc_dt_ids[] = {
>  
>  MODULE_DEVICE_TABLE(of, atmel_udc_dt_ids);
>  
> +static const struct of_device_id atmel_pmc_dt_ids[] = {
> +	{ .compatible = "atmel,at91sam9g45-pmc" },
> +	{ .compatible = "atmel,at91sam9rl-pmc" },
> +	{ .compatible = "atmel,at91sam9x5-pmc" },
> +	{ /* sentinel */ }
> +};
> +
>  static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
>  						    struct usba_udc *udc)
>  {
> @@ -2128,13 +2135,17 @@ static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
>  
>  	udc_config = match->data;
>  	udc->errata = udc_config->errata;
> -	udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9g45-pmc");
> -	if (IS_ERR(udc->pmc))
> -		udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9rl-pmc");
> -	if (IS_ERR(udc->pmc))
> -		udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9x5-pmc");
> -	if (udc->errata && IS_ERR(udc->pmc))
> -		return ERR_CAST(udc->pmc);
> +	if (udc->errata) {
> +		pp = of_find_matching_node_and_match(NULL, atmel_pmc_dt_ids,
> +						     NULL);
> +		if (!pp)
> +			return ERR_PTR(-ENODEV);
> +
> +		udc->pmc = syscon_node_to_regmap(pp);
> +		of_node_put(pp);
> +		if (IS_ERR(udc->pmc))
> +			return ERR_CAST(udc->pmc);
> +	}

This seems a bit not similar. I may had been wrong at the moment I wrote
this patch. Probably the best would be:

+	udc->pmc = ERR_PTR(-ENODEV);
+	pp = of_find_matching_node_and_match(NULL, atmel_pmc_dt_ids,
+					     NULL);
+	if (pp) {
+		udc->pmc = syscon_node_to_regmap(pp);
+		of_node_put(pp);
+	}
+
+	if ((!pp || IS_ERR(udc->pmc)) && udc->errata)
+		return ERR_CAST(udc->pmc);

Thank you,
Claudiu Beznea

>  
>  	udc->num_ep = 0;
>  
> 

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

* Re: [PATCH v3 1/6] usb: gadget: udc: atmel: use of_find_matching_node_and_match
@ 2020-07-22 14:43     ` Claudiu.Beznea
  0 siblings, 0 replies; 20+ messages in thread
From: Claudiu.Beznea @ 2020-07-22 14:43 UTC (permalink / raw)
  To: Cristian.Birsan, balbi, gregkh, Nicolas.Ferre, alexandre.belloni,
	Ludovic.Desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel



On 22.07.2020 16:44, cristian.birsan@microchip.com wrote:
> From: Claudiu Beznea <claudiu.beznea@microchip.com>
> 
> Instead of trying to match every possible compatible use
> of_find_matching_node_and_match() and pass the compatible array.
> 
> Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
> ---
>  drivers/usb/gadget/udc/atmel_usba_udc.c | 25 ++++++++++++++++++-------
>  1 file changed, 18 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
> index c5128c229c52..ee2b550aa400 100644
> --- a/drivers/usb/gadget/udc/atmel_usba_udc.c
> +++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
> @@ -2112,6 +2112,13 @@ static const struct of_device_id atmel_udc_dt_ids[] = {
>  
>  MODULE_DEVICE_TABLE(of, atmel_udc_dt_ids);
>  
> +static const struct of_device_id atmel_pmc_dt_ids[] = {
> +	{ .compatible = "atmel,at91sam9g45-pmc" },
> +	{ .compatible = "atmel,at91sam9rl-pmc" },
> +	{ .compatible = "atmel,at91sam9x5-pmc" },
> +	{ /* sentinel */ }
> +};
> +
>  static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
>  						    struct usba_udc *udc)
>  {
> @@ -2128,13 +2135,17 @@ static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
>  
>  	udc_config = match->data;
>  	udc->errata = udc_config->errata;
> -	udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9g45-pmc");
> -	if (IS_ERR(udc->pmc))
> -		udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9rl-pmc");
> -	if (IS_ERR(udc->pmc))
> -		udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9x5-pmc");
> -	if (udc->errata && IS_ERR(udc->pmc))
> -		return ERR_CAST(udc->pmc);
> +	if (udc->errata) {
> +		pp = of_find_matching_node_and_match(NULL, atmel_pmc_dt_ids,
> +						     NULL);
> +		if (!pp)
> +			return ERR_PTR(-ENODEV);
> +
> +		udc->pmc = syscon_node_to_regmap(pp);
> +		of_node_put(pp);
> +		if (IS_ERR(udc->pmc))
> +			return ERR_CAST(udc->pmc);
> +	}

This seems a bit not similar. I may had been wrong at the moment I wrote
this patch. Probably the best would be:

+	udc->pmc = ERR_PTR(-ENODEV);
+	pp = of_find_matching_node_and_match(NULL, atmel_pmc_dt_ids,
+					     NULL);
+	if (pp) {
+		udc->pmc = syscon_node_to_regmap(pp);
+		of_node_put(pp);
+	}
+
+	if ((!pp || IS_ERR(udc->pmc)) && udc->errata)
+		return ERR_CAST(udc->pmc);

Thank you,
Claudiu Beznea

>  
>  	udc->num_ep = 0;
>  
> 
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH v3 1/6] usb: gadget: udc: atmel: use of_find_matching_node_and_match
  2020-07-22 14:43     ` Claudiu.Beznea
@ 2020-07-23 16:28       ` Claudiu.Beznea
  -1 siblings, 0 replies; 20+ messages in thread
From: Claudiu.Beznea @ 2020-07-23 16:28 UTC (permalink / raw)
  To: Cristian.Birsan, balbi, gregkh, Nicolas.Ferre, alexandre.belloni,
	Ludovic.Desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel



On 22.07.2020 17:43, Claudiu.Beznea@microchip.com wrote:
> 
> 
> On 22.07.2020 16:44, cristian.birsan@microchip.com wrote:
>> From: Claudiu Beznea <claudiu.beznea@microchip.com>
>>
>> Instead of trying to match every possible compatible use
>> of_find_matching_node_and_match() and pass the compatible array.
>>
>> Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
>> ---
>>  drivers/usb/gadget/udc/atmel_usba_udc.c | 25 ++++++++++++++++++-------
>>  1 file changed, 18 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
>> index c5128c229c52..ee2b550aa400 100644
>> --- a/drivers/usb/gadget/udc/atmel_usba_udc.c
>> +++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
>> @@ -2112,6 +2112,13 @@ static const struct of_device_id atmel_udc_dt_ids[] = {
>>  
>>  MODULE_DEVICE_TABLE(of, atmel_udc_dt_ids);
>>  
>> +static const struct of_device_id atmel_pmc_dt_ids[] = {
>> +	{ .compatible = "atmel,at91sam9g45-pmc" },
>> +	{ .compatible = "atmel,at91sam9rl-pmc" },
>> +	{ .compatible = "atmel,at91sam9x5-pmc" },
>> +	{ /* sentinel */ }
>> +};
>> +
>>  static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
>>  						    struct usba_udc *udc)
>>  {
>> @@ -2128,13 +2135,17 @@ static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
>>  
>>  	udc_config = match->data;
>>  	udc->errata = udc_config->errata;
>> -	udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9g45-pmc");
>> -	if (IS_ERR(udc->pmc))
>> -		udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9rl-pmc");
>> -	if (IS_ERR(udc->pmc))
>> -		udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9x5-pmc");
>> -	if (udc->errata && IS_ERR(udc->pmc))
>> -		return ERR_CAST(udc->pmc);
>> +	if (udc->errata) {
>> +		pp = of_find_matching_node_and_match(NULL, atmel_pmc_dt_ids,
>> +						     NULL);
>> +		if (!pp)
>> +			return ERR_PTR(-ENODEV);
>> +
>> +		udc->pmc = syscon_node_to_regmap(pp);
>> +		of_node_put(pp);
>> +		if (IS_ERR(udc->pmc))
>> +			return ERR_CAST(udc->pmc);
>> +	}
> 
> This seems a bit not similar. I may had been wrong at the moment I wrote
> this patch. Probably the best would be:
> 
> +	udc->pmc = ERR_PTR(-ENODEV);
> +	pp = of_find_matching_node_and_match(NULL, atmel_pmc_dt_ids,
> +					     NULL);
> +	if (pp) {
> +		udc->pmc = syscon_node_to_regmap(pp);
> +		of_node_put(pp);
> +	}
> +
> +	if ((!pp || IS_ERR(udc->pmc)) && udc->errata)
> +		return ERR_CAST(udc->pmc);

Actually, the initial patch should be good and simpler than what I proposed
in previous email. Please ignore it.

Sorry for the noise!

> 
> Thank you,
> Claudiu Beznea
> 
>>  
>>  	udc->num_ep = 0;
>>  
>>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 

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

* Re: [PATCH v3 1/6] usb: gadget: udc: atmel: use of_find_matching_node_and_match
@ 2020-07-23 16:28       ` Claudiu.Beznea
  0 siblings, 0 replies; 20+ messages in thread
From: Claudiu.Beznea @ 2020-07-23 16:28 UTC (permalink / raw)
  To: Cristian.Birsan, balbi, gregkh, Nicolas.Ferre, alexandre.belloni,
	Ludovic.Desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel



On 22.07.2020 17:43, Claudiu.Beznea@microchip.com wrote:
> 
> 
> On 22.07.2020 16:44, cristian.birsan@microchip.com wrote:
>> From: Claudiu Beznea <claudiu.beznea@microchip.com>
>>
>> Instead of trying to match every possible compatible use
>> of_find_matching_node_and_match() and pass the compatible array.
>>
>> Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
>> ---
>>  drivers/usb/gadget/udc/atmel_usba_udc.c | 25 ++++++++++++++++++-------
>>  1 file changed, 18 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
>> index c5128c229c52..ee2b550aa400 100644
>> --- a/drivers/usb/gadget/udc/atmel_usba_udc.c
>> +++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
>> @@ -2112,6 +2112,13 @@ static const struct of_device_id atmel_udc_dt_ids[] = {
>>  
>>  MODULE_DEVICE_TABLE(of, atmel_udc_dt_ids);
>>  
>> +static const struct of_device_id atmel_pmc_dt_ids[] = {
>> +	{ .compatible = "atmel,at91sam9g45-pmc" },
>> +	{ .compatible = "atmel,at91sam9rl-pmc" },
>> +	{ .compatible = "atmel,at91sam9x5-pmc" },
>> +	{ /* sentinel */ }
>> +};
>> +
>>  static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
>>  						    struct usba_udc *udc)
>>  {
>> @@ -2128,13 +2135,17 @@ static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
>>  
>>  	udc_config = match->data;
>>  	udc->errata = udc_config->errata;
>> -	udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9g45-pmc");
>> -	if (IS_ERR(udc->pmc))
>> -		udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9rl-pmc");
>> -	if (IS_ERR(udc->pmc))
>> -		udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9x5-pmc");
>> -	if (udc->errata && IS_ERR(udc->pmc))
>> -		return ERR_CAST(udc->pmc);
>> +	if (udc->errata) {
>> +		pp = of_find_matching_node_and_match(NULL, atmel_pmc_dt_ids,
>> +						     NULL);
>> +		if (!pp)
>> +			return ERR_PTR(-ENODEV);
>> +
>> +		udc->pmc = syscon_node_to_regmap(pp);
>> +		of_node_put(pp);
>> +		if (IS_ERR(udc->pmc))
>> +			return ERR_CAST(udc->pmc);
>> +	}
> 
> This seems a bit not similar. I may had been wrong at the moment I wrote
> this patch. Probably the best would be:
> 
> +	udc->pmc = ERR_PTR(-ENODEV);
> +	pp = of_find_matching_node_and_match(NULL, atmel_pmc_dt_ids,
> +					     NULL);
> +	if (pp) {
> +		udc->pmc = syscon_node_to_regmap(pp);
> +		of_node_put(pp);
> +	}
> +
> +	if ((!pp || IS_ERR(udc->pmc)) && udc->errata)
> +		return ERR_CAST(udc->pmc);

Actually, the initial patch should be good and simpler than what I proposed
in previous email. Please ignore it.

Sorry for the noise!

> 
> Thank you,
> Claudiu Beznea
> 
>>  
>>  	udc->num_ep = 0;
>>  
>>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH v3 1/6] usb: gadget: udc: atmel: use of_find_matching_node_and_match
  2020-07-23 16:28       ` Claudiu.Beznea
@ 2020-07-23 16:33         ` Cristian.Birsan
  -1 siblings, 0 replies; 20+ messages in thread
From: Cristian.Birsan @ 2020-07-23 16:33 UTC (permalink / raw)
  To: Claudiu.Beznea, balbi, gregkh, Nicolas.Ferre, alexandre.belloni,
	Ludovic.Desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel



On 7/23/20 7:28 PM, Claudiu Beznea - M18063 wrote:
> 
> 
> On 22.07.2020 17:43, Claudiu.Beznea@microchip.com wrote:
>>
>>
>> On 22.07.2020 16:44, cristian.birsan@microchip.com wrote:
>>> From: Claudiu Beznea <claudiu.beznea@microchip.com>
>>>
>>> Instead of trying to match every possible compatible use
>>> of_find_matching_node_and_match() and pass the compatible array.
>>>
>>> Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
>>> ---
>>>  drivers/usb/gadget/udc/atmel_usba_udc.c | 25 ++++++++++++++++++-------
>>>  1 file changed, 18 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
>>> index c5128c229c52..ee2b550aa400 100644
>>> --- a/drivers/usb/gadget/udc/atmel_usba_udc.c
>>> +++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
>>> @@ -2112,6 +2112,13 @@ static const struct of_device_id atmel_udc_dt_ids[] = {
>>>  
>>>  MODULE_DEVICE_TABLE(of, atmel_udc_dt_ids);
>>>  
>>> +static const struct of_device_id atmel_pmc_dt_ids[] = {
>>> +	{ .compatible = "atmel,at91sam9g45-pmc" },
>>> +	{ .compatible = "atmel,at91sam9rl-pmc" },
>>> +	{ .compatible = "atmel,at91sam9x5-pmc" },
>>> +	{ /* sentinel */ }
>>> +};
>>> +
>>>  static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
>>>  						    struct usba_udc *udc)
>>>  {
>>> @@ -2128,13 +2135,17 @@ static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
>>>  
>>>  	udc_config = match->data;
>>>  	udc->errata = udc_config->errata;
>>> -	udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9g45-pmc");
>>> -	if (IS_ERR(udc->pmc))
>>> -		udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9rl-pmc");
>>> -	if (IS_ERR(udc->pmc))
>>> -		udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9x5-pmc");
>>> -	if (udc->errata && IS_ERR(udc->pmc))
>>> -		return ERR_CAST(udc->pmc);
>>> +	if (udc->errata) {
>>> +		pp = of_find_matching_node_and_match(NULL, atmel_pmc_dt_ids,
>>> +						     NULL);
>>> +		if (!pp)
>>> +			return ERR_PTR(-ENODEV);
>>> +
>>> +		udc->pmc = syscon_node_to_regmap(pp);
>>> +		of_node_put(pp);
>>> +		if (IS_ERR(udc->pmc))
>>> +			return ERR_CAST(udc->pmc);
>>> +	}
>>
>> This seems a bit not similar. I may had been wrong at the moment I wrote
>> this patch. Probably the best would be:
>>
>> +	udc->pmc = ERR_PTR(-ENODEV);
>> +	pp = of_find_matching_node_and_match(NULL, atmel_pmc_dt_ids,
>> +					     NULL);
>> +	if (pp) {
>> +		udc->pmc = syscon_node_to_regmap(pp);
>> +		of_node_put(pp);
>> +	}
>> +
>> +	if ((!pp || IS_ERR(udc->pmc)) && udc->errata)
>> +		return ERR_CAST(udc->pmc);
> 
> Actually, the initial patch should be good and simpler than what I proposed
> in previous email. Please ignore it.
> 
> Sorry for the noise!

I will rebase again the patchset on top of testing/next and send a V4 with your original version.

Regards,
Cristian Birsan 
> 
>>
>> Thank you,
>> Claudiu Beznea
>>
>>>  
>>>  	udc->num_ep = 0;
>>>  
>>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* Re: [PATCH v3 1/6] usb: gadget: udc: atmel: use of_find_matching_node_and_match
@ 2020-07-23 16:33         ` Cristian.Birsan
  0 siblings, 0 replies; 20+ messages in thread
From: Cristian.Birsan @ 2020-07-23 16:33 UTC (permalink / raw)
  To: Claudiu.Beznea, balbi, gregkh, Nicolas.Ferre, alexandre.belloni,
	Ludovic.Desroches, robh+dt, mark.rutland, linux-arm-kernel,
	linux-usb, devicetree, linux-kernel



On 7/23/20 7:28 PM, Claudiu Beznea - M18063 wrote:
> 
> 
> On 22.07.2020 17:43, Claudiu.Beznea@microchip.com wrote:
>>
>>
>> On 22.07.2020 16:44, cristian.birsan@microchip.com wrote:
>>> From: Claudiu Beznea <claudiu.beznea@microchip.com>
>>>
>>> Instead of trying to match every possible compatible use
>>> of_find_matching_node_and_match() and pass the compatible array.
>>>
>>> Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
>>> ---
>>>  drivers/usb/gadget/udc/atmel_usba_udc.c | 25 ++++++++++++++++++-------
>>>  1 file changed, 18 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
>>> index c5128c229c52..ee2b550aa400 100644
>>> --- a/drivers/usb/gadget/udc/atmel_usba_udc.c
>>> +++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
>>> @@ -2112,6 +2112,13 @@ static const struct of_device_id atmel_udc_dt_ids[] = {
>>>  
>>>  MODULE_DEVICE_TABLE(of, atmel_udc_dt_ids);
>>>  
>>> +static const struct of_device_id atmel_pmc_dt_ids[] = {
>>> +	{ .compatible = "atmel,at91sam9g45-pmc" },
>>> +	{ .compatible = "atmel,at91sam9rl-pmc" },
>>> +	{ .compatible = "atmel,at91sam9x5-pmc" },
>>> +	{ /* sentinel */ }
>>> +};
>>> +
>>>  static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
>>>  						    struct usba_udc *udc)
>>>  {
>>> @@ -2128,13 +2135,17 @@ static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
>>>  
>>>  	udc_config = match->data;
>>>  	udc->errata = udc_config->errata;
>>> -	udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9g45-pmc");
>>> -	if (IS_ERR(udc->pmc))
>>> -		udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9rl-pmc");
>>> -	if (IS_ERR(udc->pmc))
>>> -		udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9x5-pmc");
>>> -	if (udc->errata && IS_ERR(udc->pmc))
>>> -		return ERR_CAST(udc->pmc);
>>> +	if (udc->errata) {
>>> +		pp = of_find_matching_node_and_match(NULL, atmel_pmc_dt_ids,
>>> +						     NULL);
>>> +		if (!pp)
>>> +			return ERR_PTR(-ENODEV);
>>> +
>>> +		udc->pmc = syscon_node_to_regmap(pp);
>>> +		of_node_put(pp);
>>> +		if (IS_ERR(udc->pmc))
>>> +			return ERR_CAST(udc->pmc);
>>> +	}
>>
>> This seems a bit not similar. I may had been wrong at the moment I wrote
>> this patch. Probably the best would be:
>>
>> +	udc->pmc = ERR_PTR(-ENODEV);
>> +	pp = of_find_matching_node_and_match(NULL, atmel_pmc_dt_ids,
>> +					     NULL);
>> +	if (pp) {
>> +		udc->pmc = syscon_node_to_regmap(pp);
>> +		of_node_put(pp);
>> +	}
>> +
>> +	if ((!pp || IS_ERR(udc->pmc)) && udc->errata)
>> +		return ERR_CAST(udc->pmc);
> 
> Actually, the initial patch should be good and simpler than what I proposed
> in previous email. Please ignore it.
> 
> Sorry for the noise!

I will rebase again the patchset on top of testing/next and send a V4 with your original version.

Regards,
Cristian Birsan 
> 
>>
>> Thank you,
>> Claudiu Beznea
>>
>>>  
>>>  	udc->num_ep = 0;
>>>  
>>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

end of thread, other threads:[~2020-07-23 16:35 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-22 13:44 [PATCH v3 0/6] usb: gadget: udc: atmel: add usb device support for SAM9x60 SoC cristian.birsan
2020-07-22 13:44 ` cristian.birsan
2020-07-22 13:44 ` [PATCH v3 1/6] usb: gadget: udc: atmel: use of_find_matching_node_and_match cristian.birsan
2020-07-22 13:44   ` cristian.birsan
2020-07-22 14:43   ` Claudiu.Beznea
2020-07-22 14:43     ` Claudiu.Beznea
2020-07-23 16:28     ` Claudiu.Beznea
2020-07-23 16:28       ` Claudiu.Beznea
2020-07-23 16:33       ` Cristian.Birsan
2020-07-23 16:33         ` Cristian.Birsan
2020-07-22 13:44 ` [PATCH v3 2/6] dt-bindings: usb: atmel: Update DT bindings documentation for sam9x60 cristian.birsan
2020-07-22 13:44   ` cristian.birsan
2020-07-22 13:44 ` [PATCH v3 3/6] usb: gadget: udc: atmel: simplify endpoint allocation cristian.birsan
2020-07-22 13:44   ` cristian.birsan
2020-07-22 13:44 ` [PATCH v3 4/6] usb: gadget: udc: atmel: use 1 bank endpoints for control transfers cristian.birsan
2020-07-22 13:44   ` cristian.birsan
2020-07-22 13:44 ` [PATCH v3 5/6] usb: gadget: udc: atmel: update endpoint allocation for sam9x60 cristian.birsan
2020-07-22 13:44   ` cristian.birsan
2020-07-22 13:44 ` [PATCH v3 6/6] ARM: dts: at91: sam9x60ek: enable usb device cristian.birsan
2020-07-22 13:44   ` cristian.birsan

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.