usb: host: xhci: plat: add support for Renesas r8a7796 SoC
authorYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Fri, 11 Nov 2016 13:13:27 +0000 (15:13 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 Nov 2016 09:18:22 +0000 (10:18 +0100)
This patch adds support for Renesas r8a7796 SoC. This SoC is not
compatible with r8a7795 because using firmware version differs.

Since the "V2" firmware can be used on both r8a7795 (es1.x) and r8a7796,
the "renesas,rcar-gen3-xhci" keeps to use the "V2" for now.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Documentation/devicetree/bindings/usb/usb-xhci.txt
drivers/usb/host/xhci-plat.c
drivers/usb/host/xhci-rcar.c

index 966885c636d02919c0d80a36a0b76230685a6e54..0b7d8576001c50804b3062144e8b2fec94bcdaab 100644 (file)
@@ -11,6 +11,7 @@ Required properties:
     - "renesas,xhci-r8a7791" for r8a7791 SoC
     - "renesas,xhci-r8a7793" for r8a7793 SoC
     - "renesas,xhci-r8a7795" for r8a7795 SoC
+    - "renesas,xhci-r8a7796" for r8a7796 SoC
     - "renesas,rcar-gen2-xhci" for a generic R-Car Gen2 compatible device
     - "renesas,rcar-gen3-xhci" for a generic R-Car Gen3 compatible device
     - "xhci-platform" (deprecated)
index ed56bf9ed885fbb3766b6a30c9ac786023d351ec..ddfab301e36658adccde76b9a47141b39a3508c7 100644 (file)
@@ -100,6 +100,12 @@ static const struct xhci_plat_priv xhci_plat_renesas_rcar_gen3 = {
        .plat_start = xhci_rcar_start,
 };
 
+static const struct xhci_plat_priv xhci_plat_renesas_rcar_r8a7796 = {
+       .firmware_name = XHCI_RCAR_FIRMWARE_NAME_V3,
+       .init_quirk = xhci_rcar_init_quirk,
+       .plat_start = xhci_rcar_start,
+};
+
 static const struct of_device_id usb_xhci_of_match[] = {
        {
                .compatible = "generic-xhci",
@@ -123,6 +129,9 @@ static const struct of_device_id usb_xhci_of_match[] = {
        }, {
                .compatible = "renesas,xhci-r8a7795",
                .data = &xhci_plat_renesas_rcar_gen3,
+       }, {
+               .compatible = "renesas,xhci-r8a7796",
+               .data = &xhci_plat_renesas_rcar_r8a7796,
        }, {
                .compatible = "renesas,rcar-gen2-xhci",
                .data = &xhci_plat_renesas_rcar_gen2,
index ced4a76330ce3e3ec851f6d72bea168af7ebfbb5..d28df386e780bd04608ad199535ee326119b932c 100644 (file)
@@ -95,6 +95,7 @@ static int xhci_rcar_is_gen3(struct device *dev)
        struct device_node *node = dev->of_node;
 
        return of_device_is_compatible(node, "renesas,xhci-r8a7795") ||
+               of_device_is_compatible(node, "renesas,xhci-r8a7796") ||
                of_device_is_compatible(node, "renesas,rcar-gen3-xhci");
 }