Commit 9c5c2584 authored by Sebastian Reichel's avatar Sebastian Reichel Committed by Mark Brown

ASoC: da7213: move set_sysclk to codec level

Move set_sysclk function to component level, so that it can be used at
both component and DAI level.
Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
Reviewed-by: default avatarAdam Thomson <Adam.Thomson.Opensource@diasemi.com>
Link: https://lore.kernel.org/r/20200511132544.82364-4-sebastian.reichel@collabora.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent b2a37881
...@@ -1343,10 +1343,10 @@ static int da7213_mute(struct snd_soc_dai *dai, int mute) ...@@ -1343,10 +1343,10 @@ static int da7213_mute(struct snd_soc_dai *dai, int mute)
#define DA7213_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\ #define DA7213_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\
SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE) SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE)
static int da7213_set_dai_sysclk(struct snd_soc_dai *codec_dai, static int da7213_set_component_sysclk(struct snd_soc_component *component,
int clk_id, unsigned int freq, int dir) int clk_id, int source,
unsigned int freq, int dir)
{ {
struct snd_soc_component *component = codec_dai->component;
struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component); struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
int ret = 0; int ret = 0;
...@@ -1354,7 +1354,7 @@ static int da7213_set_dai_sysclk(struct snd_soc_dai *codec_dai, ...@@ -1354,7 +1354,7 @@ static int da7213_set_dai_sysclk(struct snd_soc_dai *codec_dai,
return 0; return 0;
if (((freq < 5000000) && (freq != 32768)) || (freq > 54000000)) { if (((freq < 5000000) && (freq != 32768)) || (freq > 54000000)) {
dev_err(codec_dai->dev, "Unsupported MCLK value %d\n", dev_err(component->dev, "Unsupported MCLK value %d\n",
freq); freq);
return -EINVAL; return -EINVAL;
} }
...@@ -1370,7 +1370,7 @@ static int da7213_set_dai_sysclk(struct snd_soc_dai *codec_dai, ...@@ -1370,7 +1370,7 @@ static int da7213_set_dai_sysclk(struct snd_soc_dai *codec_dai,
DA7213_PLL_MCLK_SQR_EN); DA7213_PLL_MCLK_SQR_EN);
break; break;
default: default:
dev_err(codec_dai->dev, "Unknown clock source %d\n", clk_id); dev_err(component->dev, "Unknown clock source %d\n", clk_id);
return -EINVAL; return -EINVAL;
} }
...@@ -1380,7 +1380,7 @@ static int da7213_set_dai_sysclk(struct snd_soc_dai *codec_dai, ...@@ -1380,7 +1380,7 @@ static int da7213_set_dai_sysclk(struct snd_soc_dai *codec_dai,
freq = clk_round_rate(da7213->mclk, freq); freq = clk_round_rate(da7213->mclk, freq);
ret = clk_set_rate(da7213->mclk, freq); ret = clk_set_rate(da7213->mclk, freq);
if (ret) { if (ret) {
dev_err(codec_dai->dev, "Failed to set clock rate %d\n", dev_err(component->dev, "Failed to set clock rate %d\n",
freq); freq);
return ret; return ret;
} }
...@@ -1507,7 +1507,6 @@ static int da7213_set_dai_pll(struct snd_soc_dai *codec_dai, int pll_id, ...@@ -1507,7 +1507,6 @@ static int da7213_set_dai_pll(struct snd_soc_dai *codec_dai, int pll_id,
static const struct snd_soc_dai_ops da7213_dai_ops = { static const struct snd_soc_dai_ops da7213_dai_ops = {
.hw_params = da7213_hw_params, .hw_params = da7213_hw_params,
.set_fmt = da7213_set_dai_fmt, .set_fmt = da7213_set_dai_fmt,
.set_sysclk = da7213_set_dai_sysclk,
.set_pll = da7213_set_dai_pll, .set_pll = da7213_set_dai_pll,
.digital_mute = da7213_mute, .digital_mute = da7213_mute,
}; };
...@@ -1845,6 +1844,7 @@ static const struct snd_soc_component_driver soc_component_dev_da7213 = { ...@@ -1845,6 +1844,7 @@ static const struct snd_soc_component_driver soc_component_dev_da7213 = {
.num_dapm_widgets = ARRAY_SIZE(da7213_dapm_widgets), .num_dapm_widgets = ARRAY_SIZE(da7213_dapm_widgets),
.dapm_routes = da7213_audio_map, .dapm_routes = da7213_audio_map,
.num_dapm_routes = ARRAY_SIZE(da7213_audio_map), .num_dapm_routes = ARRAY_SIZE(da7213_audio_map),
.set_sysclk = da7213_set_component_sysclk,
.idle_bias_on = 1, .idle_bias_on = 1,
.use_pmdown_time = 1, .use_pmdown_time = 1,
.endianness = 1, .endianness = 1,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment