ASoC: adau1977: Update to modern clocking terminology
As part of moving to remove the old style defines for the bus clocks update the adau1977 driver to use more modern terminology for clocking. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20210916151806.20756-5-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
a41a008fe8
commit
21b686e0bf
|
@ -124,10 +124,10 @@ struct adau1977 {
|
|||
struct device *dev;
|
||||
void (*switch_mode)(struct device *dev);
|
||||
|
||||
unsigned int max_master_fs;
|
||||
unsigned int max_clock_provider_fs;
|
||||
unsigned int slot_width;
|
||||
bool enabled;
|
||||
bool master;
|
||||
bool clock_provider;
|
||||
};
|
||||
|
||||
static const struct reg_default adau1977_reg_defaults[] = {
|
||||
|
@ -330,7 +330,7 @@ static int adau1977_hw_params(struct snd_pcm_substream *substream,
|
|||
ctrl0_mask |= ADAU1977_SAI_CTRL0_FMT_MASK;
|
||||
}
|
||||
|
||||
if (adau1977->master) {
|
||||
if (adau1977->clock_provider) {
|
||||
switch (params_width(params)) {
|
||||
case 16:
|
||||
ctrl1 = ADAU1977_SAI_CTRL1_DATA_WIDTH_16BIT;
|
||||
|
@ -504,7 +504,7 @@ static int adau1977_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
|
|||
if (slots == 0) {
|
||||
/* 0 = No fixed slot width */
|
||||
adau1977->slot_width = 0;
|
||||
adau1977->max_master_fs = 192000;
|
||||
adau1977->max_clock_provider_fs = 192000;
|
||||
return regmap_update_bits(adau1977->regmap,
|
||||
ADAU1977_REG_SAI_CTRL0, ADAU1977_SAI_CTRL0_SAI_MASK,
|
||||
ADAU1977_SAI_CTRL0_SAI_I2S);
|
||||
|
@ -533,7 +533,7 @@ static int adau1977_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
|
|||
break;
|
||||
case 24:
|
||||
/* We can only generate 16 bit or 32 bit wide slots */
|
||||
if (adau1977->master)
|
||||
if (adau1977->clock_provider)
|
||||
return -EINVAL;
|
||||
ctrl1 = ADAU1977_SAI_CTRL1_SLOT_WIDTH_24;
|
||||
break;
|
||||
|
@ -593,8 +593,8 @@ static int adau1977_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
|
|||
|
||||
adau1977->slot_width = width;
|
||||
|
||||
/* In master mode the maximum bitclock is 24.576 MHz */
|
||||
adau1977->max_master_fs = min(192000, 24576000 / width / slots);
|
||||
/* In clock provider mode the maximum bitclock is 24.576 MHz */
|
||||
adau1977->max_clock_provider_fs = min(192000, 24576000 / width / slots);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -620,13 +620,13 @@ static int adau1977_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
|
|||
bool invert_lrclk;
|
||||
int ret;
|
||||
|
||||
switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
|
||||
case SND_SOC_DAIFMT_CBS_CFS:
|
||||
adau1977->master = false;
|
||||
switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) {
|
||||
case SND_SOC_DAIFMT_CBC_CFC:
|
||||
adau1977->clock_provider = false;
|
||||
break;
|
||||
case SND_SOC_DAIFMT_CBM_CFM:
|
||||
case SND_SOC_DAIFMT_CBP_CFP:
|
||||
ctrl1 |= ADAU1977_SAI_CTRL1_MASTER;
|
||||
adau1977->master = true;
|
||||
adau1977->clock_provider = true;
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
|
@ -714,9 +714,10 @@ static int adau1977_startup(struct snd_pcm_substream *substream,
|
|||
snd_pcm_hw_constraint_list(substream->runtime, 0,
|
||||
SNDRV_PCM_HW_PARAM_RATE, &adau1977->constraints);
|
||||
|
||||
if (adau1977->master)
|
||||
if (adau1977->clock_provider)
|
||||
snd_pcm_hw_constraint_minmax(substream->runtime,
|
||||
SNDRV_PCM_HW_PARAM_RATE, 8000, adau1977->max_master_fs);
|
||||
SNDRV_PCM_HW_PARAM_RATE, 8000,
|
||||
adau1977->max_clock_provider_fs);
|
||||
|
||||
if (formats != 0)
|
||||
snd_pcm_hw_constraint_mask64(substream->runtime,
|
||||
|
@ -913,7 +914,7 @@ int adau1977_probe(struct device *dev, struct regmap *regmap,
|
|||
adau1977->type = type;
|
||||
adau1977->regmap = regmap;
|
||||
adau1977->switch_mode = switch_mode;
|
||||
adau1977->max_master_fs = 192000;
|
||||
adau1977->max_clock_provider_fs = 192000;
|
||||
|
||||
adau1977->constraints.list = adau1977_rates;
|
||||
adau1977->constraints.count = ARRAY_SIZE(adau1977_rates);
|
||||
|
|
Loading…
Reference in New Issue