From 5c1f1aada7e59c6796b73295b2b7a75d4506f14a Mon Sep 17 00:00:00 2001 From: Aditya Bavanari Date: Mon, 13 Aug 2018 12:15:38 +0530 Subject: [PATCH] asoc: bolero: Add codec version info to support ADIE RTC In order to differentiate between targets, codec version info is used. Assign codec version based on number of macros registered in bolero. CRs-Fixed: 2281591 Change-Id: I0f4cf0e49645d3acf0c413ea93d9c0261ac98848 Signed-off-by: Aditya Bavanari --- asoc/codecs/bolero/bolero-cdc.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/asoc/codecs/bolero/bolero-cdc.c b/asoc/codecs/bolero/bolero-cdc.c index 51e56df51c55..749f87b973c3 100644 --- a/asoc/codecs/bolero/bolero-cdc.c +++ b/asoc/codecs/bolero/bolero-cdc.c @@ -23,6 +23,8 @@ #include "internal.h" #define BOLERO_VERSION_1_0 0x0001 +#define BOLERO_VERSION_1_1 0x0002 +#define BOLERO_VERSION_1_2 0x0003 #define BOLERO_VERSION_ENTRY_SIZE 32 static struct snd_soc_codec_driver bolero; @@ -412,6 +414,12 @@ static ssize_t bolero_version_read(struct snd_info_entry *entry, case BOLERO_VERSION_1_0: len = snprintf(buffer, sizeof(buffer), "BOLERO_1_0\n"); break; + case BOLERO_VERSION_1_1: + len = snprintf(buffer, sizeof(buffer), "BOLERO_1_1\n"); + break; + case BOLERO_VERSION_1_2: + len = snprintf(buffer, sizeof(buffer), "BOLERO_1_2\n"); + break; default: len = snprintf(buffer, sizeof(buffer), "VER_UNDEFINED\n"); } @@ -499,7 +507,20 @@ static int bolero_soc_codec_probe(struct snd_soc_codec *codec) } } priv->codec = codec; - priv->version = BOLERO_VERSION_1_0; + /* + * In order for the ADIE RTC to differentiate between targets + * version info is used. + * Assign 1.0 for target with only one macro + * Assign 1.1 for target with two macros + * Assign 1.2 for target with more than two macros + */ + if (priv->num_macros_registered == 1) + priv->version = BOLERO_VERSION_1_0; + else if (priv->num_macros_registered == 2) + priv->version = BOLERO_VERSION_1_1; + else if (priv->num_macros_registered > 2) + priv->version = BOLERO_VERSION_1_2; + dev_dbg(codec->dev, "%s: bolero soc codec probe success\n", __func__); err: return ret;