usb: host: xhci-plat: add support for the R-Car H2 and M2 xHCI controllers
Subsystems (4)
PATCH v2 2/3 usb: host: xhci-plat: add support for the R-Car H2 and M2 xHCI controllers
The R-Car H2 and M2 SoCs come with an xHCI controller that requires some specific initializations related to the firmware downloading and some specific registers. This patch adds the support for this special configuration as an xHCI quirk executed during probe and start.
--- drivers/usb/host/Kconfig | 8 +++ drivers/usb/host/Makefile | 3 + drivers/usb/host/xhci-plat.c | 18 +++++ drivers/usb/host/xhci-rcar.c | 160 ++++++++++++++++++++++++++++++++++++++++++ drivers/usb/host/xhci-rcar.h | 27 +++++++ 5 files changed, 216 insertions(+) create mode 100644 drivers/usb/host/xhci-rcar.c create mode 100644 drivers/usb/host/xhci-rcar.h
drivers/usb/host/Kconfig +8 -0
@@ -37,6 +37,14 @@ config USB_XHCI_MVEBU Say 'Y' to enable the support for the xHCI host controller found in Marvell Armada 375/38x ARM SOCs. +config USB_XHCI_RCAR + tristate "xHCI support for Renesas R-Car SoCs" + select USB_XHCI_PLATFORM + depends on ARCH_SHMOBILE || COMPILE_TEST + ---help--- + Say 'Y' to enable the support for the xHCI host controller + found in Renesas R-Car ARM SoCs. + endif # USB_XHCI_HCD config USB_EHCI_HCD
drivers/usb/host/Makefile +3 -0
@@ -22,6 +22,9 @@ ifneq ($(CONFIG_USB_XHCI_PLATFORM), ) ifneq ($(CONFIG_USB_XHCI_MVEBU), ) xhci-hcd-y += xhci-mvebu.o endif +ifneq ($(CONFIG_USB_XHCI_RCAR), ) + xhci-hcd-y += xhci-rcar.o +endif endif obj-$(CONFIG_USB_WHCI_HCD) += whci/
drivers/usb/host/xhci-plat.c +18 -0
@@ -21,6 +21,7 @@#include "xhci.h" #include "xhci-mvebu.h" +#include "xhci-rcar.h" static void xhci_plat_quirks (struct device *dev,struct xhci_hcd *xhci) {
@@ -40,6 +41,12 @@ static int xhci_plat_setup(struct usb_hcd *hcd)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" )) +xhci_rcar_start (hcd); +return xhci_run (hcd); }
@@ -181,6 +188,15 @@ static int xhci_plat_probe(struct platform_device *pdev) goto disable_phy; } +if (of_device_is_compatible (pdev->dev.of_node, +"renesas,xhci-r8a7790" ) || +of_device_is_compatible (pdev->dev.of_node, +"renesas,xhci-r8a7791" )) { + ret =xhci_rcar_init_quirk (pdev); +if (ret) + goto power_off_phy; + } + ret =usb_add_hcd (hcd, irq,IRQF_SHARED );if (ret) goto power_off_phy;
@@ -295,6 +311,8 @@ 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-r8a7790"}, + { .compatible = "renesas,xhci-r8a7791"}, { }, };MODULE_DEVICE_TABLE (of, usb_xhci_of_match);
drivers/usb/host/xhci-rcar.c new file +160 -0
160 lines not on this page · raw message
drivers/usb/host/xhci-rcar.h new file +27 -0
@@ -0,0 +1,27 @@ +/* +* drivers/usb/host/xhci-rcar.h +* +* Copyright (C) 2014 Renesas Electronics Corporation +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* version 2 as published by the Free Software Foundation. +*/ + +#ifndef _XHCI_RCAR_H +#define _XHCI_RCAR_H + +#if IS_ENABLED (CONFIG_USB_XHCI_RCAR ) +void xhci_rcar_start (struct usb_hcd *hcd); +int xhci_rcar_init_quirk (struct platform_device *pdev); +#else +static inline void xhci_rcar_start (struct usb_hcd *hcd) +{ +} + +static inline int xhci_rcar_init_quirk (struct platform_device *pdev) +{ +return 0 ; +} +#endif +#endif /* _XHCI_RCAR_H */
Signature · 5 lines
1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 114 lines · Yoshihiro Shimoda
The R-Car H2 and M2 SoCs come with an xHCI controller that requires some specific initializations related to the firmware downloading and some specific registers. This patch adds the support for this special configuration as an xHCI quirk executed during probe and start.
Signed-off-by Yoshihiro Shimoda <[email protected]>--- drivers/usb/host/Kconfig | 8 +++ drivers/usb/host/Makefile | 3 + drivers/usb/host/xhci-plat.c | 18 +++++ drivers/usb/host/xhci-rcar.c | 160 ++++++++++++++++++++++++++++++++++++++++++ drivers/usb/host/xhci-rcar.h | 27 +++++++ 5 files changed, 216 insertions(+) create mode 100644 drivers/usb/host/xhci-rcar.c create mode 100644 drivers/usb/host/xhci-rcar.hdrivers/usb/host/Kconfig +8
-0@@ -37,6 +37,14 @@ config USB_XHCI_MVEBU Say 'Y' to enable the support for the xHCI host controller found in Marvell Armada 375/38x ARM SOCs. +config USB_XHCI_RCAR + tristate "xHCI support for Renesas R-Car SoCs" + select USB_XHCI_PLATFORM + depends on ARCH_SHMOBILE || COMPILE_TEST + ---help--- + Say 'Y' to enable the support for the xHCI host controller + found in Renesas R-Car ARM SoCs. + endif # USB_XHCI_HCD config USB_EHCI_HCDdrivers/usb/host/Makefile +3
-0@@ -22,6 +22,9 @@ ifneq ($(CONFIG_USB_XHCI_PLATFORM), ) ifneq ($(CONFIG_USB_XHCI_MVEBU), ) xhci-hcd-y += xhci-mvebu.o endif +ifneq ($(CONFIG_USB_XHCI_RCAR), ) + xhci-hcd-y += xhci-rcar.o +endif endif obj-$(CONFIG_USB_WHCI_HCD) += whci/drivers/usb/host/xhci-plat.c +18
-0@@ -21,6 +21,7 @@#include "xhci.h" #include "xhci-mvebu.h" +#include "xhci-rcar.h" static void xhci_plat_quirks (struct device *dev,struct xhci_hcd *xhci) {@@ -40,6 +41,12 @@ static int xhci_plat_setup(struct usb_hcd *hcd)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" )) +xhci_rcar_start (hcd); +return xhci_run (hcd); }@@ -181,6 +188,15 @@ static int xhci_plat_probe(struct platform_device *pdev) goto disable_phy; } +if (of_device_is_compatible (pdev->dev.of_node, +"renesas,xhci-r8a7790" ) || +of_device_is_compatible (pdev->dev.of_node, +"renesas,xhci-r8a7791" )) { + ret =xhci_rcar_init_quirk (pdev); +if (ret) + goto power_off_phy; + } + ret =usb_add_hcd (hcd, irq,IRQF_SHARED );if (ret) goto power_off_phy;@@ -295,6 +311,8 @@ 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-r8a7790"}, + { .compatible = "renesas,xhci-r8a7791"}, { }, };MODULE_DEVICE_TABLE (of, usb_xhci_of_match);drivers/usb/host/xhci-rcar.c new file +9
-0@@ -0,0 +1,160 @@ +/* +* xHCI host controller driver for R-Car SoCs +* +* Copyright (C) 2014 Renesas Electronics Corporation +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* version 2 as published by the Free Software Foundation. +*/
drivers/usb/host/xhci-rcar.c line 19
Quoted 10 lines
drivers/usb/host/xhci-rcar.c new file +10
-0+ +#include <linux/firmware.h> +#include <linux/module.h> +#include <linux/platform_device.h> +#include <linux/usb/phy.h> + +#include "xhci.h" +#include "xhci-rcar.h" + +#define FIRMWARE_NAME "r8a779x_usb3_v1.dlmem"
Shouldn't you also add a:
MODULE_FIRMWARE(FIRMWARE_NAME);
line to this file so that the automatic tools can pick it up properly?
thanks,
greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi,
Quoted 1 line · Greg Kroah-Hartman
On Wed, May 28, 2014 at 08:23:09PM +0900, Yoshihiro Shimoda wrote:
< snip >
Quoted 5 lines
Quoted 1 line
+#define
FIRMWARE_NAME"r8a779x_usb3_v1.dlmem"Shouldn't you also add a:
MODULE_FIRMWARE(FIRMWARE_NAME);line to this file so that the automatic tools can pick it up properly?
Thank you for the point! I will add it.
Best regards,
Yoshihiro Shimoda
Quoted 4 lines
thanks,
greg k-h
Signature · 2 lines
Yoshihiro Shimoda EC No.
Greg Kroah-Hartman
maintainerQuoted 6 lines · Yoshihiro Shimoda
The R-Car H2 and M2 SoCs come with an xHCI controller that requires some specific initializations related to the firmware downloading and some specific registers. This patch adds the support for this special configuration as an xHCI quirk executed during probe and start.
Signed-off-by Yoshihiro Shimoda <[email protected]>
Quoted 9 lines
--- drivers/usb/host/Kconfig | 8 +++ drivers/usb/host/Makefile | 3 + drivers/usb/host/xhci-plat.c | 18 +++++ drivers/usb/host/xhci-rcar.c | 160 ++++++++++++++++++++++++++++++++++++++++++ drivers/usb/host/xhci-rcar.h | 27 +++++++ 5 files changed, 216 insertions(+) create mode 100644 drivers/usb/host/xhci-rcar.c create mode 100644 drivers/usb/host/xhci-rcar.h
This doesn't apply cleanly to my tree, can you please refresh it and resend?
thanks,
greg k-h
A message that is not in the archive (sent off-list or not yet received): [email protected]
Hi,
Quoted 17 lines · Greg Kroah-Hartman
Quoted 6 lines · Yoshihiro Shimoda
The R-Car H2 and M2 SoCs come with an xHCI controller that requires some specific initializations related to the firmware downloading and some specific registers. This patch adds the support for this special configuration as an xHCI quirk executed during probe and start.
Signed-off-by Yoshihiro Shimoda <[email protected]>Quoted 9 lines
--- drivers/usb/host/Kconfig | 8 +++ drivers/usb/host/Makefile | 3 + drivers/usb/host/xhci-plat.c | 18 +++++ drivers/usb/host/xhci-rcar.c | 160 ++++++++++++++++++++++++++++++++++++++++++ drivers/usb/host/xhci-rcar.h | 27 +++++++ 5 files changed, 216 insertions(+) create mode 100644 drivers/usb/host/xhci-rcar.c create mode 100644 drivers/usb/host/xhci-rcar.h
Quoted 2 lines
This doesn't apply cleanly to my tree, can you please refresh it and resend?
Sure. Actually, this patch depends on the folloing additional patch:
http://marc.info/?l=linux-usb&m=140025742005303&w=2
And, the additional patch needs to fix some things. So, I will fix it and submit these patches.
Best regards,
Yoshihiro Shimoda
Quoted 4 lines
thanks,
greg k-h
Signature · 6 lines
Yoshihiro Shimoda EC No. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html