Skip to content

Commit e0dff83

Browse files
shumingfanSasha Levin
authored andcommitted
ASoC: rt722: add settings for rt722VB
[ Upstream commit a275398 ] This patch adds settings for RT722VB. Signed-off-by: Shuming Fan <shumingf@realtek.com> Link: https://patch.msgid.link/20251007080950.1999411-1-shumingf@realtek.com Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 3b3248b commit e0dff83

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

sound/soc/codecs/rt722-sdca-sdw.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ static int rt722_sdca_mbq_size(struct device *dev, unsigned int reg)
2121
switch (reg) {
2222
case 0x2f01 ... 0x2f0a:
2323
case 0x2f35 ... 0x2f36:
24-
case 0x2f50:
24+
case 0x2f50 ... 0x2f52:
2525
case 0x2f54:
2626
case 0x2f58 ... 0x2f5d:
2727
case SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT722_SDCA_ENT0, RT722_SDCA_CTL_FUNC_STATUS, 0):

sound/soc/codecs/rt722-sdca.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1378,6 +1378,9 @@ static void rt722_sdca_dmic_preset(struct rt722_sdca_priv *rt722)
13781378
/* PHYtiming TDZ/TZD control */
13791379
regmap_write(rt722->regmap, 0x2f03, 0x06);
13801380

1381+
if (rt722->hw_vid == RT722_VB)
1382+
regmap_write(rt722->regmap, 0x2f52, 0x00);
1383+
13811384
/* clear flag */
13821385
regmap_write(rt722->regmap,
13831386
SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY, RT722_SDCA_ENT0, RT722_SDCA_CTL_FUNC_STATUS, 0),
@@ -1415,6 +1418,9 @@ static void rt722_sdca_amp_preset(struct rt722_sdca_priv *rt722)
14151418
SDW_SDCA_CTL(FUNC_NUM_AMP, RT722_SDCA_ENT_OT23,
14161419
RT722_SDCA_CTL_VENDOR_DEF, CH_08), 0x04);
14171420

1421+
if (rt722->hw_vid == RT722_VB)
1422+
regmap_write(rt722->regmap, 0x2f54, 0x00);
1423+
14181424
/* clear flag */
14191425
regmap_write(rt722->regmap,
14201426
SDW_SDCA_CTL(FUNC_NUM_AMP, RT722_SDCA_ENT0, RT722_SDCA_CTL_FUNC_STATUS, 0),
@@ -1506,6 +1512,9 @@ static void rt722_sdca_jack_preset(struct rt722_sdca_priv *rt722)
15061512
rt722_sdca_index_write(rt722, RT722_VENDOR_REG, RT722_DIGITAL_MISC_CTRL4,
15071513
0x0010);
15081514

1515+
if (rt722->hw_vid == RT722_VB)
1516+
regmap_write(rt722->regmap, 0x2f51, 0x00);
1517+
15091518
/* clear flag */
15101519
regmap_write(rt722->regmap,
15111520
SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT722_SDCA_ENT0, RT722_SDCA_CTL_FUNC_STATUS, 0),
@@ -1516,6 +1525,7 @@ static void rt722_sdca_jack_preset(struct rt722_sdca_priv *rt722)
15161525
int rt722_sdca_io_init(struct device *dev, struct sdw_slave *slave)
15171526
{
15181527
struct rt722_sdca_priv *rt722 = dev_get_drvdata(dev);
1528+
unsigned int val;
15191529

15201530
rt722->disable_irq = false;
15211531

@@ -1545,6 +1555,10 @@ int rt722_sdca_io_init(struct device *dev, struct sdw_slave *slave)
15451555

15461556
pm_runtime_get_noresume(&slave->dev);
15471557

1558+
rt722_sdca_index_read(rt722, RT722_VENDOR_REG, RT722_JD_PRODUCT_NUM, &val);
1559+
rt722->hw_vid = (val & 0x0f00) >> 8;
1560+
dev_dbg(&slave->dev, "%s hw_vid=0x%x\n", __func__, rt722->hw_vid);
1561+
15481562
rt722_sdca_dmic_preset(rt722);
15491563
rt722_sdca_amp_preset(rt722);
15501564
rt722_sdca_jack_preset(rt722);

sound/soc/codecs/rt722-sdca.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ struct rt722_sdca_priv {
3939
/* For DMIC */
4040
bool fu1e_dapm_mute;
4141
bool fu1e_mixer_mute[4];
42+
int hw_vid;
4243
};
4344

4445
struct rt722_sdca_dmic_kctrl_priv {
@@ -233,6 +234,11 @@ enum rt722_sdca_jd_src {
233234
RT722_JD1,
234235
};
235236

237+
enum rt722_sdca_version {
238+
RT722_VA,
239+
RT722_VB,
240+
};
241+
236242
int rt722_sdca_io_init(struct device *dev, struct sdw_slave *slave);
237243
int rt722_sdca_init(struct device *dev, struct regmap *regmap, struct sdw_slave *slave);
238244
int rt722_sdca_index_write(struct rt722_sdca_priv *rt722,

0 commit comments

Comments
 (0)