summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorShengjiu Wang <b02247@freescale.com>2014-03-24 18:05:31 +0800
committerNitin Garg <nitin.garg@freescale.com>2014-06-03 23:02:08 -0500
commit5ab782862a7d112db3b27298d23c1760743dec5e (patch)
treeda6328e459a8c775b9ec28a0a137df01586eb756 /arch
parent712701a17813a3c149d4a52a7bfa78368c79addf (diff)
ENGR00303824 audio: Headphone hotplug not work in mx6sl_evk
When hotplug, user will close and reopen the device, shutdown() will be called, MCLK will be disabled, then I2C access to wm8962 will have issue. so the drive didn't switch to headphone. Move the clk enable and disable to codec driver to fix this issue. Signed-off-by: Shengjiu Wang <b02247@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-mx6/board-mx6q_sabresd.c1
-rwxr-xr-xarch/arm/mach-mx6/board-mx6sl_arm2.c10
-rw-r--r--arch/arm/mach-mx6/board-mx6sl_evk.c10
3 files changed, 11 insertions, 10 deletions
diff --git a/arch/arm/mach-mx6/board-mx6q_sabresd.c b/arch/arm/mach-mx6/board-mx6q_sabresd.c
index 6418025d8d4c..1292f22410df 100644
--- a/arch/arm/mach-mx6/board-mx6q_sabresd.c
+++ b/arch/arm/mach-mx6/board-mx6q_sabresd.c
@@ -444,6 +444,7 @@ static struct wm8962_pdata wm8962_config_data = {
[2] = WM8962_GPIO_FN_DMICCLK,
[4] = 0x8000 | WM8962_GPIO_FN_DMICDAT,
},
+ .clock_enable = wm8962_clk_enable,
};
static struct mxc_audio_platform_data wm8962_data = {
diff --git a/arch/arm/mach-mx6/board-mx6sl_arm2.c b/arch/arm/mach-mx6/board-mx6sl_arm2.c
index 89aadd44dce5..1c40b0db0636 100755
--- a/arch/arm/mach-mx6/board-mx6sl_arm2.c
+++ b/arch/arm/mach-mx6/board-mx6sl_arm2.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012-2013 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright (C) 2012-2014 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
@@ -451,10 +451,6 @@ static struct platform_device mx6_sabresd_audio_wm8962_device = {
.name = "imx-wm8962",
};
-static struct wm8962_pdata wm8962_config_data = {
-
-};
-
static int wm8962_clk_enable(int enable)
{
if (enable)
@@ -465,6 +461,10 @@ static int wm8962_clk_enable(int enable)
return 0;
}
+static struct wm8962_pdata wm8962_config_data = {
+ .clock_enable = wm8962_clk_enable,
+};
+
static int mxc_wm8962_init(void)
{
struct clk *pll4;
diff --git a/arch/arm/mach-mx6/board-mx6sl_evk.c b/arch/arm/mach-mx6/board-mx6sl_evk.c
index 138024f88a6b..f597d97e8a48 100644
--- a/arch/arm/mach-mx6/board-mx6sl_evk.c
+++ b/arch/arm/mach-mx6/board-mx6sl_evk.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012-2013 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright (C) 2012-2014 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
@@ -512,10 +512,6 @@ static struct platform_device mx6_sabresd_audio_wm8962_device = {
.name = "imx-wm8962",
};
-static struct wm8962_pdata wm8962_config_data = {
-
-};
-
static int wm8962_clk_enable(int enable)
{
if (enable)
@@ -526,6 +522,10 @@ static int wm8962_clk_enable(int enable)
return 0;
}
+static struct wm8962_pdata wm8962_config_data = {
+ .clock_enable = wm8962_clk_enable,
+};
+
static int mxc_wm8962_init(void)
{
struct clk *pll4;