ASoC: sh: fsi: use simple-card instead of fsi-ak4642
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Mon, 9 Apr 2012 04:18:28 +0000 (21:18 -0700)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 13 Apr 2012 10:29:26 +0000 (11:29 +0100)
This patch uses simple-card driver instead of fsi-ak4642 on each board.
To select AK4642 driver, each boards select it on Kconfig.

This patch removes fsi-ak4642 driver which is no longer needed

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
arch/arm/mach-shmobile/Kconfig
arch/arm/mach-shmobile/board-ap4evb.c
arch/arm/mach-shmobile/board-mackerel.c
arch/sh/boards/Kconfig
arch/sh/boards/mach-se/7724/setup.c
include/sound/sh_fsi.h
sound/soc/sh/Kconfig
sound/soc/sh/Makefile
sound/soc/sh/fsi-ak4642.c [deleted file]

index 34560cab45d916729ccf03733ca88aaa8f7c9023..2cda0c2af230be116f6301a4dbc88403205b58c8 100644 (file)
@@ -58,6 +58,7 @@ config MACH_AP4EVB
        depends on ARCH_SH7372
        select ARCH_REQUIRE_GPIOLIB
        select SH_LCD_MIPI_DSI
+       select SND_SOC_AK4642 if SND_SIMPLE_CARD
 
 choice
        prompt "AP4EVB LCD panel selection"
@@ -82,6 +83,7 @@ config MACH_MACKEREL
        bool "mackerel board"
        depends on ARCH_SH7372
        select ARCH_REQUIRE_GPIOLIB
+       select SND_SOC_AK4642 if SND_SIMPLE_CARD
 
 config MACH_KOTA2
        bool "KOTA2 board"
index b56dde2732bbd2b5215c101f6a1ce57f026a712d..b39751244daa764307d6eaa4d7098bbbc91c0a8a 100644 (file)
@@ -50,6 +50,7 @@
 #include <media/soc_camera.h>
 
 #include <sound/sh_fsi.h>
+#include <sound/simple_card.h>
 
 #include <video/sh_mobile_hdmi.h>
 #include <video/sh_mobile_lcdc.h>
@@ -785,17 +786,25 @@ static struct platform_device fsi_device = {
        },
 };
 
-static struct fsi_ak4642_info fsi2_ak4643_info = {
+static struct asoc_simple_dai_init_info fsi2_ak4643_init_info = {
+       .fmt            = SND_SOC_DAIFMT_LEFT_J,
+       .codec_daifmt   = SND_SOC_DAIFMT_CBM_CFM,
+       .cpu_daifmt     = SND_SOC_DAIFMT_CBS_CFS,
+       .sysclk         = 11289600,
+};
+
+static struct asoc_simple_card_info fsi2_ak4643_info = {
        .name           = "AK4643",
        .card           = "FSI2A-AK4643",
        .cpu_dai        = "fsia-dai",
        .codec          = "ak4642-codec.0-0013",
        .platform       = "sh_fsi2",
-       .id             = FSI_PORT_A,
+       .codec_dai      = "ak4642-hifi",
+       .init           = &fsi2_ak4643_init_info,
 };
 
 static struct platform_device fsi_ak4643_device = {
-       .name   = "fsi-ak4642-audio",
+       .name   = "asoc-simple-card",
        .dev    = {
                .platform_data  = &fsi2_ak4643_info,
        },
index f49e28abe0abe59d987aec558d357dd78e2ec7f3..4a461384d27c31742f5973e5f06536d3af04e27f 100644 (file)
@@ -53,6 +53,7 @@
 #include <media/soc_camera.h>
 #include <media/soc_camera_platform.h>
 #include <sound/sh_fsi.h>
+#include <sound/simple_card.h>
 
 #include <mach/common.h>
 #include <mach/irqs.h>
@@ -941,17 +942,25 @@ static struct platform_device fsi_device = {
        },
 };
 
-static struct fsi_ak4642_info fsi2_ak4643_info = {
+static struct asoc_simple_dai_init_info fsi2_ak4643_init_info = {
+       .fmt            = SND_SOC_DAIFMT_LEFT_J,
+       .codec_daifmt   = SND_SOC_DAIFMT_CBM_CFM,
+       .cpu_daifmt     = SND_SOC_DAIFMT_CBS_CFS,
+       .sysclk         = 11289600,
+};
+
+static struct asoc_simple_card_info fsi2_ak4643_info = {
        .name           = "AK4643",
        .card           = "FSI2A-AK4643",
        .cpu_dai        = "fsia-dai",
        .codec          = "ak4642-codec.0-0013",
        .platform       = "sh_fsi2",
-       .id             = FSI_PORT_A,
+       .codec_dai      = "ak4642-hifi",
+       .init           = &fsi2_ak4643_init_info,
 };
 
 static struct platform_device fsi_ak4643_device = {
-       .name   = "fsi-ak4642-audio",
+       .name   = "asoc-simple-card",
        .dev    = {
                .platform_data  = &fsi2_ak4643_info,
        },
index d893411022d53868a6d40baded1b55b8314d4081..0da49f3b0f4f156ccd40e5bc4d1b93e81e89be64 100644 (file)
@@ -54,6 +54,7 @@ config SH_7724_SOLUTION_ENGINE
        select SOLUTION_ENGINE
        depends on CPU_SUBTYPE_SH7724
        select ARCH_REQUIRE_GPIOLIB
+       select SND_SOC_AK4642 if SND_SIMPLE_CARD
        help
          Select 7724 SolutionEngine if configuring for a Hitachi SH7724
          evaluation board.
index c540b16547c31c4f0608e86a2078c00fdc0d80f7..5cc5ed44d9af7836322210e12421882be4b0bb60 100644 (file)
@@ -28,6 +28,7 @@
 #include <video/sh_mobile_lcdc.h>
 #include <media/sh_mobile_ceu.h>
 #include <sound/sh_fsi.h>
+#include <sound/simple_card.h>
 #include <asm/io.h>
 #include <asm/heartbeat.h>
 #include <asm/clock.h>
@@ -304,17 +305,25 @@ static struct platform_device fsi_device = {
        },
 };
 
-static struct fsi_ak4642_info fsi_ak4642_info = {
+static struct asoc_simple_dai_init_info fsi2_ak4642_init_info = {
+       .fmt            = SND_SOC_DAIFMT_LEFT_J,
+       .codec_daifmt   = SND_SOC_DAIFMT_CBM_CFM,
+       .cpu_daifmt     = SND_SOC_DAIFMT_CBS_CFS,
+       .sysclk         = 11289600,
+};
+
+static struct asoc_simple_card_info fsi_ak4642_info = {
        .name           = "AK4642",
        .card           = "FSIA-AK4642",
        .cpu_dai        = "fsia-dai",
        .codec          = "ak4642-codec.0-0012",
        .platform       = "sh_fsi.0",
-       .id             = FSI_PORT_A,
+       .codec_dai      = "ak4642-hifi",
+       .init           = &fsi2_ak4642_init_info,
 };
 
 static struct platform_device fsi_ak4642_device = {
-       .name   = "fsi-ak4642-audio",
+       .name   = "asoc-simple-card",
        .dev    = {
                .platform_data  = &fsi_ak4642_info,
        },
index b457e87fbd0849efd51fd22445cb76606c8f6d70..956e30e89ea8ad3539c4a4d6a53006a9a683acb4 100644 (file)
@@ -84,16 +84,4 @@ struct sh_fsi_platform_info {
        struct sh_fsi_port_info port_b;
 };
 
-/*
- * for fsi-ak4642
- */
-struct fsi_ak4642_info {
-       const char *name;
-       const char *card;
-       const char *cpu_dai;
-       const char *codec;
-       const char *platform;
-       int id;
-};
-
 #endif /* __SOUND_FSI_H */
index d8e06a607a22990fe41f312123b628a3231366e4..c68b90b2995959b83cc66256df37364d6864cdc5 100644 (file)
@@ -46,14 +46,6 @@ config SND_SH7760_AC97
          This option enables generic sound support for the first
          AC97 unit of the SH7760.
 
-config SND_FSI_AK4642
-       tristate "FSI-AK4642 sound support"
-       depends on SND_SOC_SH4_FSI && I2C
-       select SND_SOC_AK4642
-       help
-         This option enables generic sound support for the
-         FSI - AK4642 unit
-
 config SND_FSI_DA7210
        tristate "FSI-DA7210 sound support"
        depends on SND_SOC_SH4_FSI && I2C
index 94476d4c0fd58f01b9ae46691f9b6621b66cac95..01808cd0e6f6eaff0f70764a353144d2ce96cf33 100644 (file)
@@ -14,13 +14,11 @@ obj-$(CONFIG_SND_SOC_SH4_SIU)       += snd-soc-siu.o
 
 ## boards
 snd-soc-sh7760-ac97-objs       := sh7760-ac97.o
-snd-soc-fsi-ak4642-objs                := fsi-ak4642.o
 snd-soc-fsi-da7210-objs                := fsi-da7210.o
 snd-soc-fsi-hdmi-objs          := fsi-hdmi.o
 snd-soc-migor-objs             := migor.o
 
 obj-$(CONFIG_SND_SH7760_AC97)  += snd-soc-sh7760-ac97.o
-obj-$(CONFIG_SND_FSI_AK4642)   += snd-soc-fsi-ak4642.o
 obj-$(CONFIG_SND_FSI_DA7210)   += snd-soc-fsi-da7210.o
 obj-$(CONFIG_SND_FSI_HDMI)     += snd-soc-fsi-hdmi.o
 obj-$(CONFIG_SND_SIU_MIGOR)    += snd-soc-migor.o
diff --git a/sound/soc/sh/fsi-ak4642.c b/sound/soc/sh/fsi-ak4642.c
deleted file mode 100644 (file)
index 97f540a..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * FSI-AK464x sound support for ms7724se
- *
- * Copyright (C) 2009 Renesas Solutions Corp.
- * Kuninori Morimoto <morimoto.kuninori@renesas.com>
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- */
-
-#include <linux/platform_device.h>
-#include <linux/module.h>
-#include <sound/sh_fsi.h>
-
-struct fsi_ak4642_data {
-       const char *name;
-       const char *card;
-       const char *cpu_dai;
-       const char *codec;
-       const char *platform;
-       int id;
-};
-
-static int fsi_ak4642_dai_init(struct snd_soc_pcm_runtime *rtd)
-{
-       struct snd_soc_dai *codec = rtd->codec_dai;
-       struct snd_soc_dai *cpu = rtd->cpu_dai;
-       int ret;
-
-       ret = snd_soc_dai_set_fmt(codec, SND_SOC_DAIFMT_LEFT_J |
-                                        SND_SOC_DAIFMT_CBM_CFM);
-       if (ret < 0)
-               return ret;
-
-       ret = snd_soc_dai_set_sysclk(codec, 0, 11289600, 0);
-       if (ret < 0)
-               return ret;
-
-       ret = snd_soc_dai_set_fmt(cpu, SND_SOC_DAIFMT_LEFT_J |
-                                      SND_SOC_DAIFMT_CBS_CFS);
-
-       return ret;
-}
-
-static struct snd_soc_dai_link fsi_dai_link = {
-       .codec_dai_name = "ak4642-hifi",
-       .init           = fsi_ak4642_dai_init,
-};
-
-static struct snd_soc_card fsi_soc_card  = {
-       .owner          = THIS_MODULE,
-       .dai_link       = &fsi_dai_link,
-       .num_links      = 1,
-};
-
-static struct platform_device *fsi_snd_device;
-
-static int fsi_ak4642_probe(struct platform_device *pdev)
-{
-       int ret = -ENOMEM;
-       struct fsi_ak4642_info *pinfo = pdev->dev.platform_data;
-
-       if (!pinfo) {
-               dev_err(&pdev->dev, "no info for fsi ak4642\n");
-               goto out;
-       }
-
-       fsi_snd_device = platform_device_alloc("soc-audio", pinfo->id);
-       if (!fsi_snd_device)
-               goto out;
-
-       fsi_dai_link.name               = pinfo->name;
-       fsi_dai_link.stream_name        = pinfo->name;
-       fsi_dai_link.cpu_dai_name       = pinfo->cpu_dai;
-       fsi_dai_link.platform_name      = pinfo->platform;
-       fsi_dai_link.codec_name         = pinfo->codec;
-       fsi_soc_card.name               = pinfo->card;
-
-       platform_set_drvdata(fsi_snd_device, &fsi_soc_card);
-       ret = platform_device_add(fsi_snd_device);
-
-       if (ret)
-               platform_device_put(fsi_snd_device);
-
-out:
-       return ret;
-}
-
-static int fsi_ak4642_remove(struct platform_device *pdev)
-{
-       platform_device_unregister(fsi_snd_device);
-       return 0;
-}
-
-static struct platform_driver fsi_ak4642 = {
-       .driver = {
-               .name   = "fsi-ak4642-audio",
-       },
-       .probe          = fsi_ak4642_probe,
-       .remove         = fsi_ak4642_remove,
-};
-
-module_platform_driver(fsi_ak4642);
-
-MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("Generic SH4 FSI-AK4642 sound card");
-MODULE_AUTHOR("Kuninori Morimoto <morimoto.kuninori@renesas.com>");