[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