From: Tony LIU Date: Wed, 2 May 2012 06:58:42 +0000 (+0800) Subject: ENGR00209480-3 mx6sl_usb: fix too many wakeup interrupt issue X-Git-Tag: v3.0.35-fsl~1042 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=51c13ae9e5efb14fb9e878f8464fbf766a23b21d;p=karo-tx-linux.git ENGR00209480-3 mx6sl_usb: fix too many wakeup interrupt issue modify usb wakeup interrupt number for mx6sl Signed-off-by: Tony LIU --- diff --git a/arch/arm/mach-mx6/devices-imx6q.h b/arch/arm/mach-mx6/devices-imx6q.h index cf7f3c85524b..1b069b66b51e 100644 --- a/arch/arm/mach-mx6/devices-imx6q.h +++ b/arch/arm/mach-mx6/devices-imx6q.h @@ -86,6 +86,10 @@ extern const struct imx_fsl_usb2_wakeup_data imx6q_fsl_hs_wakeup_data[] __initco #define imx6q_add_fsl_usb2_hs_wakeup(id, pdata) \ imx_add_fsl_usb2_wakeup(&imx6q_fsl_hs_wakeup_data[id - 1], pdata) +extern const struct imx_fsl_usb2_wakeup_data imx6sl_fsl_hs_wakeup_data[] __initconst; +#define imx6sl_add_fsl_usb2_hs_wakeup(id, pdata) \ + imx_add_fsl_usb2_wakeup(&imx6sl_fsl_hs_wakeup_data[id - 1], pdata) + extern const struct imx_imx_esai_data imx6q_imx_esai_data[] __initconst; #define imx6q_add_imx_esai(id, pdata) \ imx_add_imx_esai(&imx6q_imx_esai_data[id], pdata) diff --git a/arch/arm/mach-mx6/usb_h1.c b/arch/arm/mach-mx6/usb_h1.c index e36ec6f837f4..215509867843 100644 --- a/arch/arm/mach-mx6/usb_h1.c +++ b/arch/arm/mach-mx6/usb_h1.c @@ -355,7 +355,10 @@ void __init mx6_usb_h1_init(void) else pdev = imx6q_add_fsl_ehci_hs(1, &usbh1_config); usbh1_wakeup_config.usb_pdata[0] = pdev->dev.platform_data; - pdev_wakeup = imx6q_add_fsl_usb2_hs_wakeup(1, &usbh1_wakeup_config); + if (cpu_is_mx6sl()) + pdev_wakeup = imx6sl_add_fsl_usb2_hs_wakeup(1, &usbh1_wakeup_config); + else + pdev_wakeup = imx6q_add_fsl_usb2_hs_wakeup(1, &usbh1_wakeup_config); ((struct fsl_usb2_platform_data *)(pdev->dev.platform_data))->wakeup_pdata = (struct fsl_usb2_wakeup_platform_data *)(pdev_wakeup->dev.platform_data); /* Some phy and power's special controls for host1 diff --git a/arch/arm/plat-mxc/devices/platform-fsl-usb2-wakeup.c b/arch/arm/plat-mxc/devices/platform-fsl-usb2-wakeup.c index 523c5d4599e1..cc6732db0dd6 100644 --- a/arch/arm/plat-mxc/devices/platform-fsl-usb2-wakeup.c +++ b/arch/arm/plat-mxc/devices/platform-fsl-usb2-wakeup.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved. + * Copyright (C) 2011-2012 Freescale Semiconductor, Inc. All Rights Reserved. * * Copyright (C) 2010 Pengutronix * Uwe Kleine-Koenig @@ -27,6 +27,14 @@ const struct imx_fsl_usb2_wakeup_data imx6q_fsl_hs_wakeup_data[] __initconst = { }; #endif /* ifdef CONFIG_SOC_IMX6Q */ +#ifdef CONFIG_SOC_IMX6SL +const struct imx_fsl_usb2_wakeup_data imx6sl_fsl_hs_wakeup_data[] __initconst = { + imx_fsl_usb2_wakeup_data_entry_single(MX6SL, 1, HS1), + imx_fsl_usb2_wakeup_data_entry_single(MX6SL, 2, HS2), + imx_fsl_usb2_wakeup_data_entry_single(MX6SL, 3, HS3), +}; +#endif /* ifdef CONFIG_SOC_IMX6Q */ + struct platform_device *__init imx_add_fsl_usb2_wakeup( const struct imx_fsl_usb2_wakeup_data *data, const struct fsl_usb2_wakeup_platform_data *pdata) diff --git a/arch/arm/plat-mxc/include/mach/mx6.h b/arch/arm/plat-mxc/include/mach/mx6.h index 9cf2a21959ed..ca4daece7fba 100644 --- a/arch/arm/plat-mxc/include/mach/mx6.h +++ b/arch/arm/plat-mxc/include/mach/mx6.h @@ -364,9 +364,9 @@ #define MX6Q_INT_USB_HS1 72 #define MX6SL_INT_USB_HS1 74 #define MX6Q_INT_USB_HS2 73 -#define MX6SL_INT_USB_HS2 73 +#define MX6SL_INT_USB_HS2 72 #define MX6Q_INT_USB_HS3 74 -#define MX6SL_INT_USB_HS3 72 +#define MX6SL_INT_USB_HS3 73 #define MX6Q_INT_USB_OTG 75 #define MX6Q_INT_USB_PHY0 76 #define MX6Q_INT_USB_PHY1 77