Lines Matching refs:rt1305
245 struct rt1305_priv *rt1305 = snd_soc_component_get_drvdata(component); in rt1305_reg_init() local
247 regmap_multi_reg_write(rt1305->regmap, init_list, RT1305_INIT_REG_LEN); in rt1305_reg_init()
409 struct rt1305_priv *rt1305 = snd_soc_component_get_drvdata(component); in rt1305_is_rc_clk_from_pll() local
414 if (rt1305->sysclk_src == RT1305_FS_SYS_PRE_S_PLL1 && in rt1305_is_rc_clk_from_pll()
426 struct rt1305_priv *rt1305 = snd_soc_component_get_drvdata(component); in rt1305_is_sys_clk_from_pll() local
428 if (rt1305->sysclk_src == RT1305_FS_SYS_PRE_S_PLL1) in rt1305_is_sys_clk_from_pll()
627 struct rt1305_priv *rt1305 = snd_soc_component_get_drvdata(component); in rt1305_hw_params() local
631 rt1305->lrck = params_rate(params); in rt1305_hw_params()
632 pre_div = rt1305_get_clk_info(rt1305->sysclk, rt1305->lrck); in rt1305_hw_params()
636 rt1305->lrck * 64, rt1305->lrck * 256); in rt1305_hw_params()
638 rt1305->lrck * 256, SND_SOC_CLOCK_IN); in rt1305_hw_params()
649 rt1305->bclk = rt1305->lrck * (32 << bclk_ms); in rt1305_hw_params()
655 rt1305->lrck, pre_div, dai->id); in rt1305_hw_params()
696 struct rt1305_priv *rt1305 = snd_soc_component_get_drvdata(component); in rt1305_set_dai_fmt() local
702 rt1305->master = 1; in rt1305_set_dai_fmt()
706 rt1305->master = 0; in rt1305_set_dai_fmt()
756 struct rt1305_priv *rt1305 = snd_soc_component_get_drvdata(component); in rt1305_set_component_sysclk() local
759 if (freq == rt1305->sysclk && clk_id == rt1305->sysclk_src) in rt1305_set_component_sysclk()
781 rt1305->sysclk = freq; in rt1305_set_component_sysclk()
782 rt1305->sysclk_src = clk_id; in rt1305_set_component_sysclk()
794 struct rt1305_priv *rt1305 = snd_soc_component_get_drvdata(component); in rt1305_set_component_pll() local
798 if (source == rt1305->pll_src && freq_in == rt1305->pll_in && in rt1305_set_component_pll()
799 freq_out == rt1305->pll_out) in rt1305_set_component_pll()
805 rt1305->pll_in = 0; in rt1305_set_component_pll()
806 rt1305->pll_out = 0; in rt1305_set_component_pll()
857 rt1305->pll_in = freq_in; in rt1305_set_component_pll()
858 rt1305->pll_out = freq_out; in rt1305_set_component_pll()
859 rt1305->pll_src = source; in rt1305_set_component_pll()
866 struct rt1305_priv *rt1305 = snd_soc_component_get_drvdata(component); in rt1305_probe() local
868 rt1305->component = component; in rt1305_probe()
878 struct rt1305_priv *rt1305 = snd_soc_component_get_drvdata(component); in rt1305_remove() local
880 rt1305_reset(rt1305->regmap); in rt1305_remove()
886 struct rt1305_priv *rt1305 = snd_soc_component_get_drvdata(component); in rt1305_suspend() local
888 regcache_cache_only(rt1305->regmap, true); in rt1305_suspend()
889 regcache_mark_dirty(rt1305->regmap); in rt1305_suspend()
896 struct rt1305_priv *rt1305 = snd_soc_component_get_drvdata(component); in rt1305_resume() local
898 regcache_cache_only(rt1305->regmap, false); in rt1305_resume()
899 regcache_sync(rt1305->regmap); in rt1305_resume()
990 static void rt1305_calibrate(struct rt1305_priv *rt1305) in rt1305_calibrate() argument
996 regcache_cache_bypass(rt1305->regmap, true); in rt1305_calibrate()
998 rt1305_reset(rt1305->regmap); in rt1305_calibrate()
999 regmap_write(rt1305->regmap, RT1305_ADC_SET_3, 0x0219); in rt1305_calibrate()
1000 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0xcf, 0x5548); in rt1305_calibrate()
1001 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0xc1, 0x0320); in rt1305_calibrate()
1002 regmap_write(rt1305->regmap, RT1305_CLOCK_DETECT, 0x1000); in rt1305_calibrate()
1003 regmap_write(rt1305->regmap, RT1305_CLK_1, 0x0600); in rt1305_calibrate()
1004 regmap_write(rt1305->regmap, RT1305_POWER_CTRL_3, 0xffd0); in rt1305_calibrate()
1005 regmap_write(rt1305->regmap, RT1305_EFUSE_1, 0x0080); in rt1305_calibrate()
1006 regmap_write(rt1305->regmap, RT1305_EFUSE_1, 0x0880); in rt1305_calibrate()
1007 regmap_write(rt1305->regmap, RT1305_POWER_CTRL_1, 0x0dfe); in rt1305_calibrate()
1010 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0x5d, 0x0442); in rt1305_calibrate()
1012 regmap_write(rt1305->regmap, RT1305_CAL_EFUSE_CLOCK, 0xb000); in rt1305_calibrate()
1013 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0xc3, 0xd4a0); in rt1305_calibrate()
1014 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0xcc, 0x00cc); in rt1305_calibrate()
1015 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0xc1, 0x0320); in rt1305_calibrate()
1016 regmap_write(rt1305->regmap, RT1305_POWER_STATUS, 0x0000); in rt1305_calibrate()
1017 regmap_write(rt1305->regmap, RT1305_POWER_CTRL_2, 0xffff); in rt1305_calibrate()
1018 regmap_write(rt1305->regmap, RT1305_POWER_CTRL_3, 0xfc20); in rt1305_calibrate()
1019 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0x06, 0x00c0); in rt1305_calibrate()
1020 regmap_write(rt1305->regmap, RT1305_POWER_CTRL_3, 0xfca0); in rt1305_calibrate()
1021 regmap_write(rt1305->regmap, RT1305_POWER_CTRL_3, 0xfce0); in rt1305_calibrate()
1022 regmap_write(rt1305->regmap, RT1305_POWER_CTRL_3, 0xfcf0); in rt1305_calibrate()
1025 regmap_write(rt1305->regmap, RT1305_EFUSE_1, 0x0080); in rt1305_calibrate()
1026 regmap_write(rt1305->regmap, RT1305_EFUSE_1, 0x0880); in rt1305_calibrate()
1027 regmap_write(rt1305->regmap, RT1305_EFUSE_1, 0x0880); in rt1305_calibrate()
1028 regmap_write(rt1305->regmap, RT1305_POWER_CTRL_3, 0xfce0); in rt1305_calibrate()
1029 regmap_write(rt1305->regmap, RT1305_POWER_CTRL_3, 0xfca0); in rt1305_calibrate()
1030 regmap_write(rt1305->regmap, RT1305_POWER_CTRL_3, 0xfc20); in rt1305_calibrate()
1031 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0x06, 0x0000); in rt1305_calibrate()
1032 regmap_write(rt1305->regmap, RT1305_EFUSE_1, 0x0000); in rt1305_calibrate()
1034 regmap_read(rt1305->regmap, RT1305_DAC_OFFSET_5, &valmsb); in rt1305_calibrate()
1035 regmap_read(rt1305->regmap, RT1305_DAC_OFFSET_6, &vallsb); in rt1305_calibrate()
1037 regmap_read(rt1305->regmap, RT1305_DAC_OFFSET_7, &valmsb); in rt1305_calibrate()
1038 regmap_read(rt1305->regmap, RT1305_DAC_OFFSET_8, &vallsb); in rt1305_calibrate()
1043 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0x5d, 0x9542); in rt1305_calibrate()
1044 regmap_write(rt1305->regmap, RT1305_POWER_CTRL_3, 0xfcf0); in rt1305_calibrate()
1045 regmap_write(rt1305->regmap, RT1305_POWER_CTRL_2, 0xffff); in rt1305_calibrate()
1046 regmap_write(rt1305->regmap, RT1305_POWER_CTRL_1, 0x1dfe); in rt1305_calibrate()
1047 regmap_write(rt1305->regmap, RT1305_SILENCE_DETECT, 0x0e13); in rt1305_calibrate()
1048 regmap_write(rt1305->regmap, RT1305_CLK_1, 0x0650); in rt1305_calibrate()
1050 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0x50, 0x0064); in rt1305_calibrate()
1051 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0x51, 0x0770); in rt1305_calibrate()
1052 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0x52, 0xc30c); in rt1305_calibrate()
1053 regmap_write(rt1305->regmap, RT1305_SPK_TEMP_PROTECTION_1, 0x8200); in rt1305_calibrate()
1054 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0xd4, 0xfb00); in rt1305_calibrate()
1055 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0xd4, 0xff80); in rt1305_calibrate()
1057 regmap_read(rt1305->regmap, RT1305_PR_BASE + 0x55, &rh); in rt1305_calibrate()
1058 regmap_read(rt1305->regmap, RT1305_PR_BASE + 0x56, &rl); in rt1305_calibrate()
1070 regmap_write(rt1305->regmap, RT1305_SPK_TEMP_PROTECTION_1, 0x9200); in rt1305_calibrate()
1071 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0xd4, 0xfb00); in rt1305_calibrate()
1072 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0xd4, 0xff80); in rt1305_calibrate()
1074 regmap_read(rt1305->regmap, RT1305_PR_BASE + 0x55, &rh); in rt1305_calibrate()
1075 regmap_read(rt1305->regmap, RT1305_PR_BASE + 0x56, &rl); in rt1305_calibrate()
1087 regmap_write(rt1305->regmap, RT1305_SPK_TEMP_PROTECTION_1, 0xc2ec); in rt1305_calibrate()
1091 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0x4e, in rt1305_calibrate()
1093 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0x4f, in rt1305_calibrate()
1095 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0xfe, in rt1305_calibrate()
1097 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0xfd, in rt1305_calibrate()
1104 regmap_write(rt1305->regmap, RT1305_POWER_CTRL_1, 0x0dfe); in rt1305_calibrate()
1106 regmap_write(rt1305->regmap, RT1305_PR_BASE + 0x5d, 0x0442); in rt1305_calibrate()
1107 regmap_write(rt1305->regmap, RT1305_CLOCK_DETECT, 0x3000); in rt1305_calibrate()
1108 regmap_write(rt1305->regmap, RT1305_CLK_1, 0x0400); in rt1305_calibrate()
1109 regmap_write(rt1305->regmap, RT1305_POWER_CTRL_1, 0x0000); in rt1305_calibrate()
1110 regmap_write(rt1305->regmap, RT1305_CAL_EFUSE_CLOCK, 0x8000); in rt1305_calibrate()
1111 regmap_write(rt1305->regmap, RT1305_POWER_CTRL_2, 0x1020); in rt1305_calibrate()
1112 regmap_write(rt1305->regmap, RT1305_POWER_CTRL_3, 0x0000); in rt1305_calibrate()
1114 regcache_cache_bypass(rt1305->regmap, false); in rt1305_calibrate()
1119 struct rt1305_priv *rt1305; in rt1305_i2c_probe() local
1123 rt1305 = devm_kzalloc(&i2c->dev, sizeof(struct rt1305_priv), in rt1305_i2c_probe()
1125 if (rt1305 == NULL) in rt1305_i2c_probe()
1128 i2c_set_clientdata(i2c, rt1305); in rt1305_i2c_probe()
1130 rt1305->regmap = devm_regmap_init_i2c(i2c, &rt1305_regmap); in rt1305_i2c_probe()
1131 if (IS_ERR(rt1305->regmap)) { in rt1305_i2c_probe()
1132 ret = PTR_ERR(rt1305->regmap); in rt1305_i2c_probe()
1138 regmap_read(rt1305->regmap, RT1305_DEVICE_ID, &val); in rt1305_i2c_probe()
1145 rt1305_reset(rt1305->regmap); in rt1305_i2c_probe()
1146 rt1305_calibrate(rt1305); in rt1305_i2c_probe()
1155 struct rt1305_priv *rt1305 = i2c_get_clientdata(client); in rt1305_i2c_shutdown() local
1157 rt1305_reset(rt1305->regmap); in rt1305_i2c_shutdown()