diff options
| -rw-r--r-- | README | 3 | ||||
| -rw-r--r-- | drivers/usb/host/ehci-hcd.c | 7 | ||||
| -rw-r--r-- | drivers/usb/host/ehci.h | 6 | 
3 files changed, 15 insertions, 1 deletions
| @@ -1125,6 +1125,9 @@ The following options need to be configured:  				May be defined to allow interrupt polling  				instead of using asynchronous interrupts +		CONFIG_USB_EHCI_TXFIFO_THRESH enables setting of the +		txfilltuning field in the EHCI controller on reset. +  - USB Device:  		Define the below if you wish to use the USB console.  		Once firmware is rebuilt from a serial console issue the diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index ef5afc22b..b6422d7d7 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c @@ -255,6 +255,13 @@ static int ehci_reset(void)  #endif  		ehci_writel(reg_ptr, tmp);  	} + +#ifdef CONFIG_USB_EHCI_TXFIFO_THRESH +	cmd = ehci_readl(&hcor->or_txfilltuning); +	cmd &= ~TXFIFO_THRESH(0x3f); +	cmd |= TXFIFO_THRESH(CONFIG_USB_EHCI_TXFIFO_THRESH); +	ehci_writel(&hcor->or_txfilltuning, cmd); +#endif  out:  	return ret;  } diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h index 3d0ad0c85..cc00ce428 100644 --- a/drivers/usb/host/ehci.h +++ b/drivers/usb/host/ehci.h @@ -80,7 +80,11 @@ struct ehci_hcor {  	uint32_t or_ctrldssegment;  	uint32_t or_periodiclistbase;  	uint32_t or_asynclistaddr; -	uint32_t _reserved_[9]; +	uint32_t _reserved_0_; +	uint32_t or_burstsize; +	uint32_t or_txfilltuning; +#define TXFIFO_THRESH(p)		((p & 0x3f) << 16) +	uint32_t _reserved_1_[6];  	uint32_t or_configflag;  #define FLAG_CF		(1 << 0)	/* true:  we'll support "high speed" */  	uint32_t or_portsc[CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS]; |