[linux-yocto] [PATCH 01/94] drivers/usb: LSI AXM5500 USB driver support

Paul Butler butler.paul at gmail.com
Thu Nov 7 17:12:15 PST 2013


From: Niraj Desai <nirajvdesai at 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.rao at lsi.com>
Signed-off-by: Niraj Desai <nirajvdesai at 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




More information about the linux-yocto mailing list