summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Chen <peter.chen@freescale.com>2013-03-01 15:33:24 +0800
committerPeter Chen <peter.chen@freescale.com>2013-03-06 09:09:28 +0800
commit456627186832cb315805b16a9e3a44034cc7a2b2 (patch)
tree128fd30d19753ec5a2e3eafb26516354ddd34c38
parent243bb28ab9b49c8b54cdd08b9e05017effcd3d34 (diff)
ENGR00251209-1 usb: add host 1 vbus callback
The callback will be used at probe and remove Signed-off-by: Peter Chen <peter.chen@freescale.com>
-rw-r--r--arch/arm/mach-mx6/board-mx6q_sabresd.c11
-rw-r--r--arch/arm/mach-mx6/usb_h1.c7
2 files changed, 12 insertions, 6 deletions
diff --git a/arch/arm/mach-mx6/board-mx6q_sabresd.c b/arch/arm/mach-mx6/board-mx6q_sabresd.c
index 8a9645f92026..8cbf7fb47611 100644
--- a/arch/arm/mach-mx6/board-mx6q_sabresd.c
+++ b/arch/arm/mach-mx6/board-mx6q_sabresd.c
@@ -1094,6 +1094,14 @@ static void imx6q_sabresd_usbotg_vbus(bool on)
gpio_set_value(SABRESD_USB_OTG_PWR, 0);
}
+static void imx6q_sabresd_host1_vbus(bool on)
+{
+ if (on)
+ gpio_set_value(SABRESD_USB_H1_PWR, 1);
+ else
+ gpio_set_value(SABRESD_USB_H1_PWR, 0);
+}
+
static void __init imx6q_sabresd_init_usb(void)
{
int ret = 0;
@@ -1116,13 +1124,14 @@ static void __init imx6q_sabresd_init_usb(void)
ret);
return;
}
- gpio_direction_output(SABRESD_USB_H1_PWR, 1);
+ gpio_direction_output(SABRESD_USB_H1_PWR, 0);
if (board_is_mx6_reva())
mxc_iomux_set_gpr_register(1, 13, 1, 1);
else
mxc_iomux_set_gpr_register(1, 13, 1, 0);
mx6_set_otghost_vbus_func(imx6q_sabresd_usbotg_vbus);
+ mx6_set_host1_vbus_func(imx6q_sabresd_host1_vbus);
}
diff --git a/arch/arm/mach-mx6/usb_h1.c b/arch/arm/mach-mx6/usb_h1.c
index eb79bf35b16c..d983e2870045 100644
--- a/arch/arm/mach-mx6/usb_h1.c
+++ b/arch/arm/mach-mx6/usb_h1.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2012 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -401,8 +401,7 @@ static int __init mx6_usb_h1_init(void)
imx_mxc_ehci_data_entry_single(MX6SL, 1, HS1)};
mx6_get_host1_vbus_func(&mx6_set_usb_host1_vbus);
- if (mx6_set_usb_host1_vbus)
- mx6_set_usb_host1_vbus(true);
+ usbh1_config.platform_driver_vbus = mx6_set_usb_host1_vbus;
/* Some phy and power's special controls for host1
* 1. The external charger detector needs to be disabled
@@ -457,8 +456,6 @@ static void __exit mx6_usb_h1_exit(void)
| BM_ANADIG_USB2_PLL_480_CTRL_POWER \
| BM_ANADIG_USB2_PLL_480_CTRL_EN_USB_CLKS, \
anatop_base_addr + HW_ANADIG_USB2_PLL_480_CTRL_CLR);
- if (mx6_set_usb_host1_vbus)
- mx6_set_usb_host1_vbus(false);
return ;
}