diff mbox

ASoC: adau1701: Add 44.1 KHz to supported sample rates

Message ID 1444907766-9892-1-git-send-email-pascal.huerst@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Pascal Huerst Oct. 15, 2015, 11:16 a.m. UTC
From: Pascal Huerst <pascal.huerst@gmail.com>

According to the datasheet, this device does also support 44.1 KHz
as sample rate. This adds the necessary changes to support this.

See Datasheet: Rev. B / page 39 / SR[1:0]

Signed-off-by: Pascal Huerst <pascal.huerst@gmail.com>
---
 sound/soc/codecs/adau1701.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Lars-Peter Clausen Oct. 20, 2015, 9:10 a.m. UTC | #1
On 10/15/2015 01:16 PM, pascal.huerst@gmail.com wrote:
> From: Pascal Huerst <pascal.huerst@gmail.com>
> 
> According to the datasheet, this device does also support 44.1 KHz
> as sample rate. This adds the necessary changes to support this.
> 
> See Datasheet: Rev. B / page 39 / SR[1:0]
> 
> Signed-off-by: Pascal Huerst <pascal.huerst@gmail.com>

Hm, right. The sample rates that part can run at depend on the external
clock rate. It can run at ext_clk / 256, ext_clk / 128 or ext_clk / 64.
Maybe we should just implement it like that.

Do you have support for switching the external clock at runtime on your
platform?

> ---
>  sound/soc/codecs/adau1701.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/sound/soc/codecs/adau1701.c b/sound/soc/codecs/adau1701.c
> index de53c0d..8b3ba51 100644
> --- a/sound/soc/codecs/adau1701.c
> +++ b/sound/soc/codecs/adau1701.c
> @@ -459,6 +459,7 @@ static int adau1701_hw_params(struct snd_pcm_substream *substream,
>  	case 96000:
>  		val = ADAU1701_DSPCTRL_SR_96;
>  		break;
> +	case 44100:
>  	case 48000:
>  		val = ADAU1701_DSPCTRL_SR_48;
>  		break;
> @@ -623,8 +624,8 @@ static int adau1701_startup(struct snd_pcm_substream *substream,
>  	return sigmadsp_restrict_params(adau1701->sigmadsp, substream);
>  }
>  
> -#define ADAU1701_RATES (SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 | \
> -	SNDRV_PCM_RATE_192000)
> +#define ADAU1701_RATES (SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 |\
> +	SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_192000)
>  
>  #define ADAU1701_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\
>  	SNDRV_PCM_FMTBIT_S24_LE)
>
Pascal Huerst Nov. 11, 2015, 11:40 a.m. UTC | #2
On 20.10.2015 11:10, Lars-Peter Clausen wrote:
> On 10/15/2015 01:16 PM, pascal.huerst@gmail.com wrote:
>> From: Pascal Huerst <pascal.huerst@gmail.com>
>>
>> According to the datasheet, this device does also support 44.1 KHz
>> as sample rate. This adds the necessary changes to support this.
>>
>> See Datasheet: Rev. B / page 39 / SR[1:0]
>>
>> Signed-off-by: Pascal Huerst <pascal.huerst@gmail.com>
> 
> Hm, right. The sample rates that part can run at depend on the external
> clock rate. It can run at ext_clk / 256, ext_clk / 128 or ext_clk / 64.
> Maybe we should just implement it like that.
> 
> Do you have support for switching the external clock at runtime on your
> platform?

Yes, I can switch th eclock at runtime.

>> ---
>>  sound/soc/codecs/adau1701.c | 5 +++--
>>  1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/sound/soc/codecs/adau1701.c b/sound/soc/codecs/adau1701.c
>> index de53c0d..8b3ba51 100644
>> --- a/sound/soc/codecs/adau1701.c
>> +++ b/sound/soc/codecs/adau1701.c
>> @@ -459,6 +459,7 @@ static int adau1701_hw_params(struct snd_pcm_substream *substream,
>>  	case 96000:
>>  		val = ADAU1701_DSPCTRL_SR_96;
>>  		break;
>> +	case 44100:
>>  	case 48000:
>>  		val = ADAU1701_DSPCTRL_SR_48;
>>  		break;
>> @@ -623,8 +624,8 @@ static int adau1701_startup(struct snd_pcm_substream *substream,
>>  	return sigmadsp_restrict_params(adau1701->sigmadsp, substream);
>>  }
>>  
>> -#define ADAU1701_RATES (SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 | \
>> -	SNDRV_PCM_RATE_192000)
>> +#define ADAU1701_RATES (SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 |\
>> +	SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_192000)
>>  
>>  #define ADAU1701_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\
>>  	SNDRV_PCM_FMTBIT_S24_LE)
>>
>
Lars-Peter Clausen Nov. 11, 2015, 11:49 a.m. UTC | #3
On 11/11/2015 12:40 PM, Pascal Huerst wrote:
> On 20.10.2015 11:10, Lars-Peter Clausen wrote:
>> On 10/15/2015 01:16 PM, pascal.huerst@gmail.com wrote:
>>> From: Pascal Huerst <pascal.huerst@gmail.com>
>>>
>>> According to the datasheet, this device does also support 44.1 KHz
>>> as sample rate. This adds the necessary changes to support this.
>>>
>>> See Datasheet: Rev. B / page 39 / SR[1:0]
>>>
>>> Signed-off-by: Pascal Huerst <pascal.huerst@gmail.com>
>>
>> Hm, right. The sample rates that part can run at depend on the external
>> clock rate. It can run at ext_clk / 256, ext_clk / 128 or ext_clk / 64.
>> Maybe we should just implement it like that.
>>
>> Do you have support for switching the external clock at runtime on your
>> platform?
> 
> Yes, I can switch th eclock at runtime.

How do you do it? From the board driver?

- Lars
Pascal Huerst Nov. 11, 2015, 12:42 p.m. UTC | #4
On 11.11.2015 12:49, Lars-Peter Clausen wrote:
> On 11/11/2015 12:40 PM, Pascal Huerst wrote:
>> On 20.10.2015 11:10, Lars-Peter Clausen wrote:
>>> On 10/15/2015 01:16 PM, pascal.huerst@gmail.com wrote:
>>>> From: Pascal Huerst <pascal.huerst@gmail.com>
>>>>
>>>> According to the datasheet, this device does also support 44.1 KHz
>>>> as sample rate. This adds the necessary changes to support this.
>>>>
>>>> See Datasheet: Rev. B / page 39 / SR[1:0]
>>>>
>>>> Signed-off-by: Pascal Huerst <pascal.huerst@gmail.com>
>>>
>>> Hm, right. The sample rates that part can run at depend on the external
>>> clock rate. It can run at ext_clk / 256, ext_clk / 128 or ext_clk / 64.
>>> Maybe we should just implement it like that.
>>>
>>> Do you have support for switching the external clock at runtime on your
>>> platform?
>>
>> Yes, I can switch th eclock at runtime.
> 
> How do you do it? From the board driver?

Yes, in the board driver, within the .hw_params callback.

> - Lars
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
Pascal Huerst Nov. 19, 2015, 1:30 p.m. UTC | #5
On 20.10.2015 11:10, Lars-Peter Clausen wrote:
> On 10/15/2015 01:16 PM, pascal.huerst@gmail.com wrote:
>> From: Pascal Huerst <pascal.huerst@gmail.com>
>>
>> According to the datasheet, this device does also support 44.1 KHz
>> as sample rate. This adds the necessary changes to support this.
>>
>> See Datasheet: Rev. B / page 39 / SR[1:0]
>>
>> Signed-off-by: Pascal Huerst <pascal.huerst@gmail.com>
> 
> Hm, right. The sample rates that part can run at depend on the external
> clock rate. It can run at ext_clk / 256, ext_clk / 128 or ext_clk / 64.
> Maybe we should just implement it like that.

Don't you think, that it is just consistent to add 44100, just as the
other sample rates that are supported?

> Do you have support for switching the external clock at runtime on your
> platform?
> 
>> ---
>>  sound/soc/codecs/adau1701.c | 5 +++--
>>  1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/sound/soc/codecs/adau1701.c b/sound/soc/codecs/adau1701.c
>> index de53c0d..8b3ba51 100644
>> --- a/sound/soc/codecs/adau1701.c
>> +++ b/sound/soc/codecs/adau1701.c
>> @@ -459,6 +459,7 @@ static int adau1701_hw_params(struct snd_pcm_substream *substream,
>>  	case 96000:
>>  		val = ADAU1701_DSPCTRL_SR_96;
>>  		break;
>> +	case 44100:
>>  	case 48000:
>>  		val = ADAU1701_DSPCTRL_SR_48;
>>  		break;
>> @@ -623,8 +624,8 @@ static int adau1701_startup(struct snd_pcm_substream *substream,
>>  	return sigmadsp_restrict_params(adau1701->sigmadsp, substream);
>>  }
>>  
>> -#define ADAU1701_RATES (SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 | \
>> -	SNDRV_PCM_RATE_192000)
>> +#define ADAU1701_RATES (SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 |\
>> +	SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_192000)
>>  
>>  #define ADAU1701_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\
>>  	SNDRV_PCM_FMTBIT_S24_LE)
>>
>
diff mbox

Patch

diff --git a/sound/soc/codecs/adau1701.c b/sound/soc/codecs/adau1701.c
index de53c0d..8b3ba51 100644
--- a/sound/soc/codecs/adau1701.c
+++ b/sound/soc/codecs/adau1701.c
@@ -459,6 +459,7 @@  static int adau1701_hw_params(struct snd_pcm_substream *substream,
 	case 96000:
 		val = ADAU1701_DSPCTRL_SR_96;
 		break;
+	case 44100:
 	case 48000:
 		val = ADAU1701_DSPCTRL_SR_48;
 		break;
@@ -623,8 +624,8 @@  static int adau1701_startup(struct snd_pcm_substream *substream,
 	return sigmadsp_restrict_params(adau1701->sigmadsp, substream);
 }
 
-#define ADAU1701_RATES (SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 | \
-	SNDRV_PCM_RATE_192000)
+#define ADAU1701_RATES (SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 |\
+	SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_192000)
 
 #define ADAU1701_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\
 	SNDRV_PCM_FMTBIT_S24_LE)