usbdebug: Move under drivers/usb

Also relocate and split header files, there is some interest
for EHCI debug support without PCI.

Change-Id: Ibe91730eb72dfe0634fb38bdd184043495e2fb08
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/5129
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@google.com>
diff --git a/src/arch/x86/lib/romstage_console.c b/src/arch/x86/lib/romstage_console.c
index 278ef1a..0eb3dc2 100644
--- a/src/arch/x86/lib/romstage_console.c
+++ b/src/arch/x86/lib/romstage_console.c
@@ -23,7 +23,7 @@
 #include <uart8250.h>
 #endif
 #if CONFIG_USBDEBUG
-#include <usbdebug.h>
+#include <console/usb.h>
 #endif
 #if CONFIG_CONSOLE_NE2K
 #include <console/ne2k.h>
diff --git a/src/console/usbdebug_console.c b/src/console/usbdebug_console.c
index 8df6417..99726be 100644
--- a/src/console/usbdebug_console.c
+++ b/src/console/usbdebug_console.c
@@ -20,7 +20,7 @@
 
 #include <string.h>
 #include <console/console.h>
-#include <usbdebug.h>
+#include <console/usb.h>
 
 static void dbgp_init(void)
 {
diff --git a/src/drivers/Makefile.inc b/src/drivers/Makefile.inc
index 34ae62e..4b63a8f 100644
--- a/src/drivers/Makefile.inc
+++ b/src/drivers/Makefile.inc
@@ -29,6 +29,7 @@
 subdirs-y += realtek
 subdirs-y += sil
 subdirs-y += trident
+subdirs-y += usb
 subdirs-y += ics
 subdirs-y += spi
 subdirs-y += ti
diff --git a/src/drivers/usb/Makefile.inc b/src/drivers/usb/Makefile.inc
new file mode 100644
index 0000000..43931a9
--- /dev/null
+++ b/src/drivers/usb/Makefile.inc
@@ -0,0 +1,3 @@
+romstage-$(CONFIG_USBDEBUG_IN_ROMSTAGE) += ehci_debug.c
+
+ramstage-$(CONFIG_USBDEBUG) += ehci_debug.c
diff --git a/src/include/ehci.h b/src/drivers/usb/ehci.h
similarity index 100%
rename from src/include/ehci.h
rename to src/drivers/usb/ehci.h
diff --git a/src/lib/usbdebug.c b/src/drivers/usb/ehci_debug.c
similarity index 99%
rename from src/lib/usbdebug.c
rename to src/drivers/usb/ehci_debug.c
index 885599b..94625c0 100644
--- a/src/lib/usbdebug.c
+++ b/src/drivers/usb/ehci_debug.c
@@ -20,6 +20,8 @@
 
 #include <stddef.h>
 #include <console/console.h>
+#include <console/usb.h>
+#include <device/pci_ehci.h>
 #include <arch/io.h>
 #include <device/pci.h>
 #include <device/pci_def.h>
@@ -28,9 +30,8 @@
 #include <string.h>
 #include <cbmem.h>
 
-#include <usb_ch9.h>
-#include <ehci.h>
-#include <usbdebug.h>
+#include "usb_ch9.h"
+#include "ehci.h"
 
 
 #define DBGP_EP_VALID		(1<<0)
diff --git a/src/include/usb_ch9.h b/src/drivers/usb/usb_ch9.h
similarity index 100%
rename from src/include/usb_ch9.h
rename to src/drivers/usb/usb_ch9.h
diff --git a/src/include/console/console.h b/src/include/console/console.h
index 5750b4a..c5f5297 100644
--- a/src/include/console/console.h
+++ b/src/include/console/console.h
@@ -28,7 +28,7 @@
 #include <uart.h>
 #endif
 #if CONFIG_USBDEBUG && !defined(__ROMCC__)
-#include <usbdebug.h>
+#include <console/usb.h>
 #endif
 #if CONFIG_CONSOLE_NE2K
 #include <console/ne2k.h>
diff --git a/src/include/console/usb.h b/src/include/console/usb.h
new file mode 100644
index 0000000..47f3d74
--- /dev/null
+++ b/src/include/console/usb.h
@@ -0,0 +1,36 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2007 AMD
+ * Written by Yinghai Lu <yinghai.lu@amd.com> for AMD.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA, 02110-1301 USA
+ */
+
+#ifndef _CONSOLE_USB_H_
+#define _CONSOLE_USB_H_
+
+struct dbgp_pipe;
+
+int usbdebug_init(void);
+
+struct dbgp_pipe *dbgp_console_output(void);
+struct dbgp_pipe *dbgp_console_input(void);
+int dbgp_ep_is_active(struct dbgp_pipe *pipe);
+int dbgp_bulk_write_x(struct dbgp_pipe *pipe, const char *bytes, int size);
+int dbgp_bulk_read_x(struct dbgp_pipe *pipe, void *data, int size);
+void usbdebug_tx_byte(struct dbgp_pipe *pipe, unsigned char data);
+void usbdebug_tx_flush(struct dbgp_pipe *pipe);
+
+#endif /* _CONSOLE_USB_H_ */
diff --git a/src/include/usbdebug.h b/src/include/device/pci_ehci.h
similarity index 76%
rename from src/include/usbdebug.h
rename to src/include/device/pci_ehci.h
index 926d658..4d3f746 100644
--- a/src/include/usbdebug.h
+++ b/src/include/device/pci_ehci.h
@@ -18,13 +18,15 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA, 02110-1301 USA
  */
 
-#ifndef USBDEBUG_H
-#define USBDEBUG_H
+#ifndef _PCI_EHCI_H_
+#define _PCI_EHCI_H_
+
+#include <arch/io.h>
+#include <device/device.h>
 
 #define EHCI_BAR_INDEX		0x10
 #define PCI_EHCI_CLASSCODE 	0x0c0320	/* USB2.0 with EHCI controller */
 
-typedef u32 pci_devfn_t;
 pci_devfn_t pci_ehci_dbg_dev(unsigned hcd_idx);
 unsigned long pci_ehci_base_regs(pci_devfn_t dev);
 void pci_ehci_dbg_set_port(pci_devfn_t dev, unsigned int port);
@@ -47,15 +49,4 @@
 #endif
 #endif
 
-struct dbgp_pipe;
-
-int usbdebug_init(void);
-
-struct dbgp_pipe *dbgp_console_output(void);
-struct dbgp_pipe *dbgp_console_input(void);
-int dbgp_ep_is_active(struct dbgp_pipe *pipe);
-int dbgp_bulk_write_x(struct dbgp_pipe *pipe, const char *bytes, int size);
-int dbgp_bulk_read_x(struct dbgp_pipe *pipe, void *data, int size);
-void usbdebug_tx_byte(struct dbgp_pipe *pipe, unsigned char data);
-void usbdebug_tx_flush(struct dbgp_pipe *pipe);
-#endif
+#endif /* _PCI_EHCI_H_ */
diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc
index 18b30ef..b1b47489 100644
--- a/src/lib/Makefile.inc
+++ b/src/lib/Makefile.inc
@@ -49,7 +49,6 @@
 romstage-$(CONFIG_CONSOLE_SERIAL8250MEM) += uart8250mem.c
 romstage-$(CONFIG_CONSOLE_NE2K) += ne2k.c
 romstage-$(CONFIG_SPKMODEM) += spkmodem.c
-romstage-$(CONFIG_USBDEBUG_IN_ROMSTAGE) += usbdebug.c
 
 ifeq ($(CONFIG_EARLY_CBMEM_INIT),y)
 romstage-$(CONFIG_COLLECT_TIMESTAMPS) += timestamp.c
@@ -92,7 +91,6 @@
 ramstage-$(CONFIG_CONSOLE_SERIAL8250) += uart8250.c
 ramstage-$(CONFIG_CONSOLE_SERIAL8250MEM) += uart8250mem.c
 ramstage-$(CONFIG_CONSOLE_CBMEM) += cbmem_console.c
-ramstage-$(CONFIG_USBDEBUG) += usbdebug.c
 ramstage-$(CONFIG_SPKMODEM) += spkmodem.c
 ramstage-$(CONFIG_BOOTSPLASH) += jpeg.c
 ramstage-$(CONFIG_TRACE) += trace.c
diff --git a/src/southbridge/amd/agesa/hudson/enable_usbdebug.c b/src/southbridge/amd/agesa/hudson/enable_usbdebug.c
index cce39255..258267e 100644
--- a/src/southbridge/amd/agesa/hudson/enable_usbdebug.c
+++ b/src/southbridge/amd/agesa/hudson/enable_usbdebug.c
@@ -22,7 +22,7 @@
 
 #include <stdint.h>
 #include <arch/io.h>
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include <device/pci_def.h>
 #include "hudson.h"
 
diff --git a/src/southbridge/amd/agesa/hudson/usb.c b/src/southbridge/amd/agesa/hudson/usb.c
index f5d0d4c..36eff6e 100644
--- a/src/southbridge/amd/agesa/hudson/usb.c
+++ b/src/southbridge/amd/agesa/hudson/usb.c
@@ -22,7 +22,7 @@
 #include <device/pci.h>
 #include <device/pci_ids.h>
 #include <device/pci_ops.h>
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include <arch/io.h>
 #include "hudson.h"
 
diff --git a/src/southbridge/amd/cimx/sb700/late.c b/src/southbridge/amd/cimx/sb700/late.c
index e2ecdc3..b03f13a 100644
--- a/src/southbridge/amd/cimx/sb700/late.c
+++ b/src/southbridge/amd/cimx/sb700/late.c
@@ -25,7 +25,7 @@
 #include <device/smbus.h>       /* smbus_bus_operations */
 #include <pc80/mc146818rtc.h>
 #include <console/console.h>    /* printk */
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include "lpc.h"                /* lpc_read_resources */
 #include "Platform.h"   /* Platfrom Specific Definitions */
 #include "sb_cimx.h"
diff --git a/src/southbridge/amd/cimx/sb800/late.c b/src/southbridge/amd/cimx/sb800/late.c
index 90b26ae..3a534cd 100644
--- a/src/southbridge/amd/cimx/sb800/late.c
+++ b/src/southbridge/amd/cimx/sb800/late.c
@@ -26,7 +26,7 @@
 #include <pc80/mc146818rtc.h>
 #include <console/console.h>	/* printk */
 #include <arch/acpi.h>
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include "lpc.h"		/* lpc_read_resources */
 #include "SBPLATFORM.h" 	/* Platfrom Specific Definitions */
 #include "cfg.h"		/* sb800 Cimx configuration */
diff --git a/src/southbridge/amd/cimx/sb900/late.c b/src/southbridge/amd/cimx/sb900/late.c
index d2ce72c..3cd603c 100644
--- a/src/southbridge/amd/cimx/sb900/late.c
+++ b/src/southbridge/amd/cimx/sb900/late.c
@@ -24,7 +24,7 @@
 #include <device/smbus.h>	/* smbus_bus_operations */
 #include <pc80/mc146818rtc.h>
 #include <console/console.h>	/* printk */
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include "lpc.h"		/* lpc_read_resources */
 #include "SbPlatform.h" 	/* Platfrom Specific Definitions */
 #include "chip.h" 		/* struct southbridge_amd_cimx_sb900_config */
diff --git a/src/southbridge/amd/sb600/enable_usbdebug.c b/src/southbridge/amd/sb600/enable_usbdebug.c
index 09fce2f..0f25ead 100644
--- a/src/southbridge/amd/sb600/enable_usbdebug.c
+++ b/src/southbridge/amd/sb600/enable_usbdebug.c
@@ -22,7 +22,7 @@
 
 #include <stdint.h>
 #include <arch/io.h>
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include <device/pci_def.h>
 #include "sb600.h"
 
diff --git a/src/southbridge/amd/sb600/usb.c b/src/southbridge/amd/sb600/usb.c
index d551661..d55f561 100644
--- a/src/southbridge/amd/sb600/usb.c
+++ b/src/southbridge/amd/sb600/usb.c
@@ -22,7 +22,7 @@
 #include <device/pci.h>
 #include <device/pci_ids.h>
 #include <device/pci_ops.h>
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include <arch/io.h>
 #include "sb600.h"
 
diff --git a/src/southbridge/amd/sb700/enable_usbdebug.c b/src/southbridge/amd/sb700/enable_usbdebug.c
index 57798c1..3d23da0 100644
--- a/src/southbridge/amd/sb700/enable_usbdebug.c
+++ b/src/southbridge/amd/sb700/enable_usbdebug.c
@@ -23,7 +23,7 @@
 
 #include <stdint.h>
 #include <arch/io.h>
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include <device/pci_def.h>
 #include "sb700.h"
 
diff --git a/src/southbridge/amd/sb700/usb.c b/src/southbridge/amd/sb700/usb.c
index d3a9f3e..77dcf2e 100644
--- a/src/southbridge/amd/sb700/usb.c
+++ b/src/southbridge/amd/sb700/usb.c
@@ -22,7 +22,7 @@
 #include <device/pci.h>
 #include <device/pci_ids.h>
 #include <device/pci_ops.h>
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include <arch/io.h>
 #include "sb700.h"
 
diff --git a/src/southbridge/amd/sb800/enable_usbdebug.c b/src/southbridge/amd/sb800/enable_usbdebug.c
index 34d7608..74e3d33 100644
--- a/src/southbridge/amd/sb800/enable_usbdebug.c
+++ b/src/southbridge/amd/sb800/enable_usbdebug.c
@@ -22,7 +22,7 @@
 
 #include <stdint.h>
 #include <arch/io.h>
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include <device/pci_def.h>
 #include "sb800.h"
 
diff --git a/src/southbridge/amd/sb800/usb.c b/src/southbridge/amd/sb800/usb.c
index 305a7e6..9304344 100644
--- a/src/southbridge/amd/sb800/usb.c
+++ b/src/southbridge/amd/sb800/usb.c
@@ -22,7 +22,7 @@
 #include <device/pci.h>
 #include <device/pci_ids.h>
 #include <device/pci_ops.h>
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include <arch/io.h>
 #include "sb800.h"
 
diff --git a/src/southbridge/intel/bd82x6x/usb_ehci.c b/src/southbridge/intel/bd82x6x/usb_ehci.c
index d2bf690..78f92d9 100644
--- a/src/southbridge/intel/bd82x6x/usb_ehci.c
+++ b/src/southbridge/intel/bd82x6x/usb_ehci.c
@@ -23,7 +23,7 @@
 #include <device/pci.h>
 #include <device/pci_ids.h>
 #include "pch.h"
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include <arch/io.h>
 
 static void usb_ehci_init(struct device *dev)
diff --git a/src/southbridge/intel/bd82x6x/usb_xhci.c b/src/southbridge/intel/bd82x6x/usb_xhci.c
index 2b8ae28..19c419f 100644
--- a/src/southbridge/intel/bd82x6x/usb_xhci.c
+++ b/src/southbridge/intel/bd82x6x/usb_xhci.c
@@ -23,7 +23,7 @@
 #include <device/pci.h>
 #include <device/pci_ids.h>
 #include "pch.h"
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include <arch/io.h>
 
 static void usb_xhci_init(struct device *dev)
diff --git a/src/southbridge/intel/common/usb_debug.c b/src/southbridge/intel/common/usb_debug.c
index 9fe22cd..fecd716 100644
--- a/src/southbridge/intel/common/usb_debug.c
+++ b/src/southbridge/intel/common/usb_debug.c
@@ -23,7 +23,7 @@
 #include <stdint.h>
 #include <arch/io.h>
 #include <console/console.h>
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include <device/pci_def.h>
 
 pci_devfn_t pci_ehci_dbg_dev(unsigned int hcd_idx)
diff --git a/src/southbridge/intel/i82801dx/usb2.c b/src/southbridge/intel/i82801dx/usb2.c
index 5dd5866..9e5c48e 100644
--- a/src/southbridge/intel/i82801dx/usb2.c
+++ b/src/southbridge/intel/i82801dx/usb2.c
@@ -24,7 +24,7 @@
 #include <device/pci.h>
 #include <device/pci_ids.h>
 #include <device/pci_ops.h>
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include "i82801dx.h"
 
 static void usb2_init(struct device *dev)
diff --git a/src/southbridge/intel/i82801ex/ehci.c b/src/southbridge/intel/i82801ex/ehci.c
index 045840a..28164c5 100644
--- a/src/southbridge/intel/i82801ex/ehci.c
+++ b/src/southbridge/intel/i82801ex/ehci.c
@@ -3,7 +3,7 @@
 #include <device/pci.h>
 #include <device/pci_ids.h>
 #include <device/pci_ops.h>
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include "i82801ex.h"
 
 static void ehci_init(struct device *dev)
diff --git a/src/southbridge/intel/i82801gx/usb_ehci.c b/src/southbridge/intel/i82801gx/usb_ehci.c
index 8dcda39..bb176c7 100644
--- a/src/southbridge/intel/i82801gx/usb_ehci.c
+++ b/src/southbridge/intel/i82801gx/usb_ehci.c
@@ -23,7 +23,7 @@
 #include <device/pci.h>
 #include <device/pci_ids.h>
 #include "i82801gx.h"
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include <arch/io.h>
 
 static void usb_ehci_init(struct device *dev)
diff --git a/src/southbridge/intel/i82801ix/usb_ehci.c b/src/southbridge/intel/i82801ix/usb_ehci.c
index b6c0edd..6276995 100644
--- a/src/southbridge/intel/i82801ix/usb_ehci.c
+++ b/src/southbridge/intel/i82801ix/usb_ehci.c
@@ -23,7 +23,7 @@
 #include <device/pci.h>
 #include <device/pci_ids.h>
 #include "i82801ix.h"
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 
 static void usb_ehci_init(struct device *dev)
 {
diff --git a/src/southbridge/intel/ibexpeak/usb_ehci.c b/src/southbridge/intel/ibexpeak/usb_ehci.c
index d941438..7dc7b03 100644
--- a/src/southbridge/intel/ibexpeak/usb_ehci.c
+++ b/src/southbridge/intel/ibexpeak/usb_ehci.c
@@ -24,7 +24,7 @@
 #include <device/pci.h>
 #include <device/pci_ids.h>
 #include "pch.h"
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include <arch/io.h>
 
 static void usb_ehci_init(struct device *dev)
diff --git a/src/southbridge/intel/lynxpoint/usb_ehci.c b/src/southbridge/intel/lynxpoint/usb_ehci.c
index 4382611..845129f 100644
--- a/src/southbridge/intel/lynxpoint/usb_ehci.c
+++ b/src/southbridge/intel/lynxpoint/usb_ehci.c
@@ -23,7 +23,7 @@
 #include <device/device.h>
 #include <device/pci.h>
 #include <device/pci_ids.h>
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include <arch/io.h>
 #include "pch.h"
 
diff --git a/src/southbridge/nvidia/ck804/enable_usbdebug.c b/src/southbridge/nvidia/ck804/enable_usbdebug.c
index d98bc98..97e8ecb 100644
--- a/src/southbridge/nvidia/ck804/enable_usbdebug.c
+++ b/src/southbridge/nvidia/ck804/enable_usbdebug.c
@@ -26,7 +26,7 @@
 
 #include <stdint.h>
 #include <arch/io.h>
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include <device/pci_def.h>
 #include "ck804.h"
 
diff --git a/src/southbridge/nvidia/mcp55/enable_usbdebug.c b/src/southbridge/nvidia/mcp55/enable_usbdebug.c
index b0afec2..23c2219 100644
--- a/src/southbridge/nvidia/mcp55/enable_usbdebug.c
+++ b/src/southbridge/nvidia/mcp55/enable_usbdebug.c
@@ -26,7 +26,7 @@
 
 #include <stdint.h>
 #include <arch/io.h>
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include <device/pci_def.h>
 #include "mcp55.h"
 
diff --git a/src/southbridge/nvidia/mcp55/usb2.c b/src/southbridge/nvidia/mcp55/usb2.c
index 1f129ec..a9174f6 100644
--- a/src/southbridge/nvidia/mcp55/usb2.c
+++ b/src/southbridge/nvidia/mcp55/usb2.c
@@ -27,7 +27,7 @@
 #include <device/pci_ids.h>
 #include <device/pci_ops.h>
 #include "mcp55.h"
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 
 static void usb2_init(struct device *dev)
 {
diff --git a/src/southbridge/sis/sis966/enable_usbdebug.c b/src/southbridge/sis/sis966/enable_usbdebug.c
index 0d7503d..274aeb7 100644
--- a/src/southbridge/sis/sis966/enable_usbdebug.c
+++ b/src/southbridge/sis/sis966/enable_usbdebug.c
@@ -28,7 +28,7 @@
 
 #include <stdint.h>
 #include <arch/io.h>
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 #include <device/pci_def.h>
 #include "sis966.h"
 
diff --git a/src/southbridge/sis/sis966/usb2.c b/src/southbridge/sis/sis966/usb2.c
index 195c982..e2112eb 100644
--- a/src/southbridge/sis/sis966/usb2.c
+++ b/src/southbridge/sis/sis966/usb2.c
@@ -30,7 +30,7 @@
 #include <device/pci_ops.h>
 #include <arch/io.h>
 #include "sis966.h"
-#include <usbdebug.h>
+#include <device/pci_ehci.h>
 
 static const u8 SiS_SiS7002_init[22][3]={
 	{0x04, 0x00, 0x06},