Merge remote-tracking branches 'asoc/topic/max98090', 'asoc/topic/rockchip', 'asoc/topic/rsnd' and 'asoc/topic/rt286' into asoc-next
This commit is contained in:
@@ -244,16 +244,6 @@ static int rockchip_i2s_hw_params(struct snd_pcm_substream *substream,
|
||||
regmap_update_bits(i2s->regmap, I2S_TXCR, I2S_TXCR_VDW_MASK, val);
|
||||
regmap_update_bits(i2s->regmap, I2S_RXCR, I2S_RXCR_VDW_MASK, val);
|
||||
|
||||
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
|
||||
dai->playback_dma_data = &i2s->playback_dma_data;
|
||||
regmap_update_bits(i2s->regmap, I2S_DMACR, I2S_DMACR_TDL_MASK,
|
||||
I2S_DMACR_TDL(1) | I2S_DMACR_TDE_ENABLE);
|
||||
} else {
|
||||
dai->capture_dma_data = &i2s->capture_dma_data;
|
||||
regmap_update_bits(i2s->regmap, I2S_DMACR, I2S_DMACR_RDL_MASK,
|
||||
I2S_DMACR_RDL(1) | I2S_DMACR_RDE_ENABLE);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -301,6 +291,16 @@ static int rockchip_i2s_set_sysclk(struct snd_soc_dai *cpu_dai, int clk_id,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int rockchip_i2s_dai_probe(struct snd_soc_dai *dai)
|
||||
{
|
||||
struct rk_i2s_dev *i2s = snd_soc_dai_get_drvdata(dai);
|
||||
|
||||
dai->capture_dma_data = &i2s->capture_dma_data;
|
||||
dai->playback_dma_data = &i2s->playback_dma_data;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct snd_soc_dai_ops rockchip_i2s_dai_ops = {
|
||||
.hw_params = rockchip_i2s_hw_params,
|
||||
.set_sysclk = rockchip_i2s_set_sysclk,
|
||||
@@ -309,7 +309,9 @@ static const struct snd_soc_dai_ops rockchip_i2s_dai_ops = {
|
||||
};
|
||||
|
||||
static struct snd_soc_dai_driver rockchip_i2s_dai = {
|
||||
.probe = rockchip_i2s_dai_probe,
|
||||
.playback = {
|
||||
.stream_name = "Playback",
|
||||
.channels_min = 2,
|
||||
.channels_max = 8,
|
||||
.rates = SNDRV_PCM_RATE_8000_192000,
|
||||
@@ -319,6 +321,7 @@ static struct snd_soc_dai_driver rockchip_i2s_dai = {
|
||||
SNDRV_PCM_FMTBIT_S24_LE),
|
||||
},
|
||||
.capture = {
|
||||
.stream_name = "Capture",
|
||||
.channels_min = 2,
|
||||
.channels_max = 2,
|
||||
.rates = SNDRV_PCM_RATE_8000_192000,
|
||||
@@ -420,6 +423,11 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
|
||||
dev_err(&pdev->dev, "Can't retrieve i2s bus clock\n");
|
||||
return PTR_ERR(i2s->hclk);
|
||||
}
|
||||
ret = clk_prepare_enable(i2s->hclk);
|
||||
if (ret) {
|
||||
dev_err(i2s->dev, "hclock enable failed %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
i2s->mclk = devm_clk_get(&pdev->dev, "i2s_clk");
|
||||
if (IS_ERR(i2s->mclk)) {
|
||||
|
Reference in New Issue
Block a user