rt5663 1400 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 1412 sound/soc/codecs/rt5663.c switch (rt5663->codec_ver) { rt5663 1427 sound/soc/codecs/rt5663.c switch (rt5663->codec_ver) { rt5663 1466 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 1496 sound/soc/codecs/rt5663.c rt5663->jack_type = SND_JACK_HEADSET; rt5663 1505 sound/soc/codecs/rt5663.c rt5663->jack_type = SND_JACK_HEADPHONE; rt5663 1511 sound/soc/codecs/rt5663.c if (rt5663->jack_type == SND_JACK_HEADSET) { rt5663 1519 sound/soc/codecs/rt5663.c rt5663->jack_type = 0; rt5663 1522 sound/soc/codecs/rt5663.c dev_dbg(component->dev, "jack_type = %d\n", rt5663->jack_type); rt5663 1523 sound/soc/codecs/rt5663.c return rt5663->jack_type; rt5663 1537 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 1587 sound/soc/codecs/rt5663.c regmap_read(rt5663->regmap, RT5663_INT_ST_2, &val); rt5663 1608 sound/soc/codecs/rt5663.c rt5663->jack_type = SND_JACK_HEADSET; rt5663 1611 sound/soc/codecs/rt5663.c if (rt5663->pdata.impedance_sensing_num) rt5663 1614 sound/soc/codecs/rt5663.c if (rt5663->pdata.dc_offset_l_manual_mic) { rt5663 1615 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_MIC_DECRO_2, rt5663 1616 sound/soc/codecs/rt5663.c rt5663->pdata.dc_offset_l_manual_mic >> rt5663 1618 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_MIC_DECRO_3, rt5663 1619 sound/soc/codecs/rt5663.c rt5663->pdata.dc_offset_l_manual_mic & rt5663 1623 sound/soc/codecs/rt5663.c if (rt5663->pdata.dc_offset_r_manual_mic) { rt5663 1624 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_MIC_DECRO_5, rt5663 1625 sound/soc/codecs/rt5663.c rt5663->pdata.dc_offset_r_manual_mic >> rt5663 1627 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_MIC_DECRO_6, rt5663 1628 sound/soc/codecs/rt5663.c rt5663->pdata.dc_offset_r_manual_mic & rt5663 1633 sound/soc/codecs/rt5663.c rt5663->jack_type = SND_JACK_HEADPHONE; rt5663 1638 sound/soc/codecs/rt5663.c if (rt5663->pdata.impedance_sensing_num) rt5663 1641 sound/soc/codecs/rt5663.c if (rt5663->pdata.dc_offset_l_manual) { rt5663 1642 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_MIC_DECRO_2, rt5663 1643 sound/soc/codecs/rt5663.c rt5663->pdata.dc_offset_l_manual >> 16); rt5663 1644 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_MIC_DECRO_3, rt5663 1645 sound/soc/codecs/rt5663.c rt5663->pdata.dc_offset_l_manual & rt5663 1649 sound/soc/codecs/rt5663.c if (rt5663->pdata.dc_offset_r_manual) { rt5663 1650 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_MIC_DECRO_5, rt5663 1651 sound/soc/codecs/rt5663.c rt5663->pdata.dc_offset_r_manual >> 16); rt5663 1652 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_MIC_DECRO_6, rt5663 1653 sound/soc/codecs/rt5663.c rt5663->pdata.dc_offset_r_manual & rt5663 1659 sound/soc/codecs/rt5663.c if (rt5663->jack_type == SND_JACK_HEADSET) rt5663 1661 sound/soc/codecs/rt5663.c rt5663->jack_type = 0; rt5663 1667 sound/soc/codecs/rt5663.c dev_dbg(component->dev, "jack_type = %d\n", rt5663->jack_type); rt5663 1668 sound/soc/codecs/rt5663.c return rt5663->jack_type; rt5663 1673 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 1676 sound/soc/codecs/rt5663.c for (i = 0; i < rt5663->pdata.impedance_sensing_num; i++) { rt5663 1677 sound/soc/codecs/rt5663.c if (rt5663->imp_table[i].vol == 7) rt5663 1681 sound/soc/codecs/rt5663.c if (rt5663->jack_type == SND_JACK_HEADSET) { rt5663 1683 sound/soc/codecs/rt5663.c rt5663->imp_table[i].dc_offset_l_manual_mic >> 16); rt5663 1685 sound/soc/codecs/rt5663.c rt5663->imp_table[i].dc_offset_l_manual_mic & 0xffff); rt5663 1687 sound/soc/codecs/rt5663.c rt5663->imp_table[i].dc_offset_r_manual_mic >> 16); rt5663 1689 sound/soc/codecs/rt5663.c rt5663->imp_table[i].dc_offset_r_manual_mic & 0xffff); rt5663 1692 sound/soc/codecs/rt5663.c rt5663->imp_table[i].dc_offset_l_manual >> 16); rt5663 1694 sound/soc/codecs/rt5663.c rt5663->imp_table[i].dc_offset_l_manual & 0xffff); rt5663 1696 sound/soc/codecs/rt5663.c rt5663->imp_table[i].dc_offset_r_manual >> 16); rt5663 1698 sound/soc/codecs/rt5663.c rt5663->imp_table[i].dc_offset_r_manual & 0xffff); rt5663 1808 sound/soc/codecs/rt5663.c for (i = 0; i < rt5663->pdata.impedance_sensing_num; i++) { rt5663 1809 sound/soc/codecs/rt5663.c if (value >= rt5663->imp_table[i].imp_min && rt5663 1810 sound/soc/codecs/rt5663.c value <= rt5663->imp_table[i].imp_max) rt5663 1815 sound/soc/codecs/rt5663.c rt5663->imp_table[i].vol); rt5663 1817 sound/soc/codecs/rt5663.c rt5663->imp_table[i].vol); rt5663 1819 sound/soc/codecs/rt5663.c if (rt5663->jack_type == SND_JACK_HEADSET) { rt5663 1821 sound/soc/codecs/rt5663.c rt5663->imp_table[i].dc_offset_l_manual_mic >> 16); rt5663 1823 sound/soc/codecs/rt5663.c rt5663->imp_table[i].dc_offset_l_manual_mic & 0xffff); rt5663 1825 sound/soc/codecs/rt5663.c rt5663->imp_table[i].dc_offset_r_manual_mic >> 16); rt5663 1827 sound/soc/codecs/rt5663.c rt5663->imp_table[i].dc_offset_r_manual_mic & 0xffff); rt5663 1830 sound/soc/codecs/rt5663.c rt5663->imp_table[i].dc_offset_l_manual >> 16); rt5663 1832 sound/soc/codecs/rt5663.c rt5663->imp_table[i].dc_offset_l_manual & 0xffff); rt5663 1834 sound/soc/codecs/rt5663.c rt5663->imp_table[i].dc_offset_r_manual >> 16); rt5663 1836 sound/soc/codecs/rt5663.c rt5663->imp_table[i].dc_offset_r_manual & 0xffff); rt5663 1856 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = data; rt5663 1858 sound/soc/codecs/rt5663.c dev_dbg(regmap_get_device(rt5663->regmap), "%s IRQ queue work\n", rt5663 1861 sound/soc/codecs/rt5663.c queue_delayed_work(system_wq, &rt5663->jack_detect_work, rt5663 1870 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 1872 sound/soc/codecs/rt5663.c rt5663->hs_jack = hs_jack; rt5663 1874 sound/soc/codecs/rt5663.c rt5663_irq(0, rt5663); rt5663 1881 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 1887 sound/soc/codecs/rt5663.c switch (rt5663->codec_ver) { rt5663 1901 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = rt5663 1903 sound/soc/codecs/rt5663.c struct snd_soc_component *component = rt5663->component; rt5663 1911 sound/soc/codecs/rt5663.c if (rt5663->jack_type == 0) { rt5663 1913 sound/soc/codecs/rt5663.c switch (rt5663->codec_ver) { rt5663 1916 sound/soc/codecs/rt5663.c rt5663->component, 1); rt5663 1919 sound/soc/codecs/rt5663.c report = rt5663_jack_detect(rt5663->component, 1); rt5663 1920 sound/soc/codecs/rt5663.c if (rt5663->pdata.impedance_sensing_num) rt5663 1921 sound/soc/codecs/rt5663.c rt5663_impedance_sensing(rt5663->component); rt5663 1932 sound/soc/codecs/rt5663.c btn_type = rt5663_button_detect(rt5663->component); rt5663 1965 sound/soc/codecs/rt5663.c dev_err(rt5663->component->dev, rt5663 1972 sound/soc/codecs/rt5663.c report = rt5663->jack_type; rt5663 1974 sound/soc/codecs/rt5663.c &rt5663->jd_unplug_work); rt5663 1977 sound/soc/codecs/rt5663.c &rt5663->jd_unplug_work, rt5663 1983 sound/soc/codecs/rt5663.c switch (rt5663->codec_ver) { rt5663 1985 sound/soc/codecs/rt5663.c report = rt5663_v2_jack_detect(rt5663->component, 0); rt5663 1988 sound/soc/codecs/rt5663.c report = rt5663_jack_detect(rt5663->component, 0); rt5663 1995 sound/soc/codecs/rt5663.c snd_soc_jack_report(rt5663->hs_jack, report, SND_JACK_HEADSET | rt5663 2002 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = rt5663 2004 sound/soc/codecs/rt5663.c struct snd_soc_component *component = rt5663->component; rt5663 2011 sound/soc/codecs/rt5663.c switch (rt5663->codec_ver) { rt5663 2013 sound/soc/codecs/rt5663.c rt5663_v2_jack_detect(rt5663->component, 0); rt5663 2016 sound/soc/codecs/rt5663.c rt5663_jack_detect(rt5663->component, 0); rt5663 2022 sound/soc/codecs/rt5663.c snd_soc_jack_report(rt5663->hs_jack, 0, SND_JACK_HEADSET | rt5663 2026 sound/soc/codecs/rt5663.c queue_delayed_work(system_wq, &rt5663->jd_unplug_work, rt5663 2088 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 2090 sound/soc/codecs/rt5663.c if (rt5663->codec_ver == CODEC_VER_1) { rt5663 2130 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 2135 sound/soc/codecs/rt5663.c switch (rt5663->codec_ver) { rt5663 2150 sound/soc/codecs/rt5663.c if (rt5663->sysclk > rt5663->lrck * 384) rt5663 2175 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 2196 sound/soc/codecs/rt5663.c switch (rt5663->codec_ver) { rt5663 2322 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 2326 sound/soc/codecs/rt5663.c if (rt5663->codec_ver == CODEC_VER_1) { rt5663 2354 sound/soc/codecs/rt5663.c if (rt5663->codec_ver == CODEC_VER_1) { rt5663 2380 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 2384 sound/soc/codecs/rt5663.c if (rt5663->codec_ver == CODEC_VER_0) { rt5663 2393 sound/soc/codecs/rt5663.c if (rt5663->codec_ver == CODEC_VER_0) { rt5663 2766 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 2770 sound/soc/codecs/rt5663.c rt5663->lrck = params_rate(params); rt5663 2773 sound/soc/codecs/rt5663.c rt5663->lrck, rt5663->sysclk); rt5663 2775 sound/soc/codecs/rt5663.c pre_div = rl6231_get_clk_info(rt5663->sysclk, rt5663->lrck); rt5663 2778 sound/soc/codecs/rt5663.c rt5663->lrck, dai->id); rt5663 2861 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 2864 sound/soc/codecs/rt5663.c if (freq == rt5663->sysclk && clk_id == rt5663->sysclk_src) rt5663 2883 sound/soc/codecs/rt5663.c rt5663->sysclk = freq; rt5663 2884 sound/soc/codecs/rt5663.c rt5663->sysclk_src = clk_id; rt5663 2896 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 2901 sound/soc/codecs/rt5663.c if (source == rt5663->pll_src && freq_in == rt5663->pll_in && rt5663 2902 sound/soc/codecs/rt5663.c freq_out == rt5663->pll_out) rt5663 2908 sound/soc/codecs/rt5663.c rt5663->pll_in = 0; rt5663 2909 sound/soc/codecs/rt5663.c rt5663->pll_out = 0; rt5663 2915 sound/soc/codecs/rt5663.c switch (rt5663->codec_ver) { rt5663 2958 sound/soc/codecs/rt5663.c rt5663->pll_in = freq_in; rt5663 2959 sound/soc/codecs/rt5663.c rt5663->pll_out = freq_out; rt5663 2960 sound/soc/codecs/rt5663.c rt5663->pll_src = source; rt5663 2969 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 3013 sound/soc/codecs/rt5663.c switch (rt5663->codec_ver) { rt5663 3035 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 3040 sound/soc/codecs/rt5663.c if (rt5663->codec_ver == CODEC_VER_1) rt5663 3077 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 3087 sound/soc/codecs/rt5663.c if (rt5663->codec_ver == CODEC_VER_1) { rt5663 3100 sound/soc/codecs/rt5663.c if (rt5663->codec_ver == CODEC_VER_1) rt5663 3110 sound/soc/codecs/rt5663.c if (rt5663->codec_ver == CODEC_VER_1) { rt5663 3120 sound/soc/codecs/rt5663.c if (rt5663->jack_type != SND_JACK_HEADSET) rt5663 3143 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 3145 sound/soc/codecs/rt5663.c rt5663->component = component; rt5663 3147 sound/soc/codecs/rt5663.c switch (rt5663->codec_ver) { rt5663 3168 sound/soc/codecs/rt5663.c if (!rt5663->imp_table) rt5663 3179 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 3181 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_RESET, 0); rt5663 3187 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 3189 sound/soc/codecs/rt5663.c regcache_cache_only(rt5663->regmap, true); rt5663 3190 sound/soc/codecs/rt5663.c regcache_mark_dirty(rt5663->regmap); rt5663 3197 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = snd_soc_component_get_drvdata(component); rt5663 3199 sound/soc/codecs/rt5663.c regcache_cache_only(rt5663->regmap, false); rt5663 3200 sound/soc/codecs/rt5663.c regcache_sync(rt5663->regmap); rt5663 3202 sound/soc/codecs/rt5663.c rt5663_irq(0, rt5663); rt5663 3322 sound/soc/codecs/rt5663.c static void rt5663_v2_calibrate(struct rt5663_priv *rt5663) rt5663 3324 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_BIAS_CUR_8, 0xa402); rt5663 3325 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_PWR_DIG_1, 0x0100); rt5663 3326 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_RECMIX, 0x4040); rt5663 3327 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_DIG_MISC, 0x0001); rt5663 3328 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_RC_CLK, 0x0380); rt5663 3329 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_GLB_CLK, 0x8000); rt5663 3330 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_ADDA_CLK_1, 0x1000); rt5663 3331 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_CHOP_DAC_L, 0x3030); rt5663 3332 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_CALIB_ADC, 0x3c05); rt5663 3333 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_PWR_ANLG_1, 0xa23e); rt5663 3335 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_PWR_ANLG_1, 0xf23e); rt5663 3336 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_HP_CALIB_2, 0x0321); rt5663 3337 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_HP_CALIB_1, 0xfc00); rt5663 3341 sound/soc/codecs/rt5663.c static void rt5663_calibrate(struct rt5663_priv *rt5663) rt5663 3345 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_RESET, 0x0000); rt5663 3347 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_ANA_BIAS_CUR_4, 0x00a1); rt5663 3348 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_RC_CLK, 0x0380); rt5663 3349 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_GLB_CLK, 0x8000); rt5663 3350 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_ADDA_CLK_1, 0x1000); rt5663 3351 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_VREF_RECMIX, 0x0032); rt5663 3352 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_HP_IMP_SEN_19, 0x000c); rt5663 3353 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_DUMMY_1, 0x0324); rt5663 3354 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_DIG_MISC, 0x8001); rt5663 3355 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_VREFADJ_OP, 0x0f28); rt5663 3356 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_PWR_ANLG_1, 0xa23b); rt5663 3358 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_PWR_ANLG_1, 0xf23b); rt5663 3359 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_PWR_ANLG_2, 0x8000); rt5663 3360 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_PWR_ANLG_3, 0x0008); rt5663 3361 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_PRE_DIV_GATING_1, 0xffff); rt5663 3362 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_PRE_DIV_GATING_2, 0xffff); rt5663 3363 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_CBJ_1, 0x8c10); rt5663 3364 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_IL_CMD_2, 0x00c1); rt5663 3365 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_EM_JACK_TYPE_1, 0xb880); rt5663 3366 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_EM_JACK_TYPE_2, 0x4110); rt5663 3367 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_EM_JACK_TYPE_2, 0x4118); rt5663 3371 sound/soc/codecs/rt5663.c regmap_read(rt5663->regmap, RT5663_INT_ST_2, &value); rt5663 3381 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_HP_IMP_SEN_19, 0x0000); rt5663 3382 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_DEPOP_2, 0x3003); rt5663 3383 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_DEPOP_1, 0x0038); rt5663 3384 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_DEPOP_1, 0x003b); rt5663 3385 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_PWR_DIG_2, 0x8400); rt5663 3386 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_PWR_DIG_1, 0x8df8); rt5663 3387 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_PWR_ANLG_2, 0x8003); rt5663 3388 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_PWR_ANLG_3, 0x018c); rt5663 3389 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_HP_CHARGE_PUMP_1, 0x1e32); rt5663 3390 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_DUMMY_2, 0x8089); rt5663 3391 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_DACREF_LDO, 0x3b0b); rt5663 3393 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_STO_DAC_MIXER, 0x0000); rt5663 3394 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_BYPASS_STO_DAC, 0x000c); rt5663 3395 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_HP_BIAS, 0xafaa); rt5663 3396 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_CHARGE_PUMP_1, 0x2224); rt5663 3397 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_HP_OUT_EN, 0x8088); rt5663 3398 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_STO_DRE_9, 0x0017); rt5663 3399 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_STO_DRE_10, 0x0017); rt5663 3400 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_STO1_ADC_MIXER, 0x4040); rt5663 3401 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_CHOP_ADC, 0x3000); rt5663 3402 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_RECMIX, 0x0005); rt5663 3403 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_ADDA_RST, 0xc000); rt5663 3404 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_STO1_HPF_ADJ1, 0x3320); rt5663 3405 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_HP_CALIB_2, 0x00c9); rt5663 3406 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_DUMMY_1, 0x004c); rt5663 3407 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_ANA_BIAS_CUR_1, 0x1111); rt5663 3408 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_BIAS_CUR_8, 0x4402); rt5663 3409 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_CHARGE_PUMP_2, 0x3311); rt5663 3410 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_HP_CALIB_1, 0x0069); rt5663 3411 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_HP_CALIB_3, 0x06ce); rt5663 3412 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_HP_CALIB_1_1, 0x6800); rt5663 3413 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_CHARGE_PUMP_2, 0x1100); rt5663 3414 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_HP_CALIB_7, 0x0057); rt5663 3415 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_HP_CALIB_1_1, 0xe800); rt5663 3419 sound/soc/codecs/rt5663.c regmap_read(rt5663->regmap, RT5663_HP_CALIB_1_1, &value); rt5663 3430 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_HP_CALIB_1_1, 0x6200); rt5663 3431 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_HP_CALIB_7, 0x0059); rt5663 3432 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_HP_CALIB_1_1, 0xe200); rt5663 3436 sound/soc/codecs/rt5663.c regmap_read(rt5663->regmap, RT5663_HP_CALIB_1_1, &value); rt5663 3447 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_EM_JACK_TYPE_1, 0xb8e0); rt5663 3449 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_PWR_ANLG_1, 0x003b); rt5663 3451 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_PWR_DIG_1, 0x0000); rt5663 3453 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_DEPOP_1, 0x000b); rt5663 3455 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_DEPOP_1, 0x0008); rt5663 3457 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_PWR_ANLG_2, 0x0000); rt5663 3461 sound/soc/codecs/rt5663.c static int rt5663_parse_dp(struct rt5663_priv *rt5663, struct device *dev) rt5663 3466 sound/soc/codecs/rt5663.c &rt5663->pdata.dc_offset_l_manual); rt5663 3468 sound/soc/codecs/rt5663.c &rt5663->pdata.dc_offset_r_manual); rt5663 3470 sound/soc/codecs/rt5663.c &rt5663->pdata.dc_offset_l_manual_mic); rt5663 3472 sound/soc/codecs/rt5663.c &rt5663->pdata.dc_offset_r_manual_mic); rt5663 3474 sound/soc/codecs/rt5663.c &rt5663->pdata.impedance_sensing_num); rt5663 3476 sound/soc/codecs/rt5663.c if (rt5663->pdata.impedance_sensing_num) { rt5663 3478 sound/soc/codecs/rt5663.c rt5663->pdata.impedance_sensing_num; rt5663 3479 sound/soc/codecs/rt5663.c rt5663->imp_table = devm_kzalloc(dev, table_size, GFP_KERNEL); rt5663 3482 sound/soc/codecs/rt5663.c (u32 *)rt5663->imp_table, table_size); rt5663 3492 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663; rt5663 3497 sound/soc/codecs/rt5663.c rt5663 = devm_kzalloc(&i2c->dev, sizeof(struct rt5663_priv), rt5663 3500 sound/soc/codecs/rt5663.c if (rt5663 == NULL) rt5663 3503 sound/soc/codecs/rt5663.c i2c_set_clientdata(i2c, rt5663); rt5663 3506 sound/soc/codecs/rt5663.c rt5663->pdata = *pdata; rt5663 3508 sound/soc/codecs/rt5663.c rt5663_parse_dp(rt5663, &i2c->dev); rt5663 3510 sound/soc/codecs/rt5663.c for (i = 0; i < ARRAY_SIZE(rt5663->supplies); i++) rt5663 3511 sound/soc/codecs/rt5663.c rt5663->supplies[i].supply = rt5663_supply_names[i]; rt5663 3514 sound/soc/codecs/rt5663.c ARRAY_SIZE(rt5663->supplies), rt5663 3515 sound/soc/codecs/rt5663.c rt5663->supplies); rt5663 3522 sound/soc/codecs/rt5663.c for (i = 0; i < ARRAY_SIZE(rt5663->supplies); i++) { rt5663 3523 sound/soc/codecs/rt5663.c ret = regulator_set_load(rt5663->supplies[i].consumer, rt5663 3528 sound/soc/codecs/rt5663.c rt5663->supplies[i].supply, ret); rt5663 3533 sound/soc/codecs/rt5663.c ret = regulator_bulk_enable(ARRAY_SIZE(rt5663->supplies), rt5663 3534 sound/soc/codecs/rt5663.c rt5663->supplies); rt5663 3561 sound/soc/codecs/rt5663.c rt5663->regmap = devm_regmap_init_i2c(i2c, &rt5663_v2_regmap); rt5663 3562 sound/soc/codecs/rt5663.c rt5663->codec_ver = CODEC_VER_1; rt5663 3565 sound/soc/codecs/rt5663.c rt5663->regmap = devm_regmap_init_i2c(i2c, &rt5663_regmap); rt5663 3566 sound/soc/codecs/rt5663.c rt5663->codec_ver = CODEC_VER_0; rt5663 3576 sound/soc/codecs/rt5663.c if (IS_ERR(rt5663->regmap)) { rt5663 3577 sound/soc/codecs/rt5663.c ret = PTR_ERR(rt5663->regmap); rt5663 3584 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_RESET, 0); rt5663 3585 sound/soc/codecs/rt5663.c regcache_cache_bypass(rt5663->regmap, true); rt5663 3586 sound/soc/codecs/rt5663.c switch (rt5663->codec_ver) { rt5663 3588 sound/soc/codecs/rt5663.c rt5663_v2_calibrate(rt5663); rt5663 3591 sound/soc/codecs/rt5663.c rt5663_calibrate(rt5663); rt5663 3596 sound/soc/codecs/rt5663.c regcache_cache_bypass(rt5663->regmap, false); rt5663 3597 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_RESET, 0); rt5663 3600 sound/soc/codecs/rt5663.c switch (rt5663->codec_ver) { rt5663 3604 sound/soc/codecs/rt5663.c ret = regmap_register_patch(rt5663->regmap, rt5663_patch_list, rt5663 3615 sound/soc/codecs/rt5663.c regmap_update_bits(rt5663->regmap, RT5663_GPIO_1, RT5663_GP1_PIN_MASK, rt5663 3618 sound/soc/codecs/rt5663.c regmap_update_bits(rt5663->regmap, RT5663_IL_CMD_5, rt5663 3621 sound/soc/codecs/rt5663.c switch (rt5663->codec_ver) { rt5663 3623 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_BIAS_CUR_8, 0xa402); rt5663 3625 sound/soc/codecs/rt5663.c regmap_update_bits(rt5663->regmap, RT5663_AUTO_1MRC_CLK, rt5663 3628 sound/soc/codecs/rt5663.c regmap_update_bits(rt5663->regmap, RT5663_PWR_ANLG_2, rt5663 3630 sound/soc/codecs/rt5663.c regmap_update_bits(rt5663->regmap, RT5663_IRQ_1, rt5663 3633 sound/soc/codecs/rt5663.c regmap_update_bits(rt5663->regmap, RT5663_HP_LOGIC_2, rt5663 3635 sound/soc/codecs/rt5663.c regmap_update_bits(rt5663->regmap, RT5663_RECMIX, rt5663 3640 sound/soc/codecs/rt5663.c regmap_update_bits(rt5663->regmap, RT5663_GPIO_2, rt5663 3642 sound/soc/codecs/rt5663.c regmap_update_bits(rt5663->regmap, RT5663_GPIO_3, rt5663 3644 sound/soc/codecs/rt5663.c regmap_update_bits(rt5663->regmap, RT5663_PWR_ANLG_1, rt5663 3649 sound/soc/codecs/rt5663.c regmap_update_bits(rt5663->regmap, RT5663_DIG_MISC, rt5663 3651 sound/soc/codecs/rt5663.c regmap_update_bits(rt5663->regmap, RT5663_AUTO_1MRC_CLK, rt5663 3653 sound/soc/codecs/rt5663.c regmap_update_bits(rt5663->regmap, RT5663_IRQ_1, rt5663 3655 sound/soc/codecs/rt5663.c regmap_update_bits(rt5663->regmap, RT5663_GPIO_1, rt5663 3657 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_VREF_RECMIX, 0x0032); rt5663 3658 sound/soc/codecs/rt5663.c regmap_update_bits(rt5663->regmap, RT5663_GPIO_2, rt5663 3661 sound/soc/codecs/rt5663.c regmap_update_bits(rt5663->regmap, RT5663_RECMIX, rt5663 3663 sound/soc/codecs/rt5663.c regmap_update_bits(rt5663->regmap, RT5663_TDM_2, rt5663 3671 sound/soc/codecs/rt5663.c INIT_DELAYED_WORK(&rt5663->jack_detect_work, rt5663_jack_detect_work); rt5663 3672 sound/soc/codecs/rt5663.c INIT_DELAYED_WORK(&rt5663->jd_unplug_work, rt5663_jd_unplug_work); rt5663 3677 sound/soc/codecs/rt5663.c | IRQF_ONESHOT, "rt5663", rt5663); rt5663 3701 sound/soc/codecs/rt5663.c free_irq(i2c->irq, rt5663); rt5663 3703 sound/soc/codecs/rt5663.c regulator_bulk_disable(ARRAY_SIZE(rt5663->supplies), rt5663->supplies); rt5663 3709 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = i2c_get_clientdata(i2c); rt5663 3712 sound/soc/codecs/rt5663.c free_irq(i2c->irq, rt5663); rt5663 3714 sound/soc/codecs/rt5663.c regulator_bulk_disable(ARRAY_SIZE(rt5663->supplies), rt5663->supplies); rt5663 3721 sound/soc/codecs/rt5663.c struct rt5663_priv *rt5663 = i2c_get_clientdata(client); rt5663 3723 sound/soc/codecs/rt5663.c regmap_write(rt5663->regmap, RT5663_RESET, 0);