From db2c400ab852a2aae09d812b20e520ca371da35b Mon Sep 17 00:00:00 2001 From: Anton Kochkov Date: Fri, 6 Jul 2012 11:54:17 +0400 Subject: libpayload: Add reset function for OHCI USB driver Implemented OHCI reset function ohci_reset() in ohci.c for libpayload's USB driver. Change-Id: Id6518cbe00a21202757b34926bad171909740e97 Signed-off-by: Anton Kochkov Reviewed-on: http://review.coreboot.org/1177 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich --- payloads/libpayload/drivers/usb/ohci.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'payloads/libpayload/drivers/usb/ohci.c') diff --git a/payloads/libpayload/drivers/usb/ohci.c b/payloads/libpayload/drivers/usb/ohci.c index 8a01cf24fb..606e46791e 100644 --- a/payloads/libpayload/drivers/usb/ohci.c +++ b/payloads/libpayload/drivers/usb/ohci.c @@ -49,6 +49,13 @@ static void ohci_process_done_queue(ohci_t *ohci, int spew_debug); static void ohci_reset (hci_t *controller) { + if (controller == NULL) + return; + + OHCI_INST(controller)->opreg->HcCommandStatus = HostControllerReset; + mdelay(2); /* wait 2ms */ + OCHI_INST(controller)->opreg->HcControl = 0; + mdelay(10); /* wait 10ms */ } #ifdef USB_DEBUG -- cgit v1.2.3