[PATCHv3] ASoC: Add support for BCM2835
Florian Meier
florian.meier at koalo.de
Mon Nov 18 07:57:00 PST 2013
>> +static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream,
>> + struct snd_pcm_hw_params *params,
>> + struct snd_soc_dai *dai)
>> +{
>> + struct bcm2835_i2s_dev *dev = snd_soc_dai_get_drvdata(dai);
>> +
>> + unsigned int sampling_rate = params_rate(params);
>> + unsigned int data_length, data_delay, bclk_ratio;
>> + unsigned int ch1pos, ch2pos, mode, format;
>> + unsigned int mash = BCM2835_CLK_MASH_1;
>> + unsigned int divi, divf, target_frequency;
>> + int clk_src = -1;
>> + unsigned int master = dev->fmt & SND_SOC_DAIFMT_MASTER_MASK;
>> + uint32_t bit_master = (master == SND_SOC_DAIFMT_CBS_CFS
>> + || master == SND_SOC_DAIFMT_CBS_CFM);
>> +
>> + uint32_t frame_master = (master == SND_SOC_DAIFMT_CBS_CFS
>
> So, if master == SND_SOC_DAIFMT_CBS_CFS both bit_master and frame_master
> will be true. Is it correct?
Yes. That is exactly what CBS_CFS expresses:
Codec Bit Slave and Codec Frame Slave
So the interface is bit master as well as frame master.
Did I miss anything?
More information about the linux-rpi-kernel
mailing list