From patchwork Sat May 23 23:13:11 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "jonsmirl@gmail.com" X-Patchwork-Id: 27574 Return-Path: X-Original-To: patchwork-incoming@bilbo.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from ozlabs.org (ozlabs.org [203.10.76.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx.ozlabs.org", Issuer "CA Cert Signing Authority" (verified OK)) by bilbo.ozlabs.org (Postfix) with ESMTPS id 74C12B6F35 for ; Sun, 24 May 2009 09:25:57 +1000 (EST) Received: by ozlabs.org (Postfix) id 34A30DFA7B; Sun, 24 May 2009 09:17:43 +1000 (EST) Delivered-To: patchwork-incoming@ozlabs.org Received: from ozlabs.org (localhost [127.0.0.1]) by ozlabs.org (Postfix) with ESMTP id 32615DFA7A for ; Sun, 24 May 2009 09:17:43 +1000 (EST) X-Original-To: linuxppc-dev@ozlabs.org Delivered-To: linuxppc-dev@ozlabs.org Received: from yx-out-2324.google.com (yx-out-2324.google.com [74.125.44.29]) by ozlabs.org (Postfix) with ESMTP id A8670DE182 for ; Sun, 24 May 2009 09:13:14 +1000 (EST) Received: by yx-out-2324.google.com with SMTP id 8so1216789yxb.39 for ; Sat, 23 May 2009 16:13:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:received:subject:to:from:date :message-id:in-reply-to:references:user-agent:mime-version :content-type:content-transfer-encoding; bh=KQRYqOKRywRHQuxOnmEo2YBVIvJj5m3IGzit9aTI338=; b=OkeQYVT/9fyPzPG92VtdFiX0JjmNYRphjI6JZVirRblUF0SqqEQBM7g7jld9gZ/duk 04MCi15d+gTkK8JOlv6vIGVXtHrrijvSR5WMKv8cnJDUqfH4Hulgsnm3qlGDopdVEyW3 0lbzPAFu1Vqbi6gsYF/NRtW66REvG/WYjDhOg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:to:from:date:message-id:in-reply-to:references:user-agent :mime-version:content-type:content-transfer-encoding; b=LWoavNfso4EIYm5rVEcz6h1NhThVaTpI4YXIBdlWzwxYQTV5/zxNE3MrmGAOHWG/hO 1gfvnY67egWXkoicd2rRzaJ5rkBLkuCZzwGcB+8JivOP6ZMLf/GqQ5BpTQvEcEU0dDWj B4qivP+D1v0WzU/fq8TExfcU/cZP03ASC32M4= Received: by 10.90.118.19 with SMTP id q19mr550962agc.17.1243120392697; Sat, 23 May 2009 16:13:12 -0700 (PDT) Received: from terra (c-76-109-159-38.hsd1.fl.comcast.net [76.109.159.38]) by mx.google.com with ESMTPS id 4sm10889104aga.16.2009.05.23.16.13.11 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sat, 23 May 2009 16:13:12 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=[127.0.1.1]) by terra with esmtp (Exim 4.69) (envelope-from ) id 1M80Ot-0004i0-Sj; Sat, 23 May 2009 19:13:11 -0400 Subject: [PATCH V2 8/9] Fabric bindings for STAC9766 on the Efika To: grant.likely@secretlab.ca, linuxppc-dev@ozlabs.org, alsa-devel@alsa-project.org, broonie@sirena.org.uk From: Jon Smirl Date: Sat, 23 May 2009 19:13:11 -0400 Message-ID: <20090523231311.17919.38581.stgit@terra> In-Reply-To: <20090523231148.17919.46103.stgit@terra> References: <20090523231148.17919.46103.stgit@terra> User-Agent: StGit/0.14.3.366.gf979 MIME-Version: 1.0 X-BeenThere: linuxppc-dev@ozlabs.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@ozlabs.org Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@ozlabs.org Fabric bindings for STAC9766 AC97 codec on the Efika. Signed-off-by: Jon Smirl --- sound/soc/fsl/Kconfig | 8 +++ sound/soc/fsl/Makefile | 3 + sound/soc/fsl/efika-audio-fabric.c | 94 ++++++++++++++++++++++++++++++++++++ 3 files changed, 105 insertions(+), 0 deletions(-) create mode 100644 sound/soc/fsl/efika-audio-fabric.c diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig index 3bce952..edd8516 100644 --- a/sound/soc/fsl/Kconfig +++ b/sound/soc/fsl/Kconfig @@ -39,4 +39,12 @@ config SND_SOC_MPC5200_AC97 help Say Y here to support the MPC5200 PSCs in AC97 mode. +config SND_MPC52xx_SOC_EFIKA + tristate "SoC AC97 Audio support for bbplan Efika and STAC9766" + depends on PPC_EFIKA + select SND_SOC_MPC5200_AC97 + select SND_SOC_STAC9766 + help + Say Y if you want to add support for sound on the Efika. + diff --git a/sound/soc/fsl/Makefile b/sound/soc/fsl/Makefile index 14631a1..f406470 100644 --- a/sound/soc/fsl/Makefile +++ b/sound/soc/fsl/Makefile @@ -15,3 +15,6 @@ obj-$(CONFIG_SND_MPC52xx_DMA) += mpc5200_dma.o obj-$(CONFIG_SND_SOC_MPC5200_I2S) += mpc5200_psc_i2s.o obj-$(CONFIG_SND_SOC_MPC5200_AC97) += mpc5200_psc_ac97.o +# MPC5200 Machine Support +obj-$(CONFIG_SND_MPC52xx_SOC_EFIKA) += efika-audio-fabric.o + diff --git a/sound/soc/fsl/efika-audio-fabric.c b/sound/soc/fsl/efika-audio-fabric.c new file mode 100644 index 0000000..5126a81 --- /dev/null +++ b/sound/soc/fsl/efika-audio-fabric.c @@ -0,0 +1,94 @@ +/* + * Efika driver for the PSC of the Freescale MPC52xx configured as AC97 interface + * + * Copyright 2008 Jon Smirl, Digispeaker + * Author: Jon Smirl + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "mpc5200_dma.h" +#include "mpc5200_psc_ac97.h" +#include "../codecs/stac9766.h" + +static struct snd_soc_device device; +static struct snd_soc_card card; + +static struct snd_soc_dai_link efika_fabric_dai[] = { +{ + .name = "AC97", + .stream_name = "AC97 Analog", + .codec_dai = &stac9766_dai[STAC9766_DAI_AC97_ANALOG], + .cpu_dai = &psc_ac97_dai[MPC5200_AC97_NORMAL], +}, +{ + .name = "AC97", + .stream_name = "AC97 IEC958", + .codec_dai = &stac9766_dai[STAC9766_DAI_AC97_DIGITAL], + .cpu_dai = &psc_ac97_dai[MPC5200_AC97_SPDIF], +}, +}; + +static __init int efika_fabric_init(void) +{ + struct platform_device *pdev; + int rc; + + if (!machine_is_compatible("bplan,efika")) + return -ENODEV; + + card.platform = &mpc5200_audio_dma_platform; + card.name = "Efika"; + card.dai_link = efika_fabric_dai; + card.num_links = ARRAY_SIZE(efika_fabric_dai); + + device.card = &card; + device.codec_dev = &soc_codec_dev_stac9766; + + pdev = platform_device_alloc("soc-audio", 1); + if (!pdev) { + pr_err("efika_fabric_init: platform_device_alloc() failed\n"); + return -ENODEV; + } + + platform_set_drvdata(pdev, &device); + device.dev = &pdev->dev; + + rc = platform_device_add(pdev); + if (rc) { + pr_err("efika_fabric_init: platform_device_add() failed\n"); + return -ENODEV; + } + return 0; +} + +static __exit void efika_fabric_exit(void) +{ +} + +module_init(efika_fabric_init); +module_exit(efika_fabric_exit); + + +MODULE_AUTHOR("Jon Smirl "); +MODULE_DESCRIPTION(DRV_NAME ": mpc5200 Efika fabric driver"); +MODULE_LICENSE("GPL"); +