Skip to contentSkip to conversation

Add XHCI support to r8a7743

PATCH New Fabrizio Castro 2 participants 6 messages Mar 9, 2018 – Apr 10, 2018

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

cover Add XHCI support to r8a7743

Dear All,

this series adds XHCI support to r8a7743.
The only patch that hasn't been backported is:
"usb: host: xhci-plat: Add r8a7743 support"

The reason for the new commit is that the backporting of the generic compatible string for R-Car Gen2 would have brought along a few unnecessary bits and pieces, a new commit seemed to address the goal more reliably.

Thanks,

Fabrizio Castro (3):
usb: host: xhci-plat: Add r8a7743 support
dt-bindings: usb-xhci: Document r8a7743 support
ARM: dts: r8a7743: Add xhci support to SoC dtsi

Simon Horman (1):
ARM: shmobile: enable XHCI_RCAR in defconfig

 Documentation/devicetree/bindings/usb/usb-xhci.txt |  4 ++--
 arch/arm/boot/dts/r8a7743.dtsi                     | 18 ++++++++++++++++++
 arch/arm/configs/shmobile_defconfig                |  2 ++
 drivers/usb/host/xhci-plat.c                       |  7 +++++--
 4 files changed, 27 insertions(+), 4 deletions(-)
Signature · 1 line
2.7.4
#1 lore raw

PATCH 1/4 usb: host: xhci-plat: Add r8a7743 support

This patch adds xhci r8a7743 driver support.

---
 drivers/usb/host/xhci-plat.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
drivers/usb/host/xhci-plat.c +5 -2
index 7afd607..8e6ec16 100644
@@ -53,7 +53,8 @@ static int xhci_plat_setup(struct usb_hcd *hcd)
 	int ret;
 
 	if (of_device_is_compatible(of_node, "renesas,xhci-r8a7790") ||
-	    of_device_is_compatible(of_node, "renesas,xhci-r8a7791")) {
+	    of_device_is_compatible(of_node, "renesas,xhci-r8a7791") ||
+	    of_device_is_compatible(of_node, "renesas,xhci-r8a7743")) {
 		ret = xhci_rcar_init_quirk(hcd);
 		if (ret)
 			return ret;
@@ -67,7 +68,8 @@ static int xhci_plat_start(struct usb_hcd *hcd)
 	struct device_node *of_node = hcd->self.controller->of_node;
 
 	if (of_device_is_compatible(of_node, "renesas,xhci-r8a7790") ||
-	    of_device_is_compatible(of_node, "renesas,xhci-r8a7791"))
+	    of_device_is_compatible(of_node, "renesas,xhci-r8a7791") ||
+	    of_device_is_compatible(of_node, "renesas,xhci-r8a7743"))
 		xhci_rcar_start(hcd);
 
 	return xhci_run(hcd);
@@ -267,6 +269,7 @@ static const struct of_device_id usb_xhci_of_match[] = {
 	{ .compatible = "xhci-platform" },
 	{ .compatible = "marvell,armada-375-xhci"},
 	{ .compatible = "marvell,armada-380-xhci"},
+	{ .compatible = "renesas,xhci-r8a7743"},
 	{ .compatible = "renesas,xhci-r8a7790"},
 	{ .compatible = "renesas,xhci-r8a7791"},
 	{ },
Signature · 1 line
2.7.4
#2 lore raw

PATCH 2/4 dt-bindings: usb-xhci: Document r8a7743 support

In reply to Fabrizio Castro

Document r8a7743 xhci support. The driver will use the fallback compatible string "renesas,rcar-gen2-xhci", therefore no driver change is needed.

(cherry picked from commit 5fd29937dec4b64aa91a3207742cd8c720cd0595)

(removed "renesas,rcar-gen2-xhci" fallback compatible string)

---
 Documentation/devicetree/bindings/usb/usb-xhci.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Documentation/devicetree/bindings/usb/usb-xhci.txt +2 -2
index 86f67f0..fce0320 100644
@@ -3,8 +3,8 @@ USB xHCI controllers
 Required properties:
   - compatible: should be one of "generic-xhci",
     "marvell,armada-375-xhci", "marvell,armada-380-xhci",
-    "renesas,xhci-r8a7790", "renesas,xhci-r8a7791" (deprecated:
-    "xhci-platform").
+    "renesas,xhci-r8a7790", "renesas,xhci-r8a7791", "renesas,xhci-r8a7743"
+    (deprecated: "xhci-platform").
   - reg: should contain address and length of the standard XHCI
     register set for the device.
   - interrupts: one XHCI interrupt should be described here.
Signature · 1 line
2.7.4
#3 lore raw

PATCH 3/4 ARM: dts: r8a7743: Add xhci support to SoC dtsi

In reply to Fabrizio Castro

Add node for xhci. Boards DT files will enable it if needed.

(cherry picked from commit b6d3b649441936621c87b79bff8dd436e2397e3c)

(modified clocks and power-domains properties, removed resets property)

---
 arch/arm/boot/dts/r8a7743.dtsi | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
arch/arm/boot/dts/r8a7743.dtsi +18 -0
index a6f953b..822757e 100644
@@ -843,6 +843,24 @@
 			status = "disabled";
 		};
 
+		/*
+		 * pci1 and xhci share the same phy, therefore only one of them
+		 * can be active at any one time. If both of them are enabled,
+		 * a race condition will determine who'll control the phy.
+		 * A firmware file is needed by the xhci driver in order for
+		 * USB 3.0 to work properly.
+		 */
+		xhci: usb at ee000000 {
+			compatible = "renesas,xhci-r8a7743";
+			reg = <0 0xee000000 0 0xc00>;
+			interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&mstp3_clks R8A7743_CLK_SSUSB>;
+			power-domains = <&cpg_clocks>;
+			phys = <&usb2 1>;
+			phy-names = "usb";
+			status = "disabled";
+		};
+
 		clocks {
 			#address-cells = <2>;
 			#size-cells = <2>;
Signature · 1 line
2.7.4
#4 lore raw

PATCH 4/4 ARM: shmobile: enable XHCI_RCAR in defconfig

In reply to Fabrizio Castro

From: Simon Horman <[email protected]>

(cherry picked from commit ae6b99bc6928d13856172f287ee21be2eac39673)
---
 arch/arm/configs/shmobile_defconfig | 2 ++
 1 file changed, 2 insertions(+)
arch/arm/configs/shmobile_defconfig +2 -0
index 2e79332..30a3424 100644
@@ -162,6 +162,8 @@ CONFIG_SND_SOC_RSRC_CARD=y
 CONFIG_SND_SOC_AK4642=y
 CONFIG_SND_SOC_WM8978=y
 CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_RCAR=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_OHCI_HCD=y
 CONFIG_USB_R8A66597_HCD=y
Signature · 1 line
2.7.4
#5 lore raw

cover Add XHCI support to r8a7743

In reply to Fabrizio Castro
Quoted 10 lines · Fabrizio Castro

Dear All,

this series adds XHCI support to r8a7743.
The only patch that hasn't been backported is:
"usb: host: xhci-plat: Add r8a7743 support"

The reason for the new commit is that the backporting of the generic compatible string for R-Car Gen2 would have brought along a few unnecessary bits and pieces, a new commit seemed to address the goal more reliably.

That seems reasonable. I've applied this series, thanks.

Ben.

Quoted 16 lines

Thanks,

Fabrizio Castro (3):
? usb: host: xhci-plat: Add r8a7743 support
? dt-bindings: usb-xhci: Document r8a7743 support
? ARM: dts: r8a7743: Add xhci support to SoC dtsi

Simon Horman (1):
? ARM: shmobile: enable XHCI_RCAR in defconfig

?Documentation/devicetree/bindings/usb/usb-xhci.txt |??4 ++--
?arch/arm/boot/dts/r8a7743.dtsi?????????????????????| 18 ++++++++++++++++++
?arch/arm/configs/shmobile_defconfig????????????????|??2 ++
?drivers/usb/host/xhci-plat.c???????????????????????|??7 +++++--

?4 files changed, 27 insertions(+), 4 deletions(-)

Signature · 2 lines
Ben Hutchings
Software Developer, Codethink Ltd.