ASoC: rt5677: Align the reg_default table with tab character
Subsystems (3)
Oder Chiou
maintainerPATCH 1/3 ASoC: rt5677: Align the reg_default table with tab character
Align the reg_default table with tab character
Signed-off-by Oder Chiou <[email protected]>
--- sound/soc/codecs/rt5677.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
sound/soc/codecs/rt5677.c +7 -7
@@ -55,13 +55,13 @@ static const struct regmap_range_cfg rt5677_ranges[] = { };static const struct reg_default init_list[] = { - {RT5677_ASRC_12 ,0x0018 }, - {RT5677_PR_BASE +0x3d ,0x364d }, - {RT5677_PR_BASE +0x17 ,0x4fc0 }, - {RT5677_PR_BASE +0x13 ,0x0312 }, - {RT5677_PR_BASE +0x1e ,0x0000 }, - {RT5677_PR_BASE +0x12 ,0x0eaa }, - {RT5677_PR_BASE +0x14 ,0x018a }, + {RT5677_ASRC_12 ,0x0018 }, + {RT5677_PR_BASE +0x3d ,0x364d }, + {RT5677_PR_BASE +0x17 ,0x4fc0 }, + {RT5677_PR_BASE +0x13 ,0x0312 }, + {RT5677_PR_BASE +0x1e ,0x0000 }, + {RT5677_PR_BASE +0x12 ,0x0eaa }, + {RT5677_PR_BASE +0x14 ,0x018a }, };#define RT5677_INIT_REG_LEN ARRAY_SIZE(init_list)
Signature · 1 line
1.8.1.1.439.g50a6b54
Oder Chiou
maintainerPATCH 2/3 ASoC: rt5677: Follow the gpio naming rule to rename the irq function
Follow the gpio naming rule to rename the irq function.
Signed-off-by Oder Chiou <[email protected]>
--- sound/soc/codecs/rt5677.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
sound/soc/codecs/rt5677.c +4 -5
@@ -4552,7 +4552,7 @@ static struct regmap_irq_chip rt5677_irq_chip = { .mask_invert = 1, }; -static int rt5677_irq_init (struct i2c_client *i2c) +static int rt5677_init_irq (struct i2c_client *i2c) {int ret;struct rt5677_priv *rt5677 =i2c_get_clientdata (i2c);
@@ -4579,7 +4579,7 @@ static int rt5677_irq_init(struct i2c_client *i2c)return 0 ; } -static void rt5677_irq_exit (struct i2c_client *i2c) +static void rt5677_free_irq (struct i2c_client *i2c) {struct rt5677_priv *rt5677 =i2c_get_clientdata (i2c);
@@ -4693,7 +4693,7 @@ static int rt5677_i2c_probe(struct i2c_client *i2c, }rt5677_init_gpio (i2c); -rt5677_irq_init (i2c); +rt5677_init_irq (i2c);return snd_soc_register_codec (&i2c->dev, &soc_codec_dev_rt5677, rt5677_dai,ARRAY_SIZE (rt5677_dai));
@@ -4701,9 +4701,8 @@ static int rt5677_i2c_probe(struct i2c_client *i2c,static int rt5677_i2c_remove (struct i2c_client *i2c) { -rt5677_irq_exit (i2c); -snd_soc_unregister_codec (&i2c->dev); +rt5677_free_irq (i2c);rt5677_free_gpio (i2c);return 0 ;
Signature · 1 line
1.8.1.1.439.g50a6b54
Oder Chiou
maintainerPATCH 3/3 ASoC: rt5677: Set the slow charge of the vref in the end of the power sequences
In reply to Oder ChiouSet the slow charge of the vref in the end of the power sequences
Signed-off-by Oder Chiou <[email protected]>
--- sound/soc/codecs/rt5677.c | 56 ++++++++++++++++++++++++++++++++++++++--------- sound/soc/codecs/rt5677.h | 1 + 2 files changed, 47 insertions(+), 10 deletions(-)
sound/soc/codecs/rt5677.c +46 -10
@@ -2184,6 +2184,31 @@ static int rt5677_if2_adc_tdm_event(struct snd_soc_dapm_widget *w,return 0 ; } +static int rt5677_vref_event (struct snd_soc_dapm_widget *w, +struct snd_kcontrol *kcontrol,int event) +{ +struct snd_soc_codec *codec = w->codec; +struct rt5677_priv *rt5677 =snd_soc_codec_get_drvdata (codec); + +switch (event) { +case SND_SOC_DAPM_POST_PMU : +if (codec->dapm.bias_level !=SND_SOC_BIAS_ON && + !rt5677->is_vref_slow) { +mdelay (20 ); +regmap_update_bits (rt5677->regmap,RT5677_PWR_ANLG1 , +RT5677_PWR_FV1 |RT5677_PWR_FV2 , +RT5677_PWR_FV1 |RT5677_PWR_FV2 ); + rt5677->is_vref_slow = true; + } +break ; + +default : +return 0 ; + } + +return 0 ; +} +static const struct snd_soc_dapm_widget rt5677_dapm_widgets[] = {SND_SOC_DAPM_SUPPLY ("PLL1" ,RT5677_PWR_ANLG2 ,RT5677_PWR_PLL1_BIT ,0 , rt5677_set_pll1_event,SND_SOC_DAPM_POST_PMU ),
@@ -2669,13 +2694,20 @@ static const struct snd_soc_dapm_widget rt5677_dapm_widgets[] = {SND_SOC_DAPM_MUX ("PDM2 R Mux" ,RT5677_PDM_OUT_CTRL ,RT5677_M_PDM2_R_SFT ,1 , &rt5677_pdm2_r_mux), -SND_SOC_DAPM_PGA_S ("LOUT1 amp" ,1 ,RT5677_PWR_ANLG1 ,RT5677_PWR_LO1_BIT , +SND_SOC_DAPM_PGA_S ("LOUT1 amp" ,0 ,RT5677_PWR_ANLG1 ,RT5677_PWR_LO1_BIT ,0 ,NULL ,0 ), -SND_SOC_DAPM_PGA_S ("LOUT2 amp" ,1 ,RT5677_PWR_ANLG1 ,RT5677_PWR_LO2_BIT , +SND_SOC_DAPM_PGA_S ("LOUT2 amp" ,0 ,RT5677_PWR_ANLG1 ,RT5677_PWR_LO2_BIT ,0 ,NULL ,0 ), -SND_SOC_DAPM_PGA_S ("LOUT3 amp" ,1 ,RT5677_PWR_ANLG1 ,RT5677_PWR_LO3_BIT , +SND_SOC_DAPM_PGA_S ("LOUT3 amp" ,0 ,RT5677_PWR_ANLG1 ,RT5677_PWR_LO3_BIT ,0 ,NULL ,0 ), +SND_SOC_DAPM_PGA_S ("LOUT1 vref" ,1 ,SND_SOC_NOPM ,0 ,0 , + rt5677_vref_event,SND_SOC_DAPM_POST_PMU ), +SND_SOC_DAPM_PGA_S ("LOUT2 vref" ,1 ,SND_SOC_NOPM ,0 ,0 , + rt5677_vref_event,SND_SOC_DAPM_POST_PMU ), +SND_SOC_DAPM_PGA_S ("LOUT3 vref" ,1 ,SND_SOC_NOPM ,0 ,0 , + rt5677_vref_event,SND_SOC_DAPM_POST_PMU ), +/* Output Lines */ SND_SOC_DAPM_OUTPUT ("LOUT1" ), SND_SOC_DAPM_OUTPUT("LOUT2"),
@@ -2684,6 +2716,8 @@ static const struct snd_soc_dapm_widget rt5677_dapm_widgets[] = {SND_SOC_DAPM_OUTPUT ("PDM1R" ),SND_SOC_DAPM_OUTPUT ("PDM2L" ),SND_SOC_DAPM_OUTPUT ("PDM2R" ), + + SND_SOC_DAPM_POST("vref", rt5677_vref_event), }; static const struct snd_soc_dapm_route rt5677_dapm_routes[] = {
@@ -3572,9 +3606,13 @@ static const struct snd_soc_dapm_route rt5677_dapm_routes[] = { { "LOUT2 amp", NULL, "DAC 2" }, { "LOUT3 amp", NULL, "DAC 3" }, - { "LOUT1", NULL, "LOUT1 amp" }, - { "LOUT2", NULL, "LOUT2 amp" }, - { "LOUT3", NULL, "LOUT3 amp" }, + { "LOUT1 vref", NULL, "LOUT1 amp" }, + { "LOUT2 vref", NULL, "LOUT2 amp" }, + { "LOUT3 vref", NULL, "LOUT3 amp" }, + + { "LOUT1", NULL, "LOUT1 vref" }, + { "LOUT2", NULL, "LOUT2 vref" }, + { "LOUT3", NULL, "LOUT3 vref" }, { "PDM1L", NULL, "PDM1 L Mux" }, { "PDM1R", NULL, "PDM1 R Mux" },
@@ -3957,14 +3995,12 @@ static int rt5677_set_bias_level(struct snd_soc_codec *codec,RT5677_PR_BASE +RT5677_BIAS_CUR4 , 0x0f00, 0x0f00);regmap_update_bits (rt5677->regmap,RT5677_PWR_ANLG1 , +RT5677_PWR_FV1 |RT5677_PWR_FV2 |RT5677_PWR_VREF1 |RT5677_PWR_MB |RT5677_PWR_BG |RT5677_PWR_VREF2 ,RT5677_PWR_VREF1 |RT5677_PWR_MB |RT5677_PWR_BG |RT5677_PWR_VREF2 ); -mdelay (20 ); -regmap_update_bits (rt5677->regmap,RT5677_PWR_ANLG1 , -RT5677_PWR_FV1 |RT5677_PWR_FV2 , -RT5677_PWR_FV1 |RT5677_PWR_FV2 ); + rt5677->is_vref_slow = false;regmap_update_bits (rt5677->regmap,RT5677_PWR_ANLG2 ,RT5677_PWR_CORE ,RT5677_PWR_CORE ); regmap_update_bits(rt5677->regmap, RT5677_DIG_MISC,
sound/soc/codecs/rt5677.h +1 -0
@@ -1687,6 +1687,7 @@ struct rt5677_priv {bool dsp_vad_en;struct regmap_irq_chip_data *irq_data;bool is_dsp_mode; + bool is_vref_slow; };#endif /* __RT5677_H__ */
Signature · 1 line
1.8.1.1.439.g50a6b54
Quoted 1 line · Oder Chiou
Align the
reg_defaulttable with tab character
Applied all, thanks.