On 09/02/2014 12:26 PM, Xiubo Li wrote:
Signed-off-by: Xiubo Li <Li.Xiubo@xxxxxxxxxxxxx> --- sound/soc/generic/simple-card.c | 61 ++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 32 deletions(-) diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c index 986d2c7..cad2b30 100644 --- a/sound/soc/generic/simple-card.c +++ b/sound/soc/generic/simple-card.c @@ -163,6 +163,26 @@ asoc_simple_card_sub_parse_of(struct device_node *np, return 0; } +static inline unsigned int +asoc_simple_card_fmt_master(struct device_node *np, + struct device_node *bitclkmaster, + struct device_node *framemaster) +{ + switch (((np == bitclkmaster) << 4) | (np == framemaster)) { + case 0x11: + return SND_SOC_DAIFMT_CBS_CFS; + case 0x10: + return SND_SOC_DAIFMT_CBS_CFM; + case 0x01: + return SND_SOC_DAIFMT_CBM_CFS; + default: + return SND_SOC_DAIFMT_CBM_CFM; + } + + /* Shouldn't be here */ + return -EINVAL; +} +
....
+ fmt = asoc_simple_card_fmt_master(np, bitclkmaster, framemaster); + dai_props->cpu_dai.fmt = daifmt | fmt;
...
+ fmt = asoc_simple_card_fmt_master(np, bitclkmaster, + framemaster); + dai_props->codec_dai.fmt = daifmt | fmt;
This won't work. The logic for cpu node needs to be negated for codec node. Best regards, Jyri -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html