Commit e14bd35e authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Mark Brown

ASoC: cs43130: Re-use generic struct u16_fract

Instead of custom data type re-use generic struct u16_fract.
No changes intended.
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220502120455.84386-1-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 101b096b
...@@ -712,30 +712,30 @@ static int cs43130_set_sp_fmt(int dai_id, unsigned int bitwidth_sclk, ...@@ -712,30 +712,30 @@ static int cs43130_set_sp_fmt(int dai_id, unsigned int bitwidth_sclk,
case CS43130_ASP_PCM_DAI: case CS43130_ASP_PCM_DAI:
case CS43130_ASP_DOP_DAI: case CS43130_ASP_DOP_DAI:
regmap_write(cs43130->regmap, CS43130_ASP_DEN_1, regmap_write(cs43130->regmap, CS43130_ASP_DEN_1,
(clk_gen->den & CS43130_SP_M_LSB_DATA_MASK) >> (clk_gen->v.denominator & CS43130_SP_M_LSB_DATA_MASK) >>
CS43130_SP_M_LSB_DATA_SHIFT); CS43130_SP_M_LSB_DATA_SHIFT);
regmap_write(cs43130->regmap, CS43130_ASP_DEN_2, regmap_write(cs43130->regmap, CS43130_ASP_DEN_2,
(clk_gen->den & CS43130_SP_M_MSB_DATA_MASK) >> (clk_gen->v.denominator & CS43130_SP_M_MSB_DATA_MASK) >>
CS43130_SP_M_MSB_DATA_SHIFT); CS43130_SP_M_MSB_DATA_SHIFT);
regmap_write(cs43130->regmap, CS43130_ASP_NUM_1, regmap_write(cs43130->regmap, CS43130_ASP_NUM_1,
(clk_gen->num & CS43130_SP_N_LSB_DATA_MASK) >> (clk_gen->v.numerator & CS43130_SP_N_LSB_DATA_MASK) >>
CS43130_SP_N_LSB_DATA_SHIFT); CS43130_SP_N_LSB_DATA_SHIFT);
regmap_write(cs43130->regmap, CS43130_ASP_NUM_2, regmap_write(cs43130->regmap, CS43130_ASP_NUM_2,
(clk_gen->num & CS43130_SP_N_MSB_DATA_MASK) >> (clk_gen->v.numerator & CS43130_SP_N_MSB_DATA_MASK) >>
CS43130_SP_N_MSB_DATA_SHIFT); CS43130_SP_N_MSB_DATA_SHIFT);
break; break;
case CS43130_XSP_DOP_DAI: case CS43130_XSP_DOP_DAI:
regmap_write(cs43130->regmap, CS43130_XSP_DEN_1, regmap_write(cs43130->regmap, CS43130_XSP_DEN_1,
(clk_gen->den & CS43130_SP_M_LSB_DATA_MASK) >> (clk_gen->v.denominator & CS43130_SP_M_LSB_DATA_MASK) >>
CS43130_SP_M_LSB_DATA_SHIFT); CS43130_SP_M_LSB_DATA_SHIFT);
regmap_write(cs43130->regmap, CS43130_XSP_DEN_2, regmap_write(cs43130->regmap, CS43130_XSP_DEN_2,
(clk_gen->den & CS43130_SP_M_MSB_DATA_MASK) >> (clk_gen->v.denominator & CS43130_SP_M_MSB_DATA_MASK) >>
CS43130_SP_M_MSB_DATA_SHIFT); CS43130_SP_M_MSB_DATA_SHIFT);
regmap_write(cs43130->regmap, CS43130_XSP_NUM_1, regmap_write(cs43130->regmap, CS43130_XSP_NUM_1,
(clk_gen->num & CS43130_SP_N_LSB_DATA_MASK) >> (clk_gen->v.numerator & CS43130_SP_N_LSB_DATA_MASK) >>
CS43130_SP_N_LSB_DATA_SHIFT); CS43130_SP_N_LSB_DATA_SHIFT);
regmap_write(cs43130->regmap, CS43130_XSP_NUM_2, regmap_write(cs43130->regmap, CS43130_XSP_NUM_2,
(clk_gen->num & CS43130_SP_N_MSB_DATA_MASK) >> (clk_gen->v.numerator & CS43130_SP_N_MSB_DATA_MASK) >>
CS43130_SP_N_MSB_DATA_SHIFT); CS43130_SP_N_MSB_DATA_SHIFT);
break; break;
default: default:
......
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
#ifndef __CS43130_H__ #ifndef __CS43130_H__
#define __CS43130_H__ #define __CS43130_H__
#include <linux/math.h>
/* CS43130 registers addresses */ /* CS43130 registers addresses */
/* all reg address is shifted by a byte for control byte to be LSB */ /* all reg address is shifted by a byte for control byte to be LSB */
#define CS43130_FIRSTREG 0x010000 #define CS43130_FIRSTREG 0x010000
...@@ -372,97 +374,96 @@ enum cs43130_dai_id { ...@@ -372,97 +374,96 @@ enum cs43130_dai_id {
}; };
struct cs43130_clk_gen { struct cs43130_clk_gen {
unsigned int mclk_int; unsigned int mclk_int;
int fs; int fs;
u16 den; struct u16_fract v;
u16 num;
}; };
/* frm_size = 16 */ /* frm_size = 16 */
static const struct cs43130_clk_gen cs43130_16_clk_gen[] = { static const struct cs43130_clk_gen cs43130_16_clk_gen[] = {
{22579200, 32000, 441, 10,}, { 22579200, 32000, .v = { 441, 10, }, },
{22579200, 44100, 32, 1,}, { 22579200, 44100, .v = { 32, 1, }, },
{22579200, 48000, 147, 5,}, { 22579200, 48000, .v = { 147, 5, }, },
{22579200, 88200, 16, 1,}, { 22579200, 88200, .v = { 16, 1, }, },
{22579200, 96000, 147, 10,}, { 22579200, 96000, .v = { 147, 10, }, },
{22579200, 176400, 8, 1,}, { 22579200, 176400, .v = { 8, 1, }, },
{22579200, 192000, 147, 20,}, { 22579200, 192000, .v = { 147, 20, }, },
{22579200, 352800, 4, 1,}, { 22579200, 352800, .v = { 4, 1, }, },
{22579200, 384000, 147, 40,}, { 22579200, 384000, .v = { 147, 40, }, },
{24576000, 32000, 48, 1,}, { 24576000, 32000, .v = { 48, 1, }, },
{24576000, 44100, 5120, 147,}, { 24576000, 44100, .v = { 5120, 147, }, },
{24576000, 48000, 32, 1,}, { 24576000, 48000, .v = { 32, 1, }, },
{24576000, 88200, 2560, 147,}, { 24576000, 88200, .v = { 2560, 147, }, },
{24576000, 96000, 16, 1,}, { 24576000, 96000, .v = { 16, 1, }, },
{24576000, 176400, 1280, 147,}, { 24576000, 176400, .v = { 1280, 147, }, },
{24576000, 192000, 8, 1,}, { 24576000, 192000, .v = { 8, 1, }, },
{24576000, 352800, 640, 147,}, { 24576000, 352800, .v = { 640, 147, }, },
{24576000, 384000, 4, 1,}, { 24576000, 384000, .v = { 4, 1, }, },
}; };
/* frm_size = 32 */ /* frm_size = 32 */
static const struct cs43130_clk_gen cs43130_32_clk_gen[] = { static const struct cs43130_clk_gen cs43130_32_clk_gen[] = {
{22579200, 32000, 441, 20,}, { 22579200, 32000, .v = { 441, 20, }, },
{22579200, 44100, 16, 1,}, { 22579200, 44100, .v = { 16, 1, }, },
{22579200, 48000, 147, 10,}, { 22579200, 48000, .v = { 147, 10, }, },
{22579200, 88200, 8, 1,}, { 22579200, 88200, .v = { 8, 1, }, },
{22579200, 96000, 147, 20,}, { 22579200, 96000, .v = { 147, 20, }, },
{22579200, 176400, 4, 1,}, { 22579200, 176400, .v = { 4, 1, }, },
{22579200, 192000, 147, 40,}, { 22579200, 192000, .v = { 147, 40, }, },
{22579200, 352800, 2, 1,}, { 22579200, 352800, .v = { 2, 1, }, },
{22579200, 384000, 147, 80,}, { 22579200, 384000, .v = { 147, 80, }, },
{24576000, 32000, 24, 1,}, { 24576000, 32000, .v = { 24, 1, }, },
{24576000, 44100, 2560, 147,}, { 24576000, 44100, .v = { 2560, 147, }, },
{24576000, 48000, 16, 1,}, { 24576000, 48000, .v = { 16, 1, }, },
{24576000, 88200, 1280, 147,}, { 24576000, 88200, .v = { 1280, 147, }, },
{24576000, 96000, 8, 1,}, { 24576000, 96000, .v = { 8, 1, }, },
{24576000, 176400, 640, 147,}, { 24576000, 176400, .v = { 640, 147, }, },
{24576000, 192000, 4, 1,}, { 24576000, 192000, .v = { 4, 1, }, },
{24576000, 352800, 320, 147,}, { 24576000, 352800, .v = { 320, 147, }, },
{24576000, 384000, 2, 1,}, { 24576000, 384000, .v = { 2, 1, }, },
}; };
/* frm_size = 48 */ /* frm_size = 48 */
static const struct cs43130_clk_gen cs43130_48_clk_gen[] = { static const struct cs43130_clk_gen cs43130_48_clk_gen[] = {
{22579200, 32000, 147, 100,}, { 22579200, 32000, .v = { 147, 100, }, },
{22579200, 44100, 32, 3,}, { 22579200, 44100, .v = { 32, 3, }, },
{22579200, 48000, 49, 5,}, { 22579200, 48000, .v = { 49, 5, }, },
{22579200, 88200, 16, 3,}, { 22579200, 88200, .v = { 16, 3, }, },
{22579200, 96000, 49, 10,}, { 22579200, 96000, .v = { 49, 10, }, },
{22579200, 176400, 8, 3,}, { 22579200, 176400, .v = { 8, 3, }, },
{22579200, 192000, 49, 20,}, { 22579200, 192000, .v = { 49, 20, }, },
{22579200, 352800, 4, 3,}, { 22579200, 352800, .v = { 4, 3, }, },
{22579200, 384000, 49, 40,}, { 22579200, 384000, .v = { 49, 40, }, },
{24576000, 32000, 16, 1,}, { 24576000, 32000, .v = { 16, 1, }, },
{24576000, 44100, 5120, 441,}, { 24576000, 44100, .v = { 5120, 441, }, },
{24576000, 48000, 32, 3,}, { 24576000, 48000, .v = { 32, 3, }, },
{24576000, 88200, 2560, 441,}, { 24576000, 88200, .v = { 2560, 441, }, },
{24576000, 96000, 16, 3,}, { 24576000, 96000, .v = { 16, 3, }, },
{24576000, 176400, 1280, 441,}, { 24576000, 176400, .v = { 1280, 441, }, },
{24576000, 192000, 8, 3,}, { 24576000, 192000, .v = { 8, 3, }, },
{24576000, 352800, 640, 441,}, { 24576000, 352800, .v = { 640, 441, }, },
{24576000, 384000, 4, 3,}, { 24576000, 384000, .v = { 4, 3, }, },
}; };
/* frm_size = 64 */ /* frm_size = 64 */
static const struct cs43130_clk_gen cs43130_64_clk_gen[] = { static const struct cs43130_clk_gen cs43130_64_clk_gen[] = {
{22579200, 32000, 441, 40,}, { 22579200, 32000, .v = { 441, 40, }, },
{22579200, 44100, 8, 1,}, { 22579200, 44100, .v = { 8, 1, }, },
{22579200, 48000, 147, 20,}, { 22579200, 48000, .v = { 147, 20, }, },
{22579200, 88200, 4, 1,}, { 22579200, 88200, .v = { 4, 1, }, },
{22579200, 96000, 147, 40,}, { 22579200, 96000, .v = { 147, 40, }, },
{22579200, 176400, 2, 1,}, { 22579200, 176400, .v = { 2, 1, }, },
{22579200, 192000, 147, 80,}, { 22579200, 192000, .v = { 147, 80, }, },
{22579200, 352800, 1, 1,}, { 22579200, 352800, .v = { 1, 1, }, },
{24576000, 32000, 12, 1,}, { 24576000, 32000, .v = { 12, 1, }, },
{24576000, 44100, 1280, 147,}, { 24576000, 44100, .v = { 1280, 147, }, },
{24576000, 48000, 8, 1,}, { 24576000, 48000, .v = { 8, 1, }, },
{24576000, 88200, 640, 147,}, { 24576000, 88200, .v = { 640, 147, }, },
{24576000, 96000, 4, 1,}, { 24576000, 96000, .v = { 4, 1, }, },
{24576000, 176400, 320, 147,}, { 24576000, 176400, .v = { 320, 147, }, },
{24576000, 192000, 2, 1,}, { 24576000, 192000, .v = { 2, 1, }, },
{24576000, 352800, 160, 147,}, { 24576000, 352800, .v = { 160, 147, }, },
{24576000, 384000, 1, 1,}, { 24576000, 384000, .v = { 1, 1, }, },
}; };
struct cs43130_bitwidth_map { struct cs43130_bitwidth_map {
......
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