[U-Boot-Users] [PATCH] socrates: add USB support
Wolfgang Denk
wd at denx.de
Thu May 22 01:15:53 CEST 2008
From: Sergei Poselenov <sposelenov at emcraft.com>
Add new configuration variable CONFIG_PCI_OHCI_DEVNO.
In case of several PCI USB controllers on a board this variable
specifys which controller to use.
See doc/README.generic_usb_ohci for details.
Signed-off-by: Sergei Poselenov <sposelenov at emcraft.com>
---
Markus, please note that we added a new configuration variable,
CONFIG_PCI_OHCI_DEVNO in drivers/usb_ohci.c. It addresses the the
case when there are several USB controllers installed on a board
(like on socrates, where 4 PCI OHCI USB controllers are available),
and we need to support a controller instance other than the first
found.
For socrates, currently it is the 2nd OHCI controller of the 2nd
ISP1562 PCI USB chip (i.e. instance number 3 in the PCI list of OHCI
controllers (0x1131/0x1561)).
---
doc/README.generic_usb_ohci | 6 ++++++
drivers/usb/usb_ohci.c | 5 ++++-
include/configs/socrates.h | 14 ++++++++++++--
3 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/doc/README.generic_usb_ohci b/doc/README.generic_usb_ohci
index c44c501..147ea51 100644
--- a/doc/README.generic_usb_ohci
+++ b/doc/README.generic_usb_ohci
@@ -51,6 +51,12 @@ You'll need to define
CONFIG_PCI_OHCI
+If you have several USB PCI controllers, define
+
+ CONFIG_PCI_OHCI_DEVNO: number of the OHCI device in PCI list
+
+If undefined, the first instance found in PCI space will be used.
+
PCI Controllers need to do byte swapping on register accesses, so they
should to define:
diff --git a/drivers/usb/usb_ohci.c b/drivers/usb/usb_ohci.c
index ee0f2e4..318478a 100644
--- a/drivers/usb/usb_ohci.c
+++ b/drivers/usb/usb_ohci.c
@@ -53,6 +53,9 @@
#if defined(CONFIG_PCI_OHCI)
# include <pci.h>
+#if !defined(CONFIG_PCI_OHCI_DEVNO)
+#define CONFIG_PCI_OHCI_DEVNO 0
+#endif
#endif
#include <malloc.h>
@@ -1818,7 +1821,7 @@ int usb_lowlevel_init(void)
gohci.sleeping = 0;
gohci.irq = -1;
#ifdef CONFIG_PCI_OHCI
- pdev = pci_find_devices(ohci_pci_ids, 0);
+ pdev = pci_find_devices(ohci_pci_ids, CONFIG_PCI_OHCI_DEVNO);
if (pdev != -1) {
u16 vid, did;
diff --git a/include/configs/socrates.h b/include/configs/socrates.h
index 5d37383..c3ecd6f 100644
--- a/include/configs/socrates.h
+++ b/include/configs/socrates.h
@@ -232,7 +232,7 @@
#define CONFIG_EEPRO100
#undef CONFIG_TULIP
-#undef CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
+#define CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
#define CFG_PCI_SUBSYS_VENDORID 0x1057 /* Motorola */
#endif /* CONFIG_PCI */
@@ -299,8 +299,8 @@
#define CONFIG_CMD_MII
#define CONFIG_CMD_NFS
#define CONFIG_CMD_PING
-#undef CONFIG_CMD_RTC
#define CONFIG_CMD_SNTP
+#define CONFIG_CMD_USB
#if defined(CONFIG_PCI)
@@ -399,4 +399,14 @@
#define CONFIG_OF_LIBFDT 1
#define CONFIG_OF_BOARD_SETUP 1
+/* USB support */
+#define CONFIG_USB_OHCI_NEW 1
+#define CONFIG_PCI_OHCI 1
+#define CONFIG_PCI_OHCI_DEVNO 3 /* Number in PCI list */
+#define CFG_USB_OHCI_MAX_ROOT_PORTS 15
+#define CFG_USB_OHCI_SLOT_NAME "ohci_pci"
+#define CFG_OHCI_SWAP_REG_ACCESS 1
+#define CONFIG_DOS_PARTITION 1
+#define CONFIG_USB_STORAGE 1
+
#endif /* __CONFIG_H */
--
1.5.4.2
More information about the U-Boot
mailing list