usb: host: xhci-plat: add support for the Armada 375/38x XHCI controllers
The Armada 375 and 38x SoCs come with an XHCI controller that requires some specific initialization related to the MBus windows configuration. This patch adds the support for this special configuration as an XHCI quirk executed during probe. Two new compatible strings are added to identify the Armada 375 and Armada 38x XHCI controllers, and therefore enable the relevant quirk. Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bu işleme şunda yer alıyor:

işlemeyi yapan:
Greg Kroah-Hartman

ebeveyn
4718c17740
işleme
9737479285
@@ -19,6 +19,7 @@
|
||||
#include <linux/slab.h>
|
||||
|
||||
#include "xhci.h"
|
||||
#include "xhci-mvebu.h"
|
||||
|
||||
static void xhci_plat_quirks(struct device *dev, struct xhci_hcd *xhci)
|
||||
{
|
||||
@@ -109,6 +110,15 @@ static int xhci_plat_probe(struct platform_device *pdev)
|
||||
if (!res)
|
||||
return -ENODEV;
|
||||
|
||||
if (of_device_is_compatible(pdev->dev.of_node,
|
||||
"marvell,armada-375-xhci") ||
|
||||
of_device_is_compatible(pdev->dev.of_node,
|
||||
"marvell,armada-380-xhci")) {
|
||||
ret = xhci_mvebu_mbus_init_quirk(pdev);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Initialize dma_mask and coherent_dma_mask to 32-bits */
|
||||
ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
|
||||
if (ret)
|
||||
@@ -253,6 +263,8 @@ static const struct dev_pm_ops xhci_plat_pm_ops = {
|
||||
static const struct of_device_id usb_xhci_of_match[] = {
|
||||
{ .compatible = "generic-xhci" },
|
||||
{ .compatible = "xhci-platform" },
|
||||
{ .compatible = "marvell,armada-375-xhci"},
|
||||
{ .compatible = "marvell,armada-380-xhci"},
|
||||
{ },
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, usb_xhci_of_match);
|
||||
|
Yeni konuda referans
Bir kullanıcı engelle