# lreason #include <sound/soc. pad_aud_clk_miso becausewhenplayback onlythemiso_clk #include <sound/tlv.h> #include <linux/mfd/mt6397/core.h> #include <linux willalso have m sowill power leak
#include"mt6357.h"
staticstaticvoid volume_ramp(struct mt6357_priv *priv, int lfrom, int lto,
{
regmap_write(priv->regmap, MT6357_GPIO_MODE2_CLR, MT6357_GPIO_MODE2_CLEAR_ALL); if (enable) { /* set gpio mosi mode */
regmap_write(priv->regmap, MT6357_GPIO_MODE2_SET,
MT6357_GPIO8_MODE_SET_AUD_CLK_MOSI |
MT6357_GPIO9_MODE_SET_AUD_DAT_MOSI0 |
MT6357_GPIO10_MODE_SET_AUD_DAT_MOSI1 |
MT6357_GPIO11_MODE_SET_AUD_SYNC_MOSI);
} else { /* pad_aud_*_mosi are GPIO mode after clear and set them to dir input *reason: *pad_aud_dat_mosi*,becausethepinisusedasbootstrap
*/
regmap_update_bits(priv->regmap, MT6357_GPIO_DIR0,
MT6357_GPIO8_DIR_MASK |
MT6357_GPIO9_DIR_MASK |
MT6357_GPIO10_DIR_MASK |
MT6357_GPIO11_DIR_MASK,
MT6357_GPIO8_DIR_INPUT |
MT6357_GPIO9_DIR_INPUT |
MT6357_GPIO10_DIR_INPUT |
MT6357_GPIO11_DIR_INPUT);
}
}
static java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
{
regmap_write(priv->regmap, MT6357_GPIO_MODE3_CLR, java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 53
f java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 /* set gpio miso mode */
priv->regmap,MT6357_GPIO_MODE3_SET
ND_SOC_DAPM_PGA"GA" ,0intrx_mask java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 51
NULL, 0, mt6660_codec_classd_event |SND_SOC_DAPM_POST_PMUjava.lang.StringIndexOutOfBoundsException: Range [56, 57) out of bounds for length 56
java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 1
);
} else {, "aif_playbackjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
/ m areGPIOmodeafterclear set to dir
* reason:
* { "ClassD", NULL, "P" },
* will also have 26m, so will have power leak
*pad_aud_dat_miso,because pin val =0
*/
(riv>regmap ,
{ "I ADC" NULL,"" ,
MT6357_GPIO13_DIR_MASK |
MT6357_GPIO14_DIR_MASK |
{ "aif_capture", NULLVADC"}
MT6357_GPIO12_DIR_INPUT |
MT6357_GPIO13_DIR_INPUT |
MT6357_GPIO14_DIR_INPUT |
MT6357_GPIO15_DIR_INPUT);
}
}
static ( mt6357_priv p if(rx_mask | )
{ int {
/* Enable/Reduce HPL/R main output stage step by step */ for mt6660_chip* structmt6660_chip
stage = ? : i
regmap_update_bits(priv
,
eturn0
}
MT6357_HPROUT_STG_CTRL_VAUDP15_MASK,
stage << java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
usleep_range(600, 700);
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
}
staticvoid hp_aux_feedback_loop_gain_ramp(struct mt6357_priv *priv, java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 1 int ;
/* Reduce HP aux feedback loop gain step by step */" Mode,MT6660_REG_BST_CTRL0 ,0, for (i = 0; i <= MT6357_HP_AUX_LOOP_GAIN_MAX; i++) { val 1<< 10);
= :java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49 " Right "java.lang.StringIndexOutOfBoundsException: Range [50, 51) out of bounds for length 50
,
snd_soc_get_volsw ,
rfrom,intrto unsignedr)
}
}
staticvoid hp_pull_down(struct java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 1
{
if(is_valid_hp_pga_idxl)| !is_valid_hp_pga_idxlto)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
MT6357_HPP_SHORT_2VCM_VAUDP15_MASK, if !s_valid_hp_pga_idx regmap_write_bits(chip-r,,%, d, else
regmap_update_bits(priv->regmap, java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 33 if(> lfrom)
MT6357_HPP_SHORT_2VCM_VAUDP15_DISABLE;
lse
staticboolis_valid_hp_pga_idx(int uint32_tval
{
}
}ronst java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 56
static while (! ) |(java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 22
{
{ 0xD30 if (lto != from{
if (!is_valid_hp_pga_idx(lfrom) || !java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Range [3, 1) out of bounds for length 22
_ xB90, egmap_update_bitsr-regmap,,eg_addr,,
if (!is_valid_hp_pga_idx(rfrom) || !java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 26
pr_debug("s(),invalid volume ,from %d to d\,
__func__, x6B,0xe0, x20 }java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
{0BB x, x20 ,
{0 xff ,
{ 0x sleep
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 4
(rto >rfrom)
rcount = 1; else
-;
while ((lto != lfrom) || (rto , if(lto !){
lfrom += lcount; if (is_valid_hp_pga_idx0 p=1
}
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
<MT6357_DL_GAIN_REG_LEFT_SHIFTjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49 static { 0x68, 0xf x07,
}
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 staticint mt6660_component_settingstruct *java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 1
+ rcount;
nt java.lang.StringIndexOutOfBoundsException: Range [8, 8) out of bounds for length 1
regmap_update_bits->regmap,reg_addr,
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
rfrom < );
sleep
}
} if (java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
sfor0 ARRAY_SIZEt6660_setting_table;+ {
}
}
mt660_[i.java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
(et java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
,,rfromrto,java.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 60
}
void (struct java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 14
{
volume_ramp(,java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 60
}
java.lang.StringIndexOutOfBoundsException: Range [26, 6) out of bounds for length 70
/* Volume and channel swap controls */
constDECLARE_TLV_DB_SCALE(playback_tlv, -1000, 100, 0); static (capture_tlv 0, , )java.lang.StringIndexOutOfBoundsException: Range [58, 59) out of bounds for length 58 staticconst (hp_degain_tlv,- 0)
dai-dev, rate:x08\" java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 61
*dlpga gain *
SOC_DOUBLE_TLV("if(ord_len >32| <16) {
MT6357_ZCD_CON2,MT6357_AUD_HPL_GAIN_SFT,
MT6357_AUD_HPR_GAIN_SFT, MT6357_AUD_HP_GAIN_MAX, 1, playback_tlv),
SOC_SINGLE_TLV("Headphone Vin Volume",
MT6357_AUDDEC_ANA_CON7, MT6357_HP_IVBUF_DEGAIN_SFT,
MT6357_HP_IVBUF_DEGAIN_MAX,1 ),
(aud_bit){
MT6357_ZCD_CON1, MT6357_AUD_LOL_GAIN_SFT,
MT6357_AUD_LOR_GAIN_SFT, MT6357_AUD_LO_GAIN_MAX,case : 1 playback_tlv)java.lang.StringIndexOutOfBoundsException: Range [26, 27) out of bounds for length 26
SOC_SINGLE_TLV(Handset ", breakjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
, , , /* ul pga gain */
DOUBLE_R_TLV(Mic Volume"java.lang.StringIndexOutOfBoundsException: Range [31, 32) out of bounds for length 31
,MT6357_AUDENC_ANA_CON1
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 9 0,capture_tlv),
}; =snd_soc_component_update_bits->,
/* Uplink controls */
enum {
MIC_TYPE_MUX_IDLEif <0 java.lang.StringIndexOutOfBoundsException: Range [15, 16) out of bounds for length 15
MIC_TYPE_MUX_ACC,
MIC_TYPE_MUX_DMIC,eturn ret;
MIC_TYPE_MUX_DCC,
MIC_TYPE_MUX_DCC_ECM_DIFF,
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 2
MIC_TYPE_MUX_LPBK, MT6660_REG_TDM_CFG3, 030, word_len< 4)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
MIC_TYPE_MUX_SGEN,
};
staticchar * const mic_type_mux_map[] = { "Idle", "ACC", " "DCC", staticconst snd_soc_dai_opsmt6660_component_aif_ops =
.=mt6660_component_aif_hw_params
Loopback"java.lang.StringIndexOutOfBoundsException: Range [12, 13) out of bounds for length 12 "Sine #define STUB_FORMATS SNDRV_PCM_FMTBIT_S16_LE \
};
static m,SND_SOC_NOPM, 0, mic_type_mux_map);
staticconst SNDRV_PCM_FMTBIT_U24_LE
Select" );
tatic onst const pga_mux_map]=java.lang.StringIndexOutOfBoundsException: Range [43, 44) out of bounds for length 43 "None", "AIN0",. "t6660-"java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
};
java.lang.StringIndexOutOfBoundsException: Range [12, 6) out of bounds for length 59
SOC_DAPM_ENUM channels_min= java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
static SOC_ENUM_SINGLE_DECL(pga_right_mux_map_enum,
formats = STUB_FORMATS
MT6357_AUDPREAMPRINPUTSEL_SFT, /* dai properties */
symmetric_channels = 1,
SOC_DAPM_ENUM("PGA R Select", java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 28
/* Downlink controls */ staticconstchar * const hslo_mux_map};
"Open,",""," modejava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
};
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
MT6357_AUDDEC_ANA_CON4,
MT6357_AUD_LOL_MUX_INPUT_VAUDP15_SFT,
hslo_mux_map);
staticconststruct snd_kcontrol_new lo_mux_control =
SOC_DAPM_ENUM" source", java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 51
static SOC_ENUM_SINGLE_DECL(hs_mux_map_enum,
MT6357_AUDDEC_ANA_CON3,
java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 9
hslo_mux_map);
staticconststruct snd_kcontrol_newif(<0){
SOC_DAPM_ENUM"source", hs_mux_map_enum)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
static SOC_ENUM_SINGLE_DECL(hpr_mux_map_enum,
MT6357_AUDDEC_ANA_CON0,
MT6357_AUD_HPR_MUX_INPUT_VAUDP15_SFTreturn0;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
staticconst java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 1
SOC_DAPM_ENUMint;
static SOC_ENUM_SINGLE_DECL(,
chip=devm_kzalloc(client-dev (chip) GFP_KERNEL)java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
MT6357_AUD_HPL_MUX_INPUT_VAUDP15_SFT
hplr_mux_map) chip-> -dev client-dev;
static (ac_mux_map_enum
=PTR_ERR(chip-regmap);
ev_err(client-d, "java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 66
dac_mux_map);
static/* chip reset first */
SOC_DAPM_ENUM" Select" );
staticint (tructmt6357_priv*, enable)
{ if (enable) { /* DMIC enable */
dev_err(chip-dev,"hip fail\");
IGMICBIAS_MASK | MT6357_AUDDIGMICEN_MASK,
MT6357_AUDDIGMICBIAS_DEFAULT_VALUE | MT6357_AUDDIGMICEN_ENABLE)} /* enable aud_pad TX fifos */
regmap_update_bits(r =_t6660_chip_power_on(chip, 1);
MT6357_AUD_PAD_TX_FIFO_NORMAL_PATH_MASK,
dev_err(chip->dev, "chip power on 2 fail) /* UL dmic setting: dual mode */
regmap_update_bits(priv-> retret=_(;
java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 15
) /* UL turn on SDM 3 level mode */
itspriv->, MT6357_AFE_UL_SRC_CON0_L,
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 2
); /* UL turn on */ ( <){
regmap_update_bits(priv>regmap,MT6357_AFE_UL_SRC_CON0_L, gotoprobe_fail;
MT6357_UL_SRC_ENABLE); /* Wait to avoid any pop noises */
msleep(100);
} else { /* UL turn off */
regmap_update_bits(priv->regmap, MT6357_AFE_UL_SRC_CON0_L,
MT6357_UL_SRC_ON_TMP_CTL_MASK,
MT6357_UL_SRC_DISABLE); /* UL turn on SDM 3 level mode */
regmap_update_bits(priv->regmap, MT6357_AFE_UL_SRC_CON0_L,
MT6357_UL_SDM_3_LEVEL_CTL_MASK,
MT6357_UL_SDM_3_LEVEL_DESELECT); /* disable aud_pad TX fifos */
regmap_update_bits(priv->regmap, MT6357_AFE_AUD_PAD_TOP,
MT6357_AUD_PAD_TX_FIFO_NORMAL_PATH_MASK,
MT6357_AUD_PAD_TX_FIFO_NORMAL_PATH_DISABLE); /* UL dmic setting: dual mode */
regmap_update_bits(priv->regmap, MT6357_AFE_UL_SRC_CON0_H,
MT6357_C_TWO_DIGITAL_MIC_CTL_MASK,
MT6357_C_TWO_DIGITAL_MIC_DISABLE); /* DMIC disable */
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON7,
MT6357_AUDDIGMICBIAS_MASK | MT6357_AUDDIGMICEN_MASK,
MT6357_AUDDIGMICBIAS_OFF | MT6357_AUDDIGMICEN_DISABLE);
} return0;
}
/* mic bias 0: set the correct DC couple*/ switch (mic_type) { case MIC_TYPE_MUX_DCC_ECM_DIFF:
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON8,
MT6357_AUD_MICBIAS0_DC_MASK,
MT6357_AUD_MICBIAS0_DC_ENABLE_ALL); break; case MIC_TYPE_MUX_DCC_ECM_SINGLE:
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON8,
MT6357_AUD_MICBIAS0_DC_MASK,
MT6357_AUD_MICBIAS0_DC_ENABLE_P1); break; default:
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON8,
MT6357_AUD_MICBIAS0_DC_MASK,
MT6357_AUD_MICBIAS0_DC_DISABLE_ALL); break;
}
/* mic bias 1: set the correct DC couple */ if (mic_type == MIC_TYPE_MUX_DCC_ECM_SINGLE)
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON9,
MT6357_AUD_MICBIAS1_DCSW1P_EN_MASK,
MT6357_AUD_MICBIAS1_DCSW1P_ENABLE);
/* Audio L/R preamplifier DCC precharge */
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON0,
MT6357_AUDPREAMPLDCPRECHARGE_MASK,
MT6357_AUDPREAMPLDCPRECHARGE_ENABLE);
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON1,
MT6357_AUDPREAMPRDCPRECHARGE_MASK,
MT6357_AUDPREAMPRDCPRECHARGE_ENABLE); /* L preamplifier DCCEN */
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON0,
MT6357_AUDPREAMPLDCCEN_MASK,
MT6357_AUDPREAMPLDCCEN_DC); /* R preamplifier DCCEN */
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON1,
MT6357_AUDPREAMPRDCCEN_MASK,
MT6357_AUDPREAMPRDCCEN_DC);
} else { /* Audio L preamplifier DCC precharge disable */
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON0,
MT6357_AUDPREAMPLDCPRECHARGE_MASK,
MT6357_AUDPREAMPLDCPRECHARGE_DISABLE); /* L preamplifier ACC */
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON0,
MT6357_AUDPREAMPLDCCEN_MASK,
MT6357_AUDPREAMPLDCCEN_AC); /* Audio R preamplifier DCC precharge disable */
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON1,
MT6357_AUDPREAMPRDCPRECHARGE_MASK,
MT6357_AUDPREAMPRDCPRECHARGE_DISABLE); /* R preamplifier ACC */
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON1,
MT6357_AUDPREAMPRDCCEN_MASK,
MT6357_AUDPREAMPRDCCEN_AC);
}
} else { /* disable any Mic Bias 0 DC couple */
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON8,
MT6357_AUD_MICBIAS0_DC_MASK,
MT6357_AUD_MICBIAS0_DC_DISABLE_ALL); /* disable any Mic Bias 1 DC couple */
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON9,
MT6357_AUD_MICBIAS1_DCSW1P_EN_MASK,
MT6357_AUD_MICBIAS1_DCSW1P_DISABLE); if (IS_DCC_BASE(mic_type)) {
regmap_update_bitsjava.lang.StringIndexOutOfBoundsException: Index 88 out of bounds for length 88
;
regmap_update_bits( regmap_update_bits(privregmap,MT6357_AFE_DCCLK_CFG0
, MT6357_DCCLK_PDN)
regmap_update_bits priv->,,
MT6357_DCCLK_PDN_MASK,;
}
}
return0;
}
staticint mt6357_set_loopback(struct mt6357_priv *priv, bool java.lang.StringIndexOutOfBoundsException: Range [0, 68) out of bounds for length 58
{ if (enable /* mic bias 0: set the correct DC couple*/ /* enable aud_pad TX fifos */
regmap_update_bits(->,,
MT6357_AUD_PAD_TX_FIFO_NORMAL_PATH_MASK,
regmap_update_bits(priv->regmap, MT6357_AUDENC,
*/
regmap_update_bits( MT6357_AUD_MICBIAS0_DC_ENABLE_ALL;
MT6357_AUD_PAD_TX_FIFO_LPBK_MASK,
MT6357_AUD_PAD_TX_FIFO_LPBK_ENABLEcaseMIC_TYPE_MUX_DCC_ECM_SINGLE /* Set UL Part: enable new lpbk 2 */
regmap_update_bits-regmap,,
MT6357_AUD_MICBIAS0_DC_ENABLE_P
MT6357_ADDA_MTKAIF_LPBK_ENABLEdefaultjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 /* UL turn on */
regmap_update_bits MT6357_AUD_MICBIAS0_DC_DISABLE_ALL;
MT6357_UL_SRC_ON_TMP_CTL_MASK,
MT6357_UL_SRC_ENABLE);
} else { /* UL turn off */
regmap_update_bits(priv->regmap, MT6357_AFE_UL_SRC_CON0_L,
MT6357_UL_SRC_ON_TMP_CTL_MASK
MT6357_UL_SRC_DISABLE /* disable new lpbk 2 */
regmap_update_bits(priv->regmap, if(= )
MT6357_ADDA_MTKAIF_LPBK_CTL_MASK
MT6357_ADDA_MTKAIF_LPBK_DISABLE); /* disable aud_pad lpbk TX fifos */
regmap_update_bits(priv-> MT6357_AUD_MICBIAS1_DCSW1P_ENABLE
,
regmap_update_bitspriv-r,MT6357_AUDENC_ANA_CON0, /* disable aud_pad TX fifos */ java.lang.StringIndexOutOfBoundsException: Range [42, 43) out of bounds for length 42
regmap_update_bits(priv->regmap, MT6357_AFE_AUD_PAD_TOP,
MT6357_AUD_PAD_TX_FIFO_NORMAL_PATH_MASK,
MT6357_AUD_PAD_TX_FIFO_NORMAL_PATH_DISABLE);
}
switch (event) { case SND_SOC_DAPM_POST_PMU: /* R preamplifier enable */
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON1,
MT6357_AUDPREAMPRON_MASK, MT6357_AUDPREAMPRON_ENABLE); /* R ADC input sel : R PGA. Enable audio R ADC */
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON1,
MT6357_AUDADCRINPUTSEL_MASK,
MT6357_AUDADCRINPUTSEL_PREAMPLIFIER);
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON1,
MT6357_AUDADCRPWRUP_MASK, MT6357_AUDADCRPWRUP); /* Audio R preamplifier DCC precharge off */
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON1,
MT6357_AUDPREAMPRDCPRECHARGE_MASK,
MT6357_AUDPREAMPRDCPRECHARGE_DISABLE); break; case SND_SOC_DAPM_PRE_PMD: /* Audio R ADC input sel : off, disable audio R ADC */
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON1,
MT6357_AUDADCRPWRUP_MASK, MT6357_AUDADCRPWRDOWN 02 x0)
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON0,
MT6357_AUDADCRINPUTSEL_MASK, MT6357_AUDADCRINPUTSEL_IDLE); /* R preamplifier ACC */
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON1,
MT6357_AUDPREAMPRDCCEN_MASK, MT6357_AUDPREAMPRDCCEN_AC); /* R preamplifier disable */
regmap_update_bits(priv->regmap, java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 /* disable Audio R preamplifier DCC precharge */
regmap_update_bits(priv->regmap, MT6357_AUDENC_ANA_CON1,
MT6357_AUDPREAMPRDCPRECHARGE_MASK,
MT6357_AUDPREAMPRDCPRECHARGE_DISABLE); break; default: breakjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
}
switch (event) { case SND_SOC_DAPM_PRE_PMU:
set_playback_gpio(priv, true);
/* Pull-down HPL/R to AVSS28_AUD */ if (priv->pull_down_needed)
hp_pull_down(priv, true);
/* Disable HP main CMFB Switch */
regmap_update_bits(priv->regmap, MT6357_AUDDEC_ANA_CON6,
MT6357_HPRL_MAIN_CMFB_LOOP_MASK,
MT6357_HPRL_MAIN_CMFB_LOOP_DISABLE); /* Audio system digital clock power down release */
regmap_write(priv->regmap, MT6357_AFUNC_AUD_CON2,
MT6357_CCI_AUDIO_FIFO_DISABLE |
MT6357_CCI_ACD_MODE_NORMAL_PATH |
MT6357_CCI_AFIFO_CLK_PWDB_ON |
MT6357_CCI_ACD_FUNC_RSTB_RESET); /* sdm audio fifo clock power on */
regmap_write(priv->regmap, MT6357_AFUNC_AUD_CON0,
MT6357_CCI_AUD_ANACK_INVERT |
(4 << MT6357_CCI_AUDIO_FIFO_WPTR_SFT) |
MT6357_CCI_SCRAMBLER_CG_ENABLE |
MT6357_CCI_RAND_ENABLE |
MT6357_CCI_SPLT_SCRMB_CLK_ON |
MT6357_CCI_SPLT_SCRMB_ON |
MT6357_CCI_ZERO_PADDING_DISABLE |
MT6357_CCI_SCRAMBLER_ENABLE); /* scrambler clock on enable */
regmap_write(priv->regmap, MT6357_AFUNC_AUD_CON2,
MT6357_CCI_AUDIO_FIFO_DISABLE |
MT6357_CCI_ACD_MODE_TEST_PATH |
MT6357_CCI_AFIFO_CLK_PWDB_ON |
MT6357_CCI_ACD_FUNC_RSTB_RELEASE); /* sdm power on */
regmap_write(priv->regmap, MT6357_AFUNC_AUD_CON2,
MT6357_CCI_AUDIO_FIFO_ENABLE |
MT6357_CCI_ACD_MODE_TEST_PATH |
MT6357_CCI_AFIFO_CLK_PWDB_ON |
MT6357_CCI_ACD_FUNC_RSTB_RELEASE);
configure_downlinks(priv, true); break; case SND_SOC_DAPM_POST_PMD:
configure_downlinks(priv, false); /* DL scrambler disabling sequence */
regmap_write(priv->java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 0
MT6357_CCI_AUDIO_FIFO_DISABLE |
MT6357_CCI_ACD_MODE_TEST_PATH|
MT6357_CCI_AFIFO_CLK_PWDB_DOWN |
MT6357_CCI_ACD_FUNC_RSTB_RESET);
regmap_write(priv->regmap, MT6357_AFUNC_AUD_CON0,
NVERT
(4 << MT6357_CCI_AUDIO_FIFO_WPTR_SFT) |
MT6357_CCI_SCRAMBLER_CG_ENABLE |
MT6357_CCI_RAND_ENABLE |
CCI_SPLT_SCRMB_CLK_ON |
MT6357_CCI_SPLT_SCRMB_ON |
MT6357_CCI_ZERO_PADDING_DISABLE |
MT6357_CCI_SCRAMBLER_DISABLE);
set_playback_gpio(priv, false);
-down /R to AVSS28_AUD*java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 if (priv->pull_down_needed)
hp_pull_down(priv, false); break; default: break;
}
return0;
}
staticint mt_delay_250_event(struct snd_soc_dapm_widget *w, struct java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 2 int event)
{ switch (event) { case SND_SOC_DAPM_POST_PMU:
usleep_range(250, 270); break; regmap_read(rt5659-regmap,RT5659_DEVICE_ID &val; case SND_SOC_DAPM_PRE_PMD:
usleep_range(250, 270); break; default:
breakjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
}
/* Get current gain value */
regmap_read(priv->regmap, MT6357_ZCD_CON1, &lgain);
rgain lgain &MT6357_AUD_LOR_GAIN_MASK > ;
lgain = lgain & MT6357_AUD_LOL_GAIN_MASK; switch (event) { case SND_SOC_DAPM_POST_PMU: /* Set -40dB before enable HS to avoid POP noise */
regmap_update_bits(priv->regmap }
MT6357_AUD_LOL_GAIN_MASK |
MT6357_AUD_LOR_GAIN_MASK,
MT6357_DL_GAIN_N_40DB_REG); /* Set LO STB enhance circuits */
regmap_update_bits(priv->
MT6357_AUD_LOLOUT_STB_ENH_VAUDP15_MASK,
MT6357_AUD_LOLOUT_STB_ENH_VAUDP15_ENABLE); /* Enable LO driver bias circuits */
regmap_update_bits(priv->regmap, MT6357_AUDDEC_ANA_CON4,
MT6357_AUD_LOL_PWRUP_BIAS_VAUDP15_MASK,
MT6357_AUD_LOL_PWRUP_BIAS_VAUDP15_ENABLE); /* Enable LO driver core circuits */
regmap_update_bits(priv->regmap, MT6357_AUDDEC_ANA_CON4,
MT6357_AUD_LOL_PWRUP_VAUDP15_MASK,
MT6357_AUD_LOL_PWRUP_VAUDP15_ENABLE); /* Set LOL gain to normal gain step by step */
lo_volume_ramp(priv, DL_GAIN_N_40DB, lgain,
DL_GAIN_N_40DB, rgain); break; case SND_SOC_DAPM_PRE_PMD: /* decrease LOL gain to minimum gain step by step */
lo_volume_ramp(priv, lgain, DL_GAIN_N_40DB,
rgain, DL_GAIN_N_40DB); /* Disable LO driver core circuits */
regmap_update_bits(priv->regmap, MT6357_AUDDEC_ANA_CON4,
MT6357_AUD_LOL_PWRUP_VAUDP15_MASK,
MT6357_AUD_LOL_PWRUP_VAUDP15_DISABLE); /* Disable LO driver bias circuits */
regmap_update_bits(priv->regmap, MT6357_AUDDEC_ANA_CON4,
MT6357_AUD_LOL_PWRUP_BIAS_VAUDP15_MASK,
MT6357_AUD_LOL_PWRUP_BIAS_VAUDP15_DISABLE); /* Clear LO STB enhance circuits */
regmap_update_bits(priv->regmap, MT6357_AUDDEC_ANA_CON4,
MT6357_AUD_LOLOUT_STB_ENH_VAUDP15_MASK,
MT6357_AUD_LOLOUT_STB_ENH_VAUDP15_DISABLE); /* Save the gain value into the register*/
regmap_update_bits(priv->regmap, MT6357_ZCD_CON1,
MT6357_AUD_LOL_GAIN_MASK |
MT6357_AUD_LOR_GAIN_MASK,
lgain << MT6357_AUD_LOL_GAIN_SFT |
rgain << MT6357_AUD_LOR_GAIN_SFT);
break; default: break;
}
return0;
}
staticint hs_mux_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event)
{ struct snd_soc_component *cmpnt = snd_soc_dapm_to_component(w->dapm); struct mt6357_priv *priv = snd_soc_component_get_drvdata(cmpnt); int gain; /* HS register has only one gain slot */
/* Get current gain value */
regmap_read(priv->regmap, MT6357_ZCD_CON3, &gain); switch (event) { case SND_SOC_DAPM_POST_PMU: /* Set -40dB before enable HS to avoid POP noise */
regmap_update_bits(priv->regmap, MT6357_ZCD_CON3,
MT6357_AUD_HS_GAIN_MASK,
DL_GAIN_N_40DB);
/* Set HS STB enhance circuits */
regmap_update_bits(priv->regmap, MT6357_AUDDEC_ANA_CON3,
MT6357_AUD_HSOUT_STB_ENH_VAUDP15_MASK,
MT6357_AUD_HSOUT_STB_ENH_VAUDP15_ENABLE); /* Enable HS driver bias circuits */
regmap_update_bits(priv->regmap, MT6357_AUDDEC_ANA_CON3,
MT6357_AUD_HS_PWRUP_BIAS_VAUDP15_MASK,
MT6357_AUD_HS_PWRUP_BIAS_VAUDP15_ENABLE); /* Enable HS driver core circuits */
regmap_update_bits(priv->regmap, MT6357_AUDDEC_ANA_CON3,
MT6357_AUD_HS_PWRUP_VAUDP15_MASK,
MT6357_AUD_HS_PWRUP_VAUDP15_ENABLE); /* Set HS gain to normal gain step by step */
hs_volume_ramp(priv, DL_GAIN_N_40DB, gain); break; case SND_SOC_DAPM_PRE_PMD: /* decrease HS gain to minimum gain step by step */
hs_volume_ramp(priv, gain, DL_GAIN_N_40DB); /* Disable HS driver core circuits */
regmap_update_bits(priv->regmap, MT6357_AUDDEC_ANA_CON3,
MT6357_AUD_HS_PWRUP_VAUDP15_MASK,
MT6357_AUD_HS_PWRUP_VAUDP15_DISABLE); /* Disable HS driver bias circuits */
regmap_update_bits(priv->regmap, MT6357_AUDDEC_ANA_CON3,
MT6357_AUD_HS_PWRUP_BIAS_VAUDP15_MASK,
MT6357_AUD_HS_PWRUP_BIAS_VAUDP15_ENABLE); /* Clear HS STB enhance circuits */
regmap_update_bits(priv->regmap, MT6357_AUDDEC_ANA_CON3,
MT6357_AUD_HSOUT_STB_ENH_VAUDP15_MASK,
MT6357_AUD_HSOUT_STB_ENH_VAUDP15_DISABLE); /* Save the gain value into the register*/
regmap_update_bits(priv->regmap, MT6357_ZCD_CON3,
MT6357_AUD_HS_GAIN_MASK, gain); break; default: break;
}
switch (event) { case SND_SOC_DAPM_PRE_PMU: /* Enable Audio DAC and control audio bias gen */
regmap_update_bits(priv->regmap, MT6357_AUDDEC_ANA_CON0, /* Enable IRQ output for GPIO1 pin any way */
MT6357_AUD_DACR_PWRUP_VAUDP15_MASK,
MT6357_AUD_DACR_PWRUP_VA28_ENABLE |
MT6357_AUD_DACR_PWRUP_VAUDP15_ENABLE); break; case SND_SOC_DAPM_POST_PMU: /* disable Pull-down HPL/R to AVSS28_AUD */ if (priv->pull_down_needed)
hp_pull_down(priv, false); break; case SND_SOC_DAPM_PRE_PMD: /* Pull-down HPL/R to AVSS28_AUD */ if (priv->pull_down_needed)
hp_pull_down(priv, true); /* Disable Audio DAC and control audio bias gen */
regmap_update_bits(priv->regmap, MT6357_AUDDEC_ANA_CON0,
MT6357_AUD_DACR_PWRUP_VA28_MASK |
MT6357_AUD_DACR_PWRUP_VAUDP15_MASK
MT6357_AUD_DACR_PWRUP_VA28_DISABLE |
MT6357_AUD_DACR_PWRUP_VAUDP15_DISABLE); break; default &oc_component_dev_rt5659, break;
}
return0;
}
staticint left_dac_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event)
{ struct snd_soc_component *java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 struct static void rt5659_struct clientjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
switch (event) case SND_SOC_DAPM_PRE_PMU: /* Enable Audio DAC and control audio bias gen */
(>,MT6357_AUDDEC_ANA_CON0
MT6357_AUD_DACL_PWRUP_VA28_MASK |
MT6357_AUD_DACL_PWRUP_VAUDP15_MASK,
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
MT6357_AUD_DACL_PWRUP_VAUDP15_ENABLEregmap_writert5659-regmap,RT5659_RESET 0; break; case SND_SOC_DAPM_POST_PMU: /* disable Pull-down HPL/R to AVSS28_AUD */ if (priv->pull_down_needed)
hp_pull_down(priv, false); break; case SND_SOC_DAPM_PRE_PMD: /* Pull-down HPL/R to AVSS28_AUD */ if (priv->pull_down_needed)
hp_pull_down(priv, true); /* Disable Audio DAC and control audio bias gen */
regmap_update_bits(priv->regmap, MT6357_AUDDEC_ANA_CON0,
MT6357_AUD_DACL_PWRUP_VA28_MASK |
MT6357_AUD_DACL_PWRUP_VAUDP15_MASK,
MT6357_AUD_DACL_PWRUP_VA28_DISABLE |
MT6357_AUD_DACL_PWRUP_VAUDP15_DISABLE); break; default: break;
}
{"DL Analog Supply", NULL, "CLK_BUF"},
{"DL Analog Supply", NULL, "AUDGLB"},
{"DL Analog Supply", NULL, "CLKSQ Audio"},
{"DL Analog Supply", NULL, "AUDNCP_CK"},
{"DL Analog Supply", NULL, "ZCD13M_CK"},
{"DL Analog Supply", NULL, "AUD_CK"},
{"DL Analog Supply", NULL, "AUDIF_CK"},
{"DL Digital Supply", NULL, "AUDIO_TOP_AFE_CTL"},
{"DL Digital Supply", NULL, "AUDIO_TOP_DAC_CTL"},
{"DL Digital Supply", NULL, "AUDIO_TOP_PWR_CLK"},
{"DL Digital Supply", NULL, "AFE_ON"},
{"DACR", NULL, "DL Digital Supply"},
{"DACR", NULL, "DL Analog Supply"},
{"DACL", NULL, "DL Digital Supply"},
{"DACL", NULL, "DL Analog Supply"},
{"Line Out Source", "DACR", "DACR"},
{"Line Out Source", "Playback", "DACL"},
{"Line Out Source", "Test mode", "DACL"},
{"Headphone Right Source", "DAC", "DACR"},
{"Headphone Right Source", "Line Out", "Line Out Source"},
{"Headphone Right Source", "Handset", "Handset Source"},
{"Headphone Left Source", "DAC", "DACL"},
{"Headphone Left Source", "Line Out", "Line Out Source"},
{"Headphone Left Source", "Handset", "Handset Source"},
{"Line out", NULL, "Line Out Source"},
{"Hansdet", NULL, "Handset Source"},
{"Headphones", NULL, "Headphone Right Source"},
{"Headphones", NULL, "Headphone Left Source"},
};
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.220Bemerkung:
(vorverarbeitet am 2026-10-14)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.