diff options
Diffstat (limited to 'drivers/usb')
| -rw-r--r-- | drivers/usb/Kconfig | 4 | ||||
| -rw-r--r-- | drivers/usb/host/dwc2.c | 24 | ||||
| -rw-r--r-- | drivers/usb/host/ehci-msm.c | 3 | ||||
| -rw-r--r-- | drivers/usb/host/ehci-mx6.c | 5 | ||||
| -rw-r--r-- | drivers/usb/host/ohci-lpc32xx.c | 12 | ||||
| -rw-r--r-- | drivers/usb/host/xhci-rcar.c | 12 | ||||
| -rw-r--r-- | drivers/usb/musb-new/Kconfig | 17 | ||||
| -rw-r--r-- | drivers/usb/musb/Kconfig | 29 | ||||
| -rw-r--r-- | drivers/usb/phy/Kconfig | 17 | 
9 files changed, 94 insertions, 29 deletions
| diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig index e7658b4d95c..7de41057ca1 100644 --- a/drivers/usb/Kconfig +++ b/drivers/usb/Kconfig @@ -51,10 +51,14 @@ source "drivers/usb/host/Kconfig"  source "drivers/usb/dwc3/Kconfig" +source "drivers/usb/musb/Kconfig" +  source "drivers/usb/musb-new/Kconfig"  source "drivers/usb/emul/Kconfig" +source "drivers/usb/phy/Kconfig" +  source "drivers/usb/ulpi/Kconfig"  comment "USB peripherals" diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c index 1293e18f75e..540c016412b 100644 --- a/drivers/usb/host/dwc2.c +++ b/drivers/usb/host/dwc2.c @@ -108,8 +108,8 @@ static void dwc_otg_flush_tx_fifo(struct dwc2_core_regs *regs, const int num)  	writel(DWC2_GRSTCTL_TXFFLSH | (num << DWC2_GRSTCTL_TXFNUM_OFFSET),  	       ®s->grstctl); -	ret = wait_for_bit(__func__, ®s->grstctl, DWC2_GRSTCTL_TXFFLSH, -			   false, 1000, false); +	ret = wait_for_bit_le32(®s->grstctl, DWC2_GRSTCTL_TXFFLSH, +				false, 1000, false);  	if (ret)  		printf("%s: Timeout!\n", __func__); @@ -127,8 +127,8 @@ static void dwc_otg_flush_rx_fifo(struct dwc2_core_regs *regs)  	int ret;  	writel(DWC2_GRSTCTL_RXFFLSH, ®s->grstctl); -	ret = wait_for_bit(__func__, ®s->grstctl, DWC2_GRSTCTL_RXFFLSH, -			   false, 1000, false); +	ret = wait_for_bit_le32(®s->grstctl, DWC2_GRSTCTL_RXFFLSH, +				false, 1000, false);  	if (ret)  		printf("%s: Timeout!\n", __func__); @@ -145,15 +145,15 @@ static void dwc_otg_core_reset(struct dwc2_core_regs *regs)  	int ret;  	/* Wait for AHB master IDLE state. */ -	ret = wait_for_bit(__func__, ®s->grstctl, DWC2_GRSTCTL_AHBIDLE, -			   true, 1000, false); +	ret = wait_for_bit_le32(®s->grstctl, DWC2_GRSTCTL_AHBIDLE, +				true, 1000, false);  	if (ret)  		printf("%s: Timeout!\n", __func__);  	/* Core Soft Reset */  	writel(DWC2_GRSTCTL_CSFTRST, ®s->grstctl); -	ret = wait_for_bit(__func__, ®s->grstctl, DWC2_GRSTCTL_CSFTRST, -			   false, 1000, false); +	ret = wait_for_bit_le32(®s->grstctl, DWC2_GRSTCTL_CSFTRST, +				false, 1000, false);  	if (ret)  		printf("%s: Timeout!\n", __func__); @@ -267,8 +267,8 @@ static void dwc_otg_core_host_init(struct udevice *dev,  		clrsetbits_le32(®s->hc_regs[i].hcchar,  				DWC2_HCCHAR_EPDIR,  				DWC2_HCCHAR_CHEN | DWC2_HCCHAR_CHDIS); -		ret = wait_for_bit(__func__, ®s->hc_regs[i].hcchar, -				   DWC2_HCCHAR_CHEN, false, 1000, false); +		ret = wait_for_bit_le32(®s->hc_regs[i].hcchar, +					DWC2_HCCHAR_CHEN, false, 1000, false);  		if (ret)  			printf("%s: Timeout!\n", __func__);  	} @@ -783,8 +783,8 @@ int wait_for_chhltd(struct dwc2_hc_regs *hc_regs, uint32_t *sub, u8 *toggle)  	int ret;  	uint32_t hcint, hctsiz; -	ret = wait_for_bit(__func__, &hc_regs->hcint, DWC2_HCINT_CHHLTD, true, -			   1000, false); +	ret = wait_for_bit_le32(&hc_regs->hcint, DWC2_HCINT_CHHLTD, true, +				1000, false);  	if (ret)  		return ret; diff --git a/drivers/usb/host/ehci-msm.c b/drivers/usb/host/ehci-msm.c index 2c0c63322cb..f5320ca2985 100644 --- a/drivers/usb/host/ehci-msm.c +++ b/drivers/usb/host/ehci-msm.c @@ -133,8 +133,7 @@ static int ehci_usb_remove(struct udevice *dev)  	setbits_le32(&ehci->usbcmd, CMD_RESET);  	/* Wait for reset */ -	if (wait_for_bit(__func__, &ehci->usbcmd, CMD_RESET, false, 30, -			 false)) { +	if (wait_for_bit_le32(&ehci->usbcmd, CMD_RESET, false, 30, false)) {  		printf("Stuck on USB reset.\n");  		return -ETIMEDOUT;  	} diff --git a/drivers/usb/host/ehci-mx6.c b/drivers/usb/host/ehci-mx6.c index fe2627ea937..2c8fc3c4b15 100644 --- a/drivers/usb/host/ehci-mx6.c +++ b/drivers/usb/host/ehci-mx6.c @@ -142,13 +142,12 @@ static int usb_phy_enable(int index, struct usb_ehci *ehci)  	/* Stop then Reset */  	clrbits_le32(usb_cmd, UCMD_RUN_STOP); -	ret = wait_for_bit(__func__, usb_cmd, UCMD_RUN_STOP, false, 10000, -			   false); +	ret = wait_for_bit_le32(usb_cmd, UCMD_RUN_STOP, false, 10000, false);  	if (ret)  		return ret;  	setbits_le32(usb_cmd, UCMD_RESET); -	ret = wait_for_bit(__func__, usb_cmd, UCMD_RESET, false, 10000, false); +	ret = wait_for_bit_le32(usb_cmd, UCMD_RESET, false, 10000, false);  	if (ret)  		return ret; diff --git a/drivers/usb/host/ohci-lpc32xx.c b/drivers/usb/host/ohci-lpc32xx.c index 2f2b4b90def..44a49807a41 100644 --- a/drivers/usb/host/ohci-lpc32xx.c +++ b/drivers/usb/host/ohci-lpc32xx.c @@ -143,8 +143,8 @@ static int usbpll_setup(void)  	setbits_le32(&clk_pwr->usb_ctrl, CLK_USBCTRL_POSTDIV_2POW(0x01));  	setbits_le32(&clk_pwr->usb_ctrl, CLK_USBCTRL_PLL_PWRUP); -	ret = wait_for_bit(__func__, &clk_pwr->usb_ctrl, CLK_USBCTRL_PLL_STS, -			   true, CONFIG_SYS_HZ, false); +	ret = wait_for_bit_le32(&clk_pwr->usb_ctrl, CLK_USBCTRL_PLL_STS, +				true, CONFIG_SYS_HZ, false);  	if (ret)  		return ret; @@ -178,8 +178,8 @@ int usb_cpu_init(void)  	/* enable I2C clock */  	writel(OTG_CLK_I2C_EN, &otg->otg_clk_ctrl); -	ret = wait_for_bit(__func__, &otg->otg_clk_sts, OTG_CLK_I2C_EN, true, -			   CONFIG_SYS_HZ, false); +	ret = wait_for_bit_le32(&otg->otg_clk_sts, OTG_CLK_I2C_EN, true, +				CONFIG_SYS_HZ, false);  	if (ret)  		return ret; @@ -199,8 +199,8 @@ int usb_cpu_init(void)  			 OTG_CLK_I2C_EN | OTG_CLK_HOST_EN;  	writel(mask, &otg->otg_clk_ctrl); -	ret = wait_for_bit(__func__, &otg->otg_clk_sts, mask, true, -			   CONFIG_SYS_HZ, false); +	ret = wait_for_bit_le32(&otg->otg_clk_sts, mask, true, +				CONFIG_SYS_HZ, false);  	if (ret)  		return ret; diff --git a/drivers/usb/host/xhci-rcar.c b/drivers/usb/host/xhci-rcar.c index d47c99644d6..71202d7b038 100644 --- a/drivers/usb/host/xhci-rcar.c +++ b/drivers/usb/host/xhci-rcar.c @@ -55,18 +55,18 @@ static int xhci_rcar_download_fw(struct rcar_xhci *ctx, const u32 *fw_data,  		setbits_le32(regs + RCAR_USB3_DL_CTRL,  			     RCAR_USB3_DL_CTRL_FW_SET_DATA0); -		ret = wait_for_bit("xhci-rcar", regs + RCAR_USB3_DL_CTRL, -				   RCAR_USB3_DL_CTRL_FW_SET_DATA0, false, -				   10, false); +		ret = wait_for_bit_le32(regs + RCAR_USB3_DL_CTRL, +					RCAR_USB3_DL_CTRL_FW_SET_DATA0, false, +					10, false);  		if (ret)  			break;  	}  	clrbits_le32(regs + RCAR_USB3_DL_CTRL, RCAR_USB3_DL_CTRL_ENABLE); -	ret = wait_for_bit("xhci-rcar", regs + RCAR_USB3_DL_CTRL, -			   RCAR_USB3_DL_CTRL_FW_SUCCESS, true, -			   10, false); +	ret = wait_for_bit_le32(regs + RCAR_USB3_DL_CTRL, +				RCAR_USB3_DL_CTRL_FW_SUCCESS, true, +				10, false);  	return ret;  } diff --git a/drivers/usb/musb-new/Kconfig b/drivers/usb/musb-new/Kconfig index caba42c26fc..ea5bae260ef 100644 --- a/drivers/usb/musb-new/Kconfig +++ b/drivers/usb/musb-new/Kconfig @@ -23,6 +23,16 @@ config USB_MUSB_TI  	  speed USB controller based on the Mentor Graphics  	  silicon IP. +config USB_MUSB_OMAP2PLUS +	tristate "OMAP2430 and onwards" +	depends on ARCH_OMAP2PLUS + +config USB_MUSB_AM35X +	bool "AM35x" + +config USB_MUSB_DSPS +	bool "TI DSPS platforms" +  if USB_MUSB_HOST || USB_MUSB_GADGET  config USB_MUSB_PIC32 @@ -41,3 +51,10 @@ config USB_MUSB_SUNXI  	used on almost all sunxi boards.  endif + +config USB_MUSB_PIO_ONLY +	bool "Disable DMA (always use PIO)" +	default y if USB_MUSB_AM35X || USB_MUSB_PIC32 || USB_MUSB_OMAP2PLUS || USB_MUSB_DSPS || USB_MUSB_SUNXI +	help +	  All data is copied between memory and FIFO by the CPU. +	  DMA controllers are ignored. diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig new file mode 100644 index 00000000000..4e2be3789c7 --- /dev/null +++ b/drivers/usb/musb/Kconfig @@ -0,0 +1,29 @@ +# +# (C) Copyright 2017 +# Adam Ford, Logic PD, aford173@gmail.com +# +# SPDX-License-Identifier:	GPL-2.0+ +# + +comment "Legacy MUSB Support" + +config USB_MUSB_HCD +	bool "Legacy MUSB Host Controller" + +config USB_MUSB_UDC +	bool "Legacy USB Device Controller" + +config USB_DAVINCI +	bool "Legacy MUSB DaVinci" +	 +config USB_OMAP3 +	bool "Legacy MUSB OMAP3 / OMAP4" +	depends on ARCH_OMAP2PLUS + +config USB_DA8XX +	bool "Legacy MUSB DA8xx/OMAP-L1x" +	depends on ARCH_DAVINCI + +config USB_AM35X +	bool"Legacy MUSB AM35x" +	depends on ARCH_OMAP2PLUS && !USB_OMAP3 diff --git a/drivers/usb/phy/Kconfig b/drivers/usb/phy/Kconfig new file mode 100644 index 00000000000..bcc67a0d702 --- /dev/null +++ b/drivers/usb/phy/Kconfig @@ -0,0 +1,17 @@ +# +# (C) Copyright 2017 +# Adam Ford, Logic PD, aford173@gmail.com +# +# SPDX-License-Identifier:	GPL-2.0+ +# + +comment "USB Phy" + +config TWL4030_USB +	bool "TWL4030 PHY" + +config OMAP_USB_PHY +	bool "OMAP PHY" + +config ROCKCHIP_USB2_PHY +	bool "Rockchip USB2 PHY" | 
