From: Niraj Desai <nirajvde...@gmail.com>

Added USB driver support for LSI AXM5500 device.
The USB s/w workarounds apply only to older PPC 34xx devices
hence added Kconfig option CONFIG_LSI_USB_SW_WORKAROUND
to select s/w workaround for ACP34xx devices.
Renamed CONFIG_LSI_PCI option to CONFIG_LSI_PPC_PCI

Signed-off-by: SangeethaRao <sangeetha....@lsi.com>
Signed-off-by: Niraj Desai <nirajvde...@gmail.com>
---
 arch/powerpc/sysdev/Kconfig     | 2 +-
 arch/powerpc/sysdev/Makefile    | 2 +-
 drivers/usb/host/Kconfig        | 8 +++++++-
 drivers/usb/host/ehci-ci13612.c | 6 ++++++
 4 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/sysdev/Kconfig b/arch/powerpc/sysdev/Kconfig
index 4b68792..1ea267b 100644
--- a/arch/powerpc/sysdev/Kconfig
+++ b/arch/powerpc/sysdev/Kconfig
@@ -2,7 +2,7 @@
 # see Documentation/kbuild/kconfig-language.txt.
 #
 
-config LSI_PCI
+config LSI_PPC_PCI
        bool "LSI ACP34XX PCIe support"
        default y
         help
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile
index ef37f84..6354d1c 100644
--- a/arch/powerpc/sysdev/Makefile
+++ b/arch/powerpc/sysdev/Makefile
@@ -40,7 +40,7 @@ obj-$(CONFIG_4xx)             += uic.o
 obj-$(CONFIG_4xx_SOC)          += ppc4xx_soc.o
 obj-$(CONFIG_XILINX_VIRTEX)    += xilinx_intc.o
 obj-$(CONFIG_XILINX_PCI)       += xilinx_pci.o
-obj-$(CONFIG_LSI_PCI)          += lsi_pci.o
+obj-$(CONFIG_LSI_PPC_PCI)      += lsi_pci.o
 obj-$(CONFIG_OF_RTC)           += of_rtc.o
 ifeq ($(CONFIG_PCI),y)
 ifeq ($(CONFIG_LSI_PCI),n)
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index 7748646..55de8b0 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -4,6 +4,12 @@
 comment "USB Host Controller Drivers"
        depends on USB
 
+config LSI_USB_SW_WORKAROUND
+       bool "LSI USB SW Workaround for ACP34xx devices"
+       default n
+       help
+         LSI USB SW Workaround for ACP34xx devices
+
 config USB_C67X00_HCD
        tristate "Cypress C67x00 HCD support"
        depends on USB
@@ -537,7 +543,7 @@ config USB_SL811_HCD
        help
          The SL811HS is a single-port USB controller that supports either
          host side or peripheral side roles.  Enable this option if your
-         board has this chip, and you want to use it as a host controller. 
+         board has this chip, and you want to use it as a host controller.
          If unsure, say N.
 
          To compile this driver as a module, choose M here: the
diff --git a/drivers/usb/host/ehci-ci13612.c b/drivers/usb/host/ehci-ci13612.c
index 6af6a4d..cf0b2e4 100644
--- a/drivers/usb/host/ehci-ci13612.c
+++ b/drivers/usb/host/ehci-ci13612.c
@@ -68,7 +68,10 @@ static void ci13612_usb_setup(struct usb_hcd *hcd)
 /* called after powerup, by probe or system-pm "wakeup" */
 static int ehci_ci13612_reinit(struct ehci_hcd *ehci)
 {
+#ifdef CONFIG_LSI_USB_SW_WORKAROUND
+       /* S/W workarounds are not needed in AXM55xx */
        ci13612_usb_setup(ehci_to_hcd(ehci));
+#endif
        ehci_port_power(ehci, 0);
 
        return 0;
@@ -114,6 +117,7 @@ static int ehci_run_fix(struct usb_hcd *hcd)
        u32 port_status;
        unsigned burst_size;
        int retval;
+#ifdef CONFIG_LSI_USB_SW_WORKAROUND
 
        /* Fix HW errata 0003256: Do not enable USBCMD.RS for some time after
         * the USB reset has been completed (PORTSCx.PR=0). This ensures that
@@ -147,6 +151,8 @@ static int ehci_run_fix(struct usb_hcd *hcd)
        burst_size = (burst_size & 0xffff00ff) | 0x4000;        /* TXPBURST */
        ehci_writel(ehci, burst_size, &ehci->regs->reserved[1]);
 
+#endif
+
        return 0;
 }
 
-- 
1.8.3.4

_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to