From 072de836f53be56a70cecf70b43ae43b7ce17376 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Mon, 11 Dec 2023 10:08:36 +0000
Subject: [PATCH] mk-rootfs.sh
---
kernel/sound/soc/codecs/rk817_codec.c | 32 +++++++++++++++++++++-----------
1 files changed, 21 insertions(+), 11 deletions(-)
diff --git a/kernel/sound/soc/codecs/rk817_codec.c b/kernel/sound/soc/codecs/rk817_codec.c
index 66d1ca2..ef06558 100644
--- a/kernel/sound/soc/codecs/rk817_codec.c
+++ b/kernel/sound/soc/codecs/rk817_codec.c
@@ -286,10 +286,10 @@
{RK817_CODEC_AREF_RTCFG1, 0x40},
{RK817_CODEC_DDAC_POPD_DACST, 0x02},
/* APLL */
- {RK817_CODEC_APLL_CFG0, 0x04},
+ /* {RK817_CODEC_APLL_CFG0, 0x04}, */
{RK817_CODEC_APLL_CFG1, 0x58},
{RK817_CODEC_APLL_CFG2, 0x2d},
- {RK817_CODEC_APLL_CFG4, 0xa5},
+ /* {RK817_CODEC_APLL_CFG4, 0xa5}, */
{RK817_CODEC_APLL_CFG5, 0x00},
{RK817_CODEC_DI2S_RXCMD_TSD, 0x00},
@@ -324,10 +324,10 @@
{RK817_CODEC_AREF_RTCFG1, 0x40},
{RK817_CODEC_DADC_SR_ACL0, 0x02},
/* {RK817_CODEC_DTOP_DIGEN_CLKE, 0xff}, */
- {RK817_CODEC_APLL_CFG0, 0x04},
+ /* {RK817_CODEC_APLL_CFG0, 0x04}, */
{RK817_CODEC_APLL_CFG1, 0x58},
{RK817_CODEC_APLL_CFG2, 0x2d},
- {RK817_CODEC_APLL_CFG4, 0xa5},
+ /* {RK817_CODEC_APLL_CFG4, 0xa5}, */
{RK817_CODEC_APLL_CFG5, 0x00},
/*{RK817_CODEC_DI2S_RXCMD_TSD, 0x00},*/
@@ -378,12 +378,16 @@
playback_power_up_list[i].value);
}
- /* Re-configure APLL CFG0/4 if (chip_ver <= 0x4) */
+ /* configure APLL CFG0/4 */
if (rk817->chip_ver <= 0x4) {
DBG("%s (%d): SMIC TudorAG and previous versions\n",
__func__, __LINE__);
snd_soc_component_write(component, RK817_CODEC_APLL_CFG0, 0x0c);
snd_soc_component_write(component, RK817_CODEC_APLL_CFG4, 0x95);
+ } else {
+ DBG("%s: SMIC TudorAG version later\n", __func__);
+ snd_soc_component_write(component, RK817_CODEC_APLL_CFG0, 0x04);
+ snd_soc_component_write(component, RK817_CODEC_APLL_CFG4, 0xa5);
}
snd_soc_component_update_bits(component, RK817_CODEC_DTOP_DIGEN_CLKE,
@@ -405,12 +409,16 @@
capture_power_up_list[i].value);
}
- /* Re-configure APLL CFG0/4 if (chip_ver <= 0x4) */
+ /* configure APLL CFG0/4 */
if (rk817->chip_ver <= 0x4) {
DBG("%s (%d): SMIC TudorAG and previous versions\n",
__func__, __LINE__);
snd_soc_component_write(component, RK817_CODEC_APLL_CFG0, 0x0c);
snd_soc_component_write(component, RK817_CODEC_APLL_CFG4, 0x95);
+ } else {
+ DBG("%s: SMIC TudorAG version later\n", __func__);
+ snd_soc_component_write(component, RK817_CODEC_APLL_CFG0, 0x04);
+ snd_soc_component_write(component, RK817_CODEC_APLL_CFG4, 0xa5);
}
snd_soc_component_update_bits(component, RK817_CODEC_DTOP_DIGEN_CLKE,
@@ -1026,7 +1034,7 @@
return 0;
}
-static int rk817_digital_mute(struct snd_soc_dai *dai, int mute)
+static int rk817_digital_mute(struct snd_soc_dai *dai, int mute, int stream)
{
struct snd_soc_component *component = dai->component;
struct rk817_codec_priv *rk817 = snd_soc_component_get_drvdata(component);
@@ -1140,8 +1148,9 @@
.hw_params = rk817_hw_params,
.set_fmt = rk817_set_dai_fmt,
.set_sysclk = rk817_set_dai_sysclk,
- .digital_mute = rk817_digital_mute,
+ .mute_stream = rk817_digital_mute,
.shutdown = rk817_codec_shutdown,
+ .no_capture_mute = 1,
};
static struct snd_soc_dai_driver rk817_dai[] = {
@@ -1224,14 +1233,14 @@
rk817->playback_path = OFF;
rk817->capture_path = MIC_OFF;
- chip_name = snd_soc_component_read32(component, RK817_PMIC_CHIP_NAME);
- chip_ver = snd_soc_component_read32(component, RK817_PMIC_CHIP_VER);
+ chip_name = snd_soc_component_read(component, RK817_PMIC_CHIP_NAME);
+ chip_ver = snd_soc_component_read(component, RK817_PMIC_CHIP_VER);
rk817->chip_ver = (chip_ver & 0x0f);
dev_info(component->dev, "%s: chip_name:0x%x, chip_ver:0x%x\n", __func__, chip_name, chip_ver);
+ /* always enable mclk, and will disable mclk in rk817_remove */
clk_prepare_enable(rk817->mclk);
rk817_reset(component);
- clk_disable_unprepare(rk817->mclk);
mutex_init(&rk817->clk_lock);
rk817->clk_capture = 0;
rk817->clk_playback = 0;
@@ -1256,6 +1265,7 @@
rk817_codec_power_down(component, RK817_CODEC_ALL);
snd_soc_component_exit_regmap(component);
mutex_destroy(&rk817->clk_lock);
+ clk_disable_unprepare(rk817->mclk);
mdelay(10);
}
--
Gitblit v1.6.2