|
@@ -1156,18 +1156,44 @@ static int da7219_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
}
|
|
}
|
|
|
|
|
|
- switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
|
|
|
|
- case SND_SOC_DAIFMT_NB_NF:
|
|
|
|
- break;
|
|
|
|
- case SND_SOC_DAIFMT_NB_IF:
|
|
|
|
- dai_clk_mode |= DA7219_DAI_WCLK_POL_INV;
|
|
|
|
- break;
|
|
|
|
- case SND_SOC_DAIFMT_IB_NF:
|
|
|
|
- dai_clk_mode |= DA7219_DAI_CLK_POL_INV;
|
|
|
|
|
|
+ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
|
|
|
|
+ case SND_SOC_DAIFMT_I2S:
|
|
|
|
+ case SND_SOC_DAIFMT_LEFT_J:
|
|
|
|
+ case SND_SOC_DAIFMT_RIGHT_J:
|
|
|
|
+ switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
|
|
|
|
+ case SND_SOC_DAIFMT_NB_NF:
|
|
|
|
+ break;
|
|
|
|
+ case SND_SOC_DAIFMT_NB_IF:
|
|
|
|
+ dai_clk_mode |= DA7219_DAI_WCLK_POL_INV;
|
|
|
|
+ break;
|
|
|
|
+ case SND_SOC_DAIFMT_IB_NF:
|
|
|
|
+ dai_clk_mode |= DA7219_DAI_CLK_POL_INV;
|
|
|
|
+ break;
|
|
|
|
+ case SND_SOC_DAIFMT_IB_IF:
|
|
|
|
+ dai_clk_mode |= DA7219_DAI_WCLK_POL_INV |
|
|
|
|
+ DA7219_DAI_CLK_POL_INV;
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ return -EINVAL;
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
- case SND_SOC_DAIFMT_IB_IF:
|
|
|
|
- dai_clk_mode |= DA7219_DAI_WCLK_POL_INV |
|
|
|
|
- DA7219_DAI_CLK_POL_INV;
|
|
|
|
|
|
+ case SND_SOC_DAIFMT_DSP_B:
|
|
|
|
+ switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
|
|
|
|
+ case SND_SOC_DAIFMT_NB_NF:
|
|
|
|
+ dai_clk_mode |= DA7219_DAI_CLK_POL_INV;
|
|
|
|
+ break;
|
|
|
|
+ case SND_SOC_DAIFMT_NB_IF:
|
|
|
|
+ dai_clk_mode |= DA7219_DAI_WCLK_POL_INV |
|
|
|
|
+ DA7219_DAI_CLK_POL_INV;
|
|
|
|
+ break;
|
|
|
|
+ case SND_SOC_DAIFMT_IB_NF:
|
|
|
|
+ break;
|
|
|
|
+ case SND_SOC_DAIFMT_IB_IF:
|
|
|
|
+ dai_clk_mode |= DA7219_DAI_WCLK_POL_INV;
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ return -EINVAL;
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
return -EINVAL;
|
|
return -EINVAL;
|