From patchwork Wed Feb 12 07:45:11 2014
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Xiubo Li
X-Patchwork-Id: 3635571
X-Patchwork-Delegate: broonie@sirena.org.uk
Return-Path:
X-Original-To: patchwork-alsa-devel@patchwork.kernel.org
Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org
Received: from mail.kernel.org (mail.kernel.org [198.145.19.201])
by patchwork2.web.kernel.org (Postfix) with ESMTP id 38620BF13A
for ;
Wed, 12 Feb 2014 08:49:52 +0000 (UTC)
Received: from mail.kernel.org (localhost [127.0.0.1])
by mail.kernel.org (Postfix) with ESMTP id 2C51D20160
for ;
Wed, 12 Feb 2014 08:49:51 +0000 (UTC)
Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243])
by mail.kernel.org (Postfix) with ESMTP id 4032320142
for ;
Wed, 12 Feb 2014 08:49:49 +0000 (UTC)
Received: by alsa0.perex.cz (Postfix, from userid 1000)
id 352C8265074; Wed, 12 Feb 2014 09:49:48 +0100 (CET)
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org
X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_00,NO_DNS_FOR_FROM,
UNPARSEABLE_RELAY,UNRESOLVED_TEMPLATE autolearn=no version=3.3.1
Received: from alsa0.perex.cz (localhost [IPv6:::1])
by alsa0.perex.cz (Postfix) with ESMTP id 6EF4F26500B;
Wed, 12 Feb 2014 09:49:13 +0100 (CET)
X-Original-To: alsa-devel@alsa-project.org
Delivered-To: alsa-devel@alsa-project.org
Received: by alsa0.perex.cz (Postfix, from userid 1000)
id 8EB7C2625D3; Wed, 12 Feb 2014 09:49:11 +0100 (CET)
Received: from va3outboundpool.messaging.microsoft.com
(va3ehsobe005.messaging.microsoft.com [216.32.180.31])
by alsa0.perex.cz (Postfix) with ESMTP id E176D2625FF
for ;
Wed, 12 Feb 2014 09:48:48 +0100 (CET)
Received: from mail225-va3-R.bigfish.com (10.7.14.248) by
VA3EHSOBE003.bigfish.com (10.7.40.23) with Microsoft SMTP Server id
14.1.225.23; Wed, 12 Feb 2014 08:48:47 +0000
Received: from mail225-va3 (localhost [127.0.0.1]) by
mail225-va3-R.bigfish.com (Postfix) with ESMTP id D6C63800566;
Wed, 12 Feb 2014 08:48:47 +0000 (UTC)
X-Forefront-Antispam-Report: CIP:70.37.183.190; KIP:(null); UIP:(null);
IPV:NLI;
H:mail.freescale.net; RD:none; EFVD:NLI
X-SpamScore: 0
X-BigFish:
VS0(zzzz1f42h2148h208ch1ee6h1de0h1fdah2073h2146h1202h1e76h2189h1d1ah1d2ah21bch1fc6hzz1de098h8275bh1de097hz2dh2a8h839he5bhf0ah1288h12a5h12a9h12bdh12e5h137ah139eh13b6h1441h1504h1537h162dh1631h1758h1898h18e1h1946h19b5h1ad9h1b0ah1b2fh2222h224fh1fb3h1d0ch1d2eh1d3fh1dfeh1dffh1e23h1fe8h1ff5h2218h2216h226dh22d0h24afh2327h2336h2438h2461h2487h24d7h2516h2545h255eh1155h)
Received: from mail225-va3 (localhost.localdomain [127.0.0.1]) by mail225-va3
(MessageSwitch) id 139219492639449_3194;
Wed, 12 Feb 2014 08:48:46 +0000 (UTC)
Received: from VA3EHSMHS013.bigfish.com (unknown [10.7.14.232]) by
mail225-va3.bigfish.com (Postfix) with ESMTP id E960B840047;
Wed, 12 Feb 2014 08:48:45 +0000 (UTC)
Received: from mail.freescale.net (70.37.183.190) by VA3EHSMHS013.bigfish.com
(10.7.99.23) with Microsoft SMTP Server (TLS) id 14.16.227.3;
Wed, 12 Feb 2014 08:48:45 +0000
Received: from tx30smr01.am.freescale.net (10.81.153.31) by
039-SN1MMR1-002.039d.mgd.msft.net (10.84.1.15) with Microsoft SMTP
Server (TLS) id 14.3.158.2; Wed, 12 Feb 2014 08:48:43 +0000
Received: from rock.am.freescale.net (rock.ap.freescale.net [10.193.20.106])
by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id
s1C8m7OZ007607; Wed, 12 Feb 2014 01:48:41 -0700
From: Xiubo Li
To: ,
Date: Wed, 12 Feb 2014 15:45:11 +0800
Message-ID: <1392191112-27028-3-git-send-email-Li.Xiubo@freescale.com>
X-Mailer: git-send-email 1.8.0
In-Reply-To: <1392191112-27028-1-git-send-email-Li.Xiubo@freescale.com>
References: <1392191112-27028-1-git-send-email-Li.Xiubo@freescale.com>
MIME-Version: 1.0
X-OriginatorOrg: freescale.com
X-FOPE-CONNECTOR: Id%0$Dn%*$RO%0$TLS%0$FQDN%$TlsDn%
X-FOPE-CONNECTOR:
Id%0$Dn%FREESCALE.MAIL.ONMICROSOFT.COM$RO%1$TLS%0$FQDN%$TlsDn%
Cc: alsa-devel@alsa-project.org, kuninori.morimoto.gx@renesas.com,
tiwai@suse.de, linux-kernel@vger.kernel.org,
Xiubo Li
Subject: [alsa-devel] [PATCH v2 2/3] ASoC: core: add slot information
parsing supports
X-BeenThere: alsa-devel@alsa-project.org
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: "Alsa-devel mailing list for ALSA developers -
http://www.alsa-project.org"
List-Unsubscribe:
,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Errors-To: alsa-devel-bounces@alsa-project.org
Sender: alsa-devel-bounces@alsa-project.org
X-Virus-Scanned: ClamAV using ClamSMTP
For some CPU/CODEC DAI devices the slot infomation maybe needed. This
patch adds the slot parsing from DT supports.
The style of the slot information in DT should be:
For instance:
simple-slot-info = <0xffffffc 0xffffffc 2 0>;
Please refer to tdm-slot.txt for more detail.
Signed-off-by: Xiubo Li
---
include/sound/soc.h | 10 ++++++++++
sound/soc/soc-core.c | 23 +++++++++++++++++++++++
2 files changed, 33 insertions(+)
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 21d025e..1aa85d0 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -1110,6 +1110,13 @@ struct soc_enum {
const unsigned int *values;
};
+struct soc_slot_info {
+ unsigned int tx_mask;
+ unsigned int rx_mask;
+ int slots;
+ int slot_width;
+};
+
/* codec IO */
unsigned int snd_soc_read(struct snd_soc_codec *codec, unsigned int reg);
unsigned int snd_soc_write(struct snd_soc_codec *codec,
@@ -1190,6 +1197,9 @@ int snd_soc_of_parse_card_name(struct snd_soc_card *card,
const char *propname);
int snd_soc_of_parse_audio_simple_widgets(struct snd_soc_card *card,
const char *propname);
+int snd_soc_of_parse_slot_info(struct device_node *np,
+ struct soc_slot_info *info,
+ const char *propname);
int snd_soc_of_parse_audio_routing(struct snd_soc_card *card,
const char *propname);
unsigned int snd_soc_of_parse_daifmt(struct device_node *np,
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index abee5f4..3ad4b88 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -4558,6 +4558,29 @@ int snd_soc_of_parse_audio_simple_widgets(struct snd_soc_card *card,
}
EXPORT_SYMBOL_GPL(snd_soc_of_parse_audio_simple_widgets);
+int snd_soc_of_parse_slot_info(struct device_node *np,
+ struct soc_slot_info *info,
+ const char *propname)
+{
+ u32 out_value[4];
+ int ret;
+
+ if (!info)
+ return -EINVAL;
+
+ ret = of_property_read_u32_array(np, propname, out_value, 4);
+ if (ret)
+ return ret;
+
+ info->tx_mask = out_value[0];
+ info->rx_mask = out_value[1];
+ info->slots = out_value[2];
+ info->slot_width = out_value[3];
+
+ return 0;
+}
+EXPORT_SYMBOL_GPL(snd_soc_of_parse_slot_info);
+
int snd_soc_of_parse_audio_routing(struct snd_soc_card *card,
const char *propname)
{