summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorWallace Wang <r59996@freescale.com>2008-03-25 11:11:42 +0800
committerDaniel Schaeffer <daniel.schaeffer@timesys.com>2008-08-25 15:20:53 -0400
commit950b7c2e75edba5a267b2df14a2be7c1a76152a7 (patch)
treebfb3b95bd8ef3af6d42b5d78a3bb424f1e8a5b49 /arch
parent3bfa05d80bfb634e944c3be1ba102838fa37eab5 (diff)
ENGR00068611 PMIC AUDIO and SSI drivers can not be loadable modules
Merge ENGR0006861 Remove platform_device register in mxc-alsa-pmic.c Move clk_put to device.c Signed-off-by: Wallace Wang <r59996@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-mx27/devices.c13
-rw-r--r--arch/arm/mach-mx27/mx27ads.c12
-rw-r--r--arch/arm/mach-mx3/devices.c2
-rw-r--r--arch/arm/mach-mx3/mx31ads.c4
-rw-r--r--arch/arm/mach-mx3/mx3_3stack.c4
5 files changed, 19 insertions, 16 deletions
diff --git a/arch/arm/mach-mx27/devices.c b/arch/arm/mach-mx27/devices.c
index 6a4c4ea0721e..d21ad6acb8a2 100644
--- a/arch/arm/mach-mx27/devices.c
+++ b/arch/arm/mach-mx27/devices.c
@@ -9,7 +9,7 @@
* licensed "as is" without any warranty of any kind, whether express
* or implied.
*
- * Copyright 2006-2007 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright 2006-2008 Freescale Semiconductor, Inc. All Rights Reserved.
*/
#include <linux/module.h>
#include <linux/kernel.h>
@@ -422,10 +422,7 @@ static inline void mxc_init_spi(void)
#endif
#if defined(CONFIG_SND_MXC_PMIC) || defined(CONFIG_SND_MXC_PMIC_MODULE)
-static struct mxc_audio_platform_data mxc_audio_data = {
- .ssi_num = 2,
- .src_port = 0,
-};
+static struct mxc_audio_platform_data mxc_audio_data;
static struct platform_device mxc_alsa_device = {
.name = "mxc_alsa",
@@ -439,6 +436,12 @@ static struct platform_device mxc_alsa_device = {
static void mxc_init_audio(void)
{
+ mxc_audio_data.ssi_clk[0] = clk_get(NULL, "ssi_clk.0");
+ clk_put(audio_data->ssi_clk[0]);
+ mxc_audio_data.ssi_clk[1] = clk_get(NULL, "ssi_clk.1");
+ clk_put(audio_data->ssi_clk[1]);
+ mxc_audio_data.ssi_num = 2;
+ mxc_audio_data.src_port = 0;
platform_device_register(&mxc_alsa_device);
}
#else
diff --git a/arch/arm/mach-mx27/mx27ads.c b/arch/arm/mach-mx27/mx27ads.c
index cc4525ac5cc5..094affb33e4a 100644
--- a/arch/arm/mach-mx27/mx27ads.c
+++ b/arch/arm/mach-mx27/mx27ads.c
@@ -681,12 +681,13 @@ static inline int mxc_init_extuart(void)
}
#endif
-#if defined(CONFIG_MXC_PMIC_MC13783) && defined(CONFIG_SND_MXC_PMIC)
+#if (defined(CONFIG_MXC_PMIC_MC13783) || \
+ defined(CONFIG_MXC_PMIC_MC13783_MODULE)) \
+ && (defined(CONFIG_SND_MXC_PMIC) || defined(CONFIG_SND_MXC_PMIC_MODULE))
extern void gpio_ssi_active(int ssi_num);
static void __init mxc_init_pmic_audio(void)
{
- struct clk *ssi_clk;
struct clk *ckih_clk;
struct clk *cko_clk;
@@ -703,13 +704,6 @@ static void __init mxc_init_pmic_audio(void)
clk_put(ckih_clk);
clk_put(cko_clk);
- ssi_clk = clk_get(NULL, "ssi_clk.0");
- clk_enable(ssi_clk);
- clk_put(ssi_clk);
- ssi_clk = clk_get(NULL, "ssi_clk.1");
- clk_enable(ssi_clk);
- clk_put(ssi_clk);
-
gpio_ssi_active(0);
gpio_ssi_active(1);
}
diff --git a/arch/arm/mach-mx3/devices.c b/arch/arm/mach-mx3/devices.c
index 39805b83d7a7..7ecec845a703 100644
--- a/arch/arm/mach-mx3/devices.c
+++ b/arch/arm/mach-mx3/devices.c
@@ -268,12 +268,14 @@ static void mxc_init_audio(void)
pll_clk = clk_get(NULL, "usb_pll");
mxc_audio_data.ssi_clk[0] = clk_get(NULL, "ssi_clk.0");
clk_set_parent(mxc_audio_data.ssi_clk[0], pll_clk);
+ clk_put(mxc_audio_data.ssi_clk[0]);
if (machine_is_mx31_3ds()) {
mxc_audio_data.ssi_num = 1;
} else {
mxc_audio_data.ssi_num = 2;
mxc_audio_data.ssi_clk[1] = clk_get(NULL, "ssi_clk.1");
clk_set_parent(mxc_audio_data.ssi_clk[1], pll_clk);
+ clk_put(mxc_audio_data.ssi_clk[1]);
}
clk_put(pll_clk);
mxc_audio_data.src_port = 0;
diff --git a/arch/arm/mach-mx3/mx31ads.c b/arch/arm/mach-mx3/mx31ads.c
index c4d0a875ff1e..b89a5bf52b79 100644
--- a/arch/arm/mach-mx3/mx31ads.c
+++ b/arch/arm/mach-mx3/mx31ads.c
@@ -734,7 +734,9 @@ static void __init fixup_mxc_board(struct machine_desc *desc, struct tag *tags,
mxc_cpu_init();
}
-#if defined(CONFIG_MXC_PMIC_MC13783) && defined(CONFIG_SND_MXC_PMIC)
+#if (defined(CONFIG_MXC_PMIC_MC13783) || \
+ defined(CONFIG_MXC_PMIC_MC13783_MODULE)) \
+ && (defined(CONFIG_SND_MXC_PMIC) || defined(CONFIG_SND_MXC_PMIC_MODULE))
extern void gpio_activate_audio_ports(void);
static void __init mxc_init_pmic_audio(void)
diff --git a/arch/arm/mach-mx3/mx3_3stack.c b/arch/arm/mach-mx3/mx3_3stack.c
index b2eba0fc0fbe..573df8aa1b07 100644
--- a/arch/arm/mach-mx3/mx3_3stack.c
+++ b/arch/arm/mach-mx3/mx3_3stack.c
@@ -503,7 +503,9 @@ static int __init mxc_init_regulator(void)
module_init(mxc_init_regulator);
-#if defined(CONFIG_MXC_PMIC_MC13783) && defined(CONFIG_SND_MXC_PMIC)
+#if (defined(CONFIG_MXC_PMIC_MC13783) || \
+ defined(CONFIG_MXC_PMIC_MC13783_MODULE)) \
+ && (defined(CONFIG_SND_MXC_PMIC) || defined(CONFIG_SND_MXC_PMIC_MODULE))
static void __init mxc_init_pmic_audio(void)
{
struct clk *ckih_clk;