Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0e3f0e55 authored by Guiting Shen's avatar Guiting Shen Committed by Greg Kroah-Hartman
Browse files

ASoC: atmel: Fix the 8K sample parameter in I2SC master



[ Upstream commit f85739c0b2b0d98a32f5ca4fcc5501d2b76df4f6 ]

The 8K sample parameter of 12.288Mhz main system bus clock doesn't work
because the I2SC_MR.IMCKDIV must not be 0 according to the sama5d2
series datasheet(I2SC Mode Register of Register Summary).

So use the 6.144Mhz instead of 12.288Mhz to support 8K sample.

Signed-off-by: default avatarGuiting Shen <aarongt.shen@gmail.com>
Link: https://lore.kernel.org/r/20230715030620.62328-1-aarongt.shen@gmail.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 0b718d1d
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -163,11 +163,14 @@ struct atmel_i2s_gck_param {

#define I2S_MCK_12M288		12288000UL
#define I2S_MCK_11M2896		11289600UL
#define I2S_MCK_6M144		6144000UL

/* mck = (32 * (imckfs+1) / (imckdiv+1)) * fs */
static const struct atmel_i2s_gck_param gck_params[] = {
	/* mck = 6.144Mhz */
	{  8000, I2S_MCK_6M144,  1, 47},	/* mck =  768 fs */

	/* mck = 12.288MHz */
	{  8000, I2S_MCK_12M288, 0, 47},	/* mck = 1536 fs */
	{ 16000, I2S_MCK_12M288, 1, 47},	/* mck =  768 fs */
	{ 24000, I2S_MCK_12M288, 3, 63},	/* mck =  512 fs */
	{ 32000, I2S_MCK_12M288, 3, 47},	/* mck =  384 fs */