Lines Matching refs:rt700

60 static unsigned int rt700_button_detect(struct rt700_priv *rt700)  in rt700_button_detect()  argument
65 ret = rt700_index_read(rt700->regmap, RT700_IRQ_FLAG_TABLE1, &val80); in rt700_button_detect()
68 ret = rt700_index_read(rt700->regmap, RT700_IRQ_FLAG_TABLE2, &val81); in rt700_button_detect()
105 static int rt700_headset_detect(struct rt700_priv *rt700) in rt700_headset_detect() argument
111 ret = rt700_index_read(rt700->regmap, in rt700_headset_detect()
121 ret = rt700_index_read(rt700->regmap, in rt700_headset_detect()
127 ret = regmap_read(rt700->regmap, reg, &jack_status); in rt700_headset_detect()
136 rt700->jack_type = SND_JACK_HEADPHONE; in rt700_headset_detect()
139 rt700->jack_type = SND_JACK_HEADSET; in rt700_headset_detect()
157 struct rt700_priv *rt700 = in rt700_jack_detect_handler() local
162 if (!rt700->hs_jack) in rt700_jack_detect_handler()
165 if (!rt700->component->card->instantiated) in rt700_jack_detect_handler()
169 ret = regmap_read(rt700->regmap, reg, &jack_status); in rt700_jack_detect_handler()
176 if (rt700->jack_type == 0) { in rt700_jack_detect_handler()
177 ret = rt700_headset_detect(rt700); in rt700_jack_detect_handler()
180 if (rt700->jack_type == SND_JACK_HEADSET) in rt700_jack_detect_handler()
181 btn_type = rt700_button_detect(rt700); in rt700_jack_detect_handler()
182 } else if (rt700->jack_type == SND_JACK_HEADSET) { in rt700_jack_detect_handler()
184 btn_type = rt700_button_detect(rt700); in rt700_jack_detect_handler()
188 rt700->jack_type = 0; in rt700_jack_detect_handler()
191 dev_dbg(&rt700->slave->dev, in rt700_jack_detect_handler()
192 "in %s, jack_type=0x%x\n", __func__, rt700->jack_type); in rt700_jack_detect_handler()
193 dev_dbg(&rt700->slave->dev, in rt700_jack_detect_handler()
196 snd_soc_jack_report(rt700->hs_jack, rt700->jack_type | btn_type, in rt700_jack_detect_handler()
203 snd_soc_jack_report(rt700->hs_jack, rt700->jack_type, in rt700_jack_detect_handler()
209 &rt700->jack_btn_check_work, msecs_to_jiffies(200)); in rt700_jack_detect_handler()
220 struct rt700_priv *rt700 = container_of(work, struct rt700_priv, in rt700_btn_check_handler() local
226 ret = regmap_read(rt700->regmap, reg, &jack_status); in rt700_btn_check_handler()
232 if (rt700->jack_type == SND_JACK_HEADSET) { in rt700_btn_check_handler()
234 btn_type = rt700_button_detect(rt700); in rt700_btn_check_handler()
237 rt700->jack_type = 0; in rt700_btn_check_handler()
241 ret = rt700_index_read(rt700->regmap, RT700_COMBO_JACK_AUTO_CTL2, &reg); in rt700_btn_check_handler()
248 dev_dbg(&rt700->slave->dev, in rt700_btn_check_handler()
250 snd_soc_jack_report(rt700->hs_jack, rt700->jack_type | btn_type, in rt700_btn_check_handler()
257 snd_soc_jack_report(rt700->hs_jack, rt700->jack_type, in rt700_btn_check_handler()
263 &rt700->jack_btn_check_work, msecs_to_jiffies(200)); in rt700_btn_check_handler()
272 static void rt700_jack_init(struct rt700_priv *rt700) in rt700_jack_init() argument
275 snd_soc_component_get_dapm(rt700->component); in rt700_jack_init()
279 regmap_write(rt700->regmap, in rt700_jack_init()
282 if (rt700->hs_jack) { in rt700_jack_init()
284 regmap_write(rt700->regmap, in rt700_jack_init()
286 regmap_write(rt700->regmap, in rt700_jack_init()
288 regmap_write(rt700->regmap, in rt700_jack_init()
290 rt700_index_write(rt700->regmap, 0x10, 0x2420); in rt700_jack_init()
291 rt700_index_write(rt700->regmap, 0x19, 0x2e11); in rt700_jack_init()
293 dev_dbg(&rt700->slave->dev, "in %s enable\n", __func__); in rt700_jack_init()
296 &rt700->jack_detect_work, msecs_to_jiffies(250)); in rt700_jack_init()
298 regmap_write(rt700->regmap, in rt700_jack_init()
300 regmap_write(rt700->regmap, in rt700_jack_init()
302 regmap_write(rt700->regmap, in rt700_jack_init()
305 dev_dbg(&rt700->slave->dev, "in %s disable\n", __func__); in rt700_jack_init()
310 regmap_write(rt700->regmap, in rt700_jack_init()
317 struct rt700_priv *rt700 = snd_soc_component_get_drvdata(component); in rt700_set_jack_detect() local
319 rt700->hs_jack = hs_jack; in rt700_set_jack_detect()
321 if (!rt700->hw_init) { in rt700_set_jack_detect()
322 dev_dbg(&rt700->slave->dev, in rt700_set_jack_detect()
327 rt700_jack_init(rt700); in rt700_set_jack_detect()
332 static void rt700_get_gain(struct rt700_priv *rt700, unsigned int addr_h, in rt700_get_gain() argument
338 regmap_read(rt700->regmap, addr_l, r_val); in rt700_get_gain()
343 regmap_read(rt700->regmap, addr_h, l_val); in rt700_get_gain()
355 struct rt700_priv *rt700 = snd_soc_component_get_drvdata(component); in rt700_set_amp_gain_put() local
368 rt700_get_gain(rt700, addr_h, addr_l, val_h, &read_rl, &read_ll); in rt700_set_amp_gain_put()
388 regmap_write(rt700->regmap, in rt700_set_amp_gain_put()
412 regmap_write(rt700->regmap, in rt700_set_amp_gain_put()
414 regmap_write(rt700->regmap, in rt700_set_amp_gain_put()
419 regmap_write(rt700->regmap, in rt700_set_amp_gain_put()
424 regmap_write(rt700->regmap, in rt700_set_amp_gain_put()
433 rt700_get_gain(rt700, addr_h, addr_l, val_h, in rt700_set_amp_gain_put()
440 regmap_write(rt700->regmap, in rt700_set_amp_gain_put()
449 struct rt700_priv *rt700 = snd_soc_component_get_drvdata(component); in rt700_set_amp_gain_get() local
462 rt700_get_gain(rt700, addr_h, addr_l, val_h, &read_rl, &read_ll); in rt700_set_amp_gain_get()
515 struct rt700_priv *rt700 = snd_soc_component_get_drvdata(component); in rt700_mux_get() local
530 ret = regmap_read(rt700->regmap, reg, &val); in rt700_mux_get()
546 struct rt700_priv *rt700 = snd_soc_component_get_drvdata(component); in rt700_mux_put() local
568 ret = regmap_read(rt700->regmap, reg, &val2); in rt700_mux_put()
579 regmap_write(rt700->regmap, reg, val); in rt700_mux_put()
626 struct rt700_priv *rt700 = snd_soc_component_get_drvdata(component); in rt700_dac_front_event() local
630 regmap_write(rt700->regmap, in rt700_dac_front_event()
634 regmap_write(rt700->regmap, in rt700_dac_front_event()
646 struct rt700_priv *rt700 = snd_soc_component_get_drvdata(component); in rt700_dac_surround_event() local
650 regmap_write(rt700->regmap, in rt700_dac_surround_event()
654 regmap_write(rt700->regmap, in rt700_dac_surround_event()
666 struct rt700_priv *rt700 = snd_soc_component_get_drvdata(component); in rt700_adc_09_event() local
670 regmap_write(rt700->regmap, in rt700_adc_09_event()
674 regmap_write(rt700->regmap, in rt700_adc_09_event()
686 struct rt700_priv *rt700 = snd_soc_component_get_drvdata(component); in rt700_adc_08_event() local
690 regmap_write(rt700->regmap, in rt700_adc_08_event()
694 regmap_write(rt700->regmap, in rt700_adc_08_event()
706 struct rt700_priv *rt700 = snd_soc_component_get_drvdata(component); in rt700_hpo_mux_event() local
713 regmap_write(rt700->regmap, in rt700_hpo_mux_event()
718 regmap_write(rt700->regmap, in rt700_hpo_mux_event()
731 struct rt700_priv *rt700 = snd_soc_component_get_drvdata(component); in rt700_spk_pga_event() local
738 regmap_write(rt700->regmap, in rt700_spk_pga_event()
743 regmap_write(rt700->regmap, in rt700_spk_pga_event()
810 struct rt700_priv *rt700 = snd_soc_component_get_drvdata(component); in rt700_probe() local
812 rt700->component = component; in rt700_probe()
822 struct rt700_priv *rt700 = snd_soc_component_get_drvdata(component); in rt700_set_bias_level() local
827 regmap_write(rt700->regmap, in rt700_set_bias_level()
834 regmap_write(rt700->regmap, in rt700_set_bias_level()
896 struct rt700_priv *rt700 = snd_soc_component_get_drvdata(component); in rt700_pcm_hw_params() local
910 if (!rt700->slave) in rt700_pcm_hw_params()
943 retval = sdw_stream_add_slave(rt700->slave, &stream_config, in rt700_pcm_hw_params()
980 regmap_write(rt700->regmap, RT700_DAC_FORMAT_H, val); in rt700_pcm_hw_params()
981 regmap_write(rt700->regmap, RT700_ADC_FORMAT_H, val); in rt700_pcm_hw_params()
990 struct rt700_priv *rt700 = snd_soc_component_get_drvdata(component); in rt700_pcm_hw_free() local
994 if (!rt700->slave) in rt700_pcm_hw_free()
997 sdw_stream_remove_slave(rt700->slave, stream->sdw_stream); in rt700_pcm_hw_free()
1063 struct rt700_priv *rt700 = dev_get_drvdata(dev); in rt700_clock_config() local
1066 clk_freq = (rt700->params.curr_dr_freq >> 1); in rt700_clock_config()
1091 regmap_write(rt700->regmap, 0xe0, value); in rt700_clock_config()
1092 regmap_write(rt700->regmap, 0xf0, value); in rt700_clock_config()
1103 struct rt700_priv *rt700; in rt700_init() local
1106 rt700 = devm_kzalloc(dev, sizeof(*rt700), GFP_KERNEL); in rt700_init()
1107 if (!rt700) in rt700_init()
1110 dev_set_drvdata(dev, rt700); in rt700_init()
1111 rt700->slave = slave; in rt700_init()
1112 rt700->sdw_regmap = sdw_regmap; in rt700_init()
1113 rt700->regmap = regmap; in rt700_init()
1119 rt700->hw_init = false; in rt700_init()
1120 rt700->first_hw_init = false; in rt700_init()
1134 struct rt700_priv *rt700 = dev_get_drvdata(dev); in rt700_io_init() local
1136 if (rt700->hw_init) in rt700_io_init()
1139 if (rt700->first_hw_init) { in rt700_io_init()
1140 regcache_cache_only(rt700->regmap, false); in rt700_io_init()
1141 regcache_cache_bypass(rt700->regmap, true); in rt700_io_init()
1147 if (!rt700->first_hw_init) { in rt700_io_init()
1164 regmap_write(rt700->regmap, 0xff01, 0x0000); in rt700_io_init()
1165 regmap_write(rt700->regmap, 0x7520, 0x001a); in rt700_io_init()
1166 regmap_write(rt700->regmap, 0x7420, 0xc003); in rt700_io_init()
1169 regmap_write(rt700->regmap, RT700_SET_AUDIO_POWER_STATE, AC_PWRST_D0); in rt700_io_init()
1171 regmap_write(rt700->regmap, RT700_SET_PIN_HP, 0x40); in rt700_io_init()
1172 regmap_write(rt700->regmap, RT700_SET_PIN_SPK, 0x40); in rt700_io_init()
1173 regmap_write(rt700->regmap, RT700_SET_EAPD_SPK, RT700_EAPD_HIGH); in rt700_io_init()
1174 regmap_write(rt700->regmap, RT700_SET_PIN_DMIC1, 0x20); in rt700_io_init()
1175 regmap_write(rt700->regmap, RT700_SET_PIN_DMIC2, 0x20); in rt700_io_init()
1176 regmap_write(rt700->regmap, RT700_SET_PIN_MIC2, 0x20); in rt700_io_init()
1179 regmap_write(rt700->regmap, 0x4f12, 0x91); in rt700_io_init()
1180 regmap_write(rt700->regmap, 0x4e12, 0xd6); in rt700_io_init()
1181 regmap_write(rt700->regmap, 0x4d12, 0x11); in rt700_io_init()
1182 regmap_write(rt700->regmap, 0x4c12, 0x20); in rt700_io_init()
1183 regmap_write(rt700->regmap, 0x4f13, 0x91); in rt700_io_init()
1184 regmap_write(rt700->regmap, 0x4e13, 0xd6); in rt700_io_init()
1185 regmap_write(rt700->regmap, 0x4d13, 0x11); in rt700_io_init()
1186 regmap_write(rt700->regmap, 0x4c13, 0x21); in rt700_io_init()
1188 regmap_write(rt700->regmap, 0x4f19, 0x02); in rt700_io_init()
1189 regmap_write(rt700->regmap, 0x4e19, 0xa1); in rt700_io_init()
1190 regmap_write(rt700->regmap, 0x4d19, 0x90); in rt700_io_init()
1191 regmap_write(rt700->regmap, 0x4c19, 0x80); in rt700_io_init()
1194 regmap_write(rt700->regmap, 0x371b, 0x40); in rt700_io_init()
1195 regmap_write(rt700->regmap, 0x731b, 0xb0); in rt700_io_init()
1196 regmap_write(rt700->regmap, 0x839b, 0x00); in rt700_io_init()
1199 rt700_index_write(rt700->regmap, 0x4a, 0x201b); in rt700_io_init()
1200 rt700_index_write(rt700->regmap, 0x45, 0x5089); in rt700_io_init()
1201 rt700_index_write(rt700->regmap, 0x6b, 0x5064); in rt700_io_init()
1202 rt700_index_write(rt700->regmap, 0x48, 0xd249); in rt700_io_init()
1205 regmap_write(rt700->regmap, RT700_SET_AUDIO_POWER_STATE, AC_PWRST_D3); in rt700_io_init()
1207 if (!rt700->first_hw_init) { in rt700_io_init()
1208 INIT_DELAYED_WORK(&rt700->jack_detect_work, in rt700_io_init()
1210 INIT_DELAYED_WORK(&rt700->jack_btn_check_work, in rt700_io_init()
1218 if (rt700->hs_jack) in rt700_io_init()
1219 rt700_jack_init(rt700); in rt700_io_init()
1221 if (rt700->first_hw_init) { in rt700_io_init()
1222 regcache_cache_bypass(rt700->regmap, false); in rt700_io_init()
1223 regcache_mark_dirty(rt700->regmap); in rt700_io_init()
1225 rt700->first_hw_init = true; in rt700_io_init()
1228 rt700->hw_init = true; in rt700_io_init()