@@ -8,6 +8,7 @@
#include <common.h>
#include <usb.h>
#include <errno.h>
+#include <wait_bit.h>
#include <linux/compiler.h>
#include <usb/ehci-fsl.h>
#include <asm/io.h>
@@ -57,6 +58,11 @@
#define UCMD_RESET (1 << 1) /* controller reset */
#if defined(CONFIG_MX6)
+
+#ifndef CONFIG_LIB_WAIT_BIT
+#error CONFIG_LIB_WAIT_BIT is required for ehci-mx6 driver
+#endif
+
static const unsigned phy_bases[] = {
USB_PHY0_BASE_ADDR,
USB_PHY1_BASE_ADDR,
@@ -117,32 +123,6 @@ static void usb_power_config(int index)
pll_480_ctrl_set);
}
-static int wait_for_bit(u32 *reg, const u32 mask, bool set)
-{
- u32 val;
- const unsigned int timeout = 10000;
- unsigned long start = get_timer(0);
-
- while(1) {
- val = readl(reg);
- if (!set)
- val = ~val;
-
- if ((val & mask) == mask)
- return 0;
-
- if (get_timer(start) > timeout)
- break;
-
- udelay(1);
- }
-
- debug("%s: Timeout (reg=%p mask=%08x wait_set=%i)\n",
- __func__, reg, mask, set);
-
- return -ETIMEDOUT;
-}
-
/* Return 0 : host node, <>0 : device mode */
static int usb_phy_enable(int index, struct usb_ehci *ehci)
{
@@ -160,12 +140,13 @@ 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(usb_cmd, UCMD_RUN_STOP, 0);
+ ret = wait_for_bit(__func__, usb_cmd, UCMD_RUN_STOP, false, 10000,
+ false);
if (ret)
return ret;
setbits_le32(usb_cmd, UCMD_RESET);
- ret = wait_for_bit(usb_cmd, UCMD_RESET, 0);
+ ret = wait_for_bit(__func__, usb_cmd, UCMD_RESET, false, 10000, false);
if (ret)
return ret;
@@ -218,6 +218,7 @@
/* USB Configs */
#define CONFIG_CMD_USB
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
@@ -75,6 +75,7 @@
#define CONFIG_CMD_USB
#define CONFIG_CMD_FAT
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
@@ -41,6 +41,7 @@
/* USB Configs */
#define CONFIG_CMD_USB
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_USB_HOST_ETHER
@@ -178,6 +178,7 @@
/* USB Configs */
#define CONFIG_CMD_USB
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_USB_HOST_ETHER
@@ -58,6 +58,7 @@
/* USB */
#define CONFIG_CMD_USB
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
@@ -135,6 +135,7 @@
#define CONFIG_CMD_USB
#ifdef CONFIG_CMD_USB
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
@@ -18,6 +18,7 @@
/* USB Configs */
#define CONFIG_CMD_USB
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_USB_HOST_ETHER
@@ -58,6 +58,7 @@
#define CONFIG_CMD_USB
#ifdef CONFIG_CMD_USB
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
@@ -182,6 +182,7 @@
#define CONFIG_CMD_USB
#ifdef CONFIG_CMD_USB
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
@@ -158,6 +158,7 @@
#define CONFIG_CMD_USB
#ifdef CONFIG_CMD_USB
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
@@ -211,6 +211,7 @@
#define CONFIG_CMD_USB
#ifdef CONFIG_CMD_USB
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
@@ -84,6 +84,7 @@
/* USB Configs */
#define CONFIG_CMD_USB
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_USB_HOST_ETHER
@@ -153,6 +153,7 @@
/* USB Configs */
#ifdef CONFIG_CMD_USB
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_USB_KEYBOARD
@@ -61,6 +61,7 @@
#define CONFIG_CMD_USB
#define CONFIG_USB_STORAGE
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW)
#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
@@ -63,6 +63,7 @@
/* USB config */
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_MXC_USB_PORT 1
@@ -122,6 +122,7 @@
#define CONFIG_CMD_USB
#ifdef CONFIG_CMD_USB
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
@@ -57,6 +57,7 @@
/* USB Configs */
#define CONFIG_CMD_USB
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_MXC_USB_PORT 1
@@ -93,6 +93,7 @@
/* USB Configs */
#define CONFIG_CMD_USB
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_USB_HOST_ETHER
@@ -50,6 +50,7 @@
/* USB Configs */
#define CONFIG_CMD_USB
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
@@ -66,6 +66,7 @@
#define CONFIG_CMD_USB
#ifdef CONFIG_CMD_USB
#define CONFIG_USB_EHCI
+#define CONFIG_LIB_WAIT_BIT
#define CONFIG_USB_EHCI_MX6
#define CONFIG_USB_STORAGE
#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
Use existing library function to poll bit(s). Update configs using ehci-mx6. Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com> --- drivers/usb/host/ehci-mx6.c | 37 +++++++++-------------------------- include/configs/aristainetos-common.h | 1 + include/configs/cgtqmx6eval.h | 1 + include/configs/embestmx6boards.h | 1 + include/configs/gw_ventana.h | 1 + include/configs/mx6cuboxi.h | 1 + include/configs/mx6qarm2.h | 1 + include/configs/mx6qsabreauto.h | 1 + include/configs/mx6sabresd.h | 1 + include/configs/mx6slevk.h | 1 + include/configs/mx6sxsabresd.h | 1 + include/configs/mx6ul_14x14_evk.h | 1 + include/configs/nitrogen6x.h | 1 + include/configs/novena.h | 1 + include/configs/ot1200.h | 1 + include/configs/platinum.h | 1 + include/configs/tbs2910.h | 1 + include/configs/titanium.h | 1 + include/configs/tqma6.h | 1 + include/configs/wandboard.h | 1 + include/configs/warp.h | 1 + 21 files changed, 29 insertions(+), 28 deletions(-)