| From 23ca96ebebce4b4e3dbe8968a5f20cd25b300e56 Mon Sep 17 00:00:00 2001 |
| From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> |
| Date: Fri, 11 Nov 2016 15:13:27 +0200 |
| Subject: [PATCH 114/299] usb: host: xhci: plat: add support for Renesas |
| r8a7796 SoC |
| |
| 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> |
| (cherry picked from commit 3f1dae6b19c9b4ba51ad016e30ec17399819bb6d) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| Documentation/devicetree/bindings/usb/usb-xhci.txt | 1 + |
| drivers/usb/host/xhci-plat.c | 9 +++++++++ |
| drivers/usb/host/xhci-rcar.c | 1 + |
| 3 files changed, 11 insertions(+) |
| |
| --- a/Documentation/devicetree/bindings/usb/usb-xhci.txt |
| +++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt |
| @@ -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) |
| --- a/drivers/usb/host/xhci-plat.c |
| +++ b/drivers/usb/host/xhci-plat.c |
| @@ -100,6 +100,12 @@ static const struct xhci_plat_priv xhci_ |
| .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", |
| @@ -124,6 +130,9 @@ static const struct of_device_id usb_xhc |
| .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, |
| }, { |
| --- a/drivers/usb/host/xhci-rcar.c |
| +++ b/drivers/usb/host/xhci-rcar.c |
| @@ -95,6 +95,7 @@ static int xhci_rcar_is_gen3(struct devi |
| 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"); |
| } |
| |