ASoC: rt5682: Add CCF usage for providing I2S clks
authorDerek Fang <derek.fang@realtek.com>
Tue, 18 Feb 2020 13:51:51 +0000 (21:51 +0800)
committerMark Brown <broonie@kernel.org>
Tue, 18 Feb 2020 22:23:24 +0000 (22:23 +0000)
commitebbfabc16d23dfd20eecd4b6e68212fec37ae7c6
treed6a60a1f68608efa5774bc1c65ba44f647f39e7c
parent70368106467cd8c420176bf3ab0acc797f6584bf
ASoC: rt5682: Add CCF usage for providing I2S clks

There is a need to use RT5682 as DAI clock master for other codecs
within a platform, which means that the DAI clocks are required to
remain, regardless of whether the RT5682 is actually running
playback/capture.

The RT5682 CCF basic functions are implemented almost by the existing
internal functions and asoc apis. It needs a clk provider (rt5682 mclk)
to generate the bclk and wclk outputs.

The RT5682 CCF supports and restricts as below:
1. Fmt of DAI-AIF1 must be configured to master before using CCF.
2. Only accept a 48MHz clk as the clk provider.
3. Only provide a 48kHz wclk and a set of multiples of wclk as bclk.

There are some temporary limitations in this patch until a better
implementation.

Signed-off-by: Derek Fang <derek.fang@realtek.com>
Link: https://lore.kernel.org/r/1582033912-6841-1-git-send-email-derek.fang@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/rt5682.h
sound/soc/codecs/rt5682.c
sound/soc/codecs/rt5682.h