[PATCH 2/2] ASoC: Add support for HifiBerry DAC
Martin Sperl
kernel at martin.sperl.org
Fri May 13 05:20:57 PDT 2016
> On 13.05.2016, at 12:54, Mark Brown <broonie at kernel.org> wrote:
>
> On Fri, May 13, 2016 at 09:14:13AM +0000, kernel at martin.sperl.org wrote:
>
>> +static int snd_rpi_hifiberry_dac_init(struct snd_soc_pcm_runtime *rtd)
>> +{
>> + return 0;
>> +}
>
> Remove empty functions. Either they are redundant or you really need to
> do something in them.
>
Sure this can get removed.
As said - it is just pushing the patches upstream,
so I did not even touch it.
>> +static struct snd_soc_dai_link snd_rpi_hifiberry_dac_dai[] = {
>> +{
>> + .name = "HifiBerry DAC",
>> + .stream_name = "HifiBerry DAC HiFi",
>> + .cpu_dai_name = "bcm2708-i2s.0",
>> + .codec_dai_name = "pcm5102a-hifi",
>> + .platform_name = "bcm2708-i2s.0",
>> + .codec_name = "pcm5102a-codec",
>
> I would expect all this to be done with DT references in a DT driver
> rather than hard coding static names - look at how simple-card does this.
> You could almost use simple-card here but the BCLK ratio requirement is
> probably a bit much, I'm not immediately seeing a nice way to specify
> the ratio there since it depends on the sample width.
Actually it is just: <sample-width> * <number of channels>
where number of channels is fixed to 2 for bcm2835-i2s.
So maybe that already happens automatically in the framework?
I will need to test it...
I also know that some of the audio guys working on the rpi
would like to be able to configure BCLK ratios based on both:
sample frequency and sample_width.
Basically they want to control the clock divider/clock parent
trying to avoid fractional dividers.
Something like this could get added to the core?
Is there interest in getting something like this?
Could look like this:
bclk-ratios =
/* for 96kHz at 16bit/channel use bclk-ratio 40 */
<96000 16 40>,
/* for 48kHz at 32bit/channel use bclk-ratio 80 */
<48000 16 80>,
/* for any (other) sample frequency at 16 bit use bclk-ratio 32 */
<0 16 32>,
/* for any (other) sample frequency at 32 bit use bclk-ratio 64 */
<0 32 64>;
but there could also be other approaches as well,
how this could get described in the device tree.
More information about the linux-rpi-kernel
mailing list