Lines Matching refs:rt286

192 	struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component);  in rt286_index_sync()  local
196 snd_soc_component_write(component, rt286->index_cache[i].reg, in rt286_index_sync()
197 rt286->index_cache[i].def); in rt286_index_sync()
215 static int rt286_jack_detect(struct rt286_priv *rt286, bool *hp, bool *mic) in rt286_jack_detect() argument
223 if (!rt286->component) in rt286_jack_detect()
226 dapm = snd_soc_component_get_dapm(rt286->component); in rt286_jack_detect()
228 if (rt286->pdata.cbj_en) { in rt286_jack_detect()
229 regmap_read(rt286->regmap, RT286_GET_HP_SENSE, &buf); in rt286_jack_detect()
233 regmap_update_bits(rt286->regmap, in rt286_jack_detect()
242 regmap_write(rt286->regmap, RT286_SET_MIC1, 0x24); in rt286_jack_detect()
245 regmap_update_bits(rt286->regmap, in rt286_jack_detect()
248 regmap_read(rt286->regmap, RT286_CBJ_CTRL2, &val); in rt286_jack_detect()
253 regmap_update_bits(rt286->regmap, in rt286_jack_detect()
256 regmap_read(rt286->regmap, in rt286_jack_detect()
262 regmap_update_bits(rt286->regmap, in rt286_jack_detect()
268 regmap_update_bits(rt286->regmap, in rt286_jack_detect()
273 regmap_write(rt286->regmap, RT286_SET_MIC1, 0x20); in rt286_jack_detect()
274 regmap_update_bits(rt286->regmap, in rt286_jack_detect()
278 regmap_read(rt286->regmap, RT286_GET_HP_SENSE, &buf); in rt286_jack_detect()
280 regmap_read(rt286->regmap, RT286_GET_MIC1_SENSE, &buf); in rt286_jack_detect()
296 struct rt286_priv *rt286 = in rt286_jack_detect_work() local
302 rt286_jack_detect(rt286, &hp, &mic); in rt286_jack_detect_work()
310 snd_soc_jack_report(rt286->jack, status, in rt286_jack_detect_work()
317 struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component); in rt286_mic_detect() local
319 rt286->jack = jack; in rt286_mic_detect()
323 if (rt286->jack->status & SND_JACK_HEADPHONE) in rt286_mic_detect()
325 regmap_update_bits(rt286->regmap, RT286_IRQ_CTRL, 0x2, 0x2); in rt286_mic_detect()
327 snd_soc_jack_report(rt286->jack, rt286->jack->status, in rt286_mic_detect()
331 regmap_update_bits(rt286->regmap, RT286_IRQ_CTRL, 0x2, 0x0); in rt286_mic_detect()
344 struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component); in is_mclk_mode() local
346 if (rt286->clk_id == RT286_SCLK_S_MCLK) in is_mclk_mode()
684 struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component); in rt286_hw_params() local
700 switch (rt286->sys_clk) { in rt286_hw_params()
705 params_rate(params), rt286->sys_clk); in rt286_hw_params()
713 params_rate(params), rt286->sys_clk); in rt286_hw_params()
811 struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component); in rt286_set_dai_sysclk() local
865 rt286->sys_clk = freq; in rt286_set_dai_sysclk()
866 rt286->clk_id = clk_id; in rt286_set_dai_sysclk()
921 struct rt286_priv *rt286 = data; in rt286_irq() local
926 rt286_jack_detect(rt286, &hp, &mic); in rt286_irq()
929 regmap_update_bits(rt286->regmap, RT286_IRQ_CTRL, 0x1, 0x1); in rt286_irq()
937 snd_soc_jack_report(rt286->jack, status, in rt286_irq()
940 pm_wakeup_event(&rt286->i2c->dev, 300); in rt286_irq()
947 struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component); in rt286_probe() local
949 rt286->component = component; in rt286_probe()
951 if (rt286->i2c->irq) { in rt286_probe()
952 regmap_update_bits(rt286->regmap, in rt286_probe()
955 INIT_DELAYED_WORK(&rt286->jack_detect_work, in rt286_probe()
957 schedule_delayed_work(&rt286->jack_detect_work, in rt286_probe()
966 struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component); in rt286_remove() local
968 cancel_delayed_work_sync(&rt286->jack_detect_work); in rt286_remove()
974 struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component); in rt286_suspend() local
976 regcache_cache_only(rt286->regmap, true); in rt286_suspend()
977 regcache_mark_dirty(rt286->regmap); in rt286_suspend()
984 struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component); in rt286_resume() local
986 regcache_cache_only(rt286->regmap, false); in rt286_resume()
988 regcache_sync(rt286->regmap); in rt286_resume()
1141 struct rt286_priv *rt286; in rt286_i2c_probe() local
1144 rt286 = devm_kzalloc(&i2c->dev, sizeof(*rt286), in rt286_i2c_probe()
1146 if (NULL == rt286) in rt286_i2c_probe()
1149 rt286->regmap = devm_regmap_init(&i2c->dev, NULL, i2c, &rt286_regmap); in rt286_i2c_probe()
1150 if (IS_ERR(rt286->regmap)) { in rt286_i2c_probe()
1151 ret = PTR_ERR(rt286->regmap); in rt286_i2c_probe()
1157 ret = regmap_read(rt286->regmap, in rt286_i2c_probe()
1170 rt286->index_cache = devm_kmemdup(&i2c->dev, rt286_index_def, in rt286_i2c_probe()
1172 if (!rt286->index_cache) in rt286_i2c_probe()
1175 rt286->index_cache_size = INDEX_CACHE_SIZE; in rt286_i2c_probe()
1176 rt286->i2c = i2c; in rt286_i2c_probe()
1177 i2c_set_clientdata(i2c, rt286); in rt286_i2c_probe()
1181 regmap_write(rt286->regmap, rt286->index_cache[i].reg, in rt286_i2c_probe()
1182 rt286->index_cache[i].def); in rt286_i2c_probe()
1184 regmap_write(rt286->regmap, rt286_reg[i].reg, in rt286_i2c_probe()
1188 rt286->pdata = *pdata; in rt286_i2c_probe()
1192 rt286->pdata.cbj_en = true; in rt286_i2c_probe()
1194 regmap_write(rt286->regmap, RT286_SET_AUDIO_POWER, AC_PWRST_D3); in rt286_i2c_probe()
1197 regmap_write(rt286->regmap, in rt286_i2c_probe()
1201 if (!rt286->pdata.cbj_en) { in rt286_i2c_probe()
1202 regmap_write(rt286->regmap, RT286_CBJ_CTRL2, 0x0000); in rt286_i2c_probe()
1203 regmap_write(rt286->regmap, RT286_MIC1_DET_CTRL, 0x0816); in rt286_i2c_probe()
1204 regmap_update_bits(rt286->regmap, in rt286_i2c_probe()
1207 regmap_update_bits(rt286->regmap, in rt286_i2c_probe()
1213 if (!rt286->pdata.gpio2_en) in rt286_i2c_probe()
1214 regmap_write(rt286->regmap, RT286_SET_DMIC2_DEFAULT, 0x40); in rt286_i2c_probe()
1216 regmap_write(rt286->regmap, RT286_SET_DMIC2_DEFAULT, 0); in rt286_i2c_probe()
1220 regmap_write(rt286->regmap, RT286_MISC_CTRL1, 0x0000); in rt286_i2c_probe()
1222 regmap_update_bits(rt286->regmap, RT286_POWER_CTRL2, 0xc, 0x0); in rt286_i2c_probe()
1223 regmap_update_bits(rt286->regmap, RT286_POWER_CTRL1, 0x1001, 0x1001); in rt286_i2c_probe()
1226 regmap_update_bits(rt286->regmap, RT286_DEPOP_CTRL2, 0x403a, 0x401a); in rt286_i2c_probe()
1227 regmap_update_bits(rt286->regmap, RT286_DEPOP_CTRL3, 0xf777, 0x4737); in rt286_i2c_probe()
1228 regmap_update_bits(rt286->regmap, RT286_DEPOP_CTRL4, 0x00ff, 0x003f); in rt286_i2c_probe()
1231 regmap_update_bits(rt286->regmap, in rt286_i2c_probe()
1233 regmap_update_bits(rt286->regmap, in rt286_i2c_probe()
1235 regmap_update_bits(rt286->regmap, in rt286_i2c_probe()
1237 regmap_update_bits(rt286->regmap, in rt286_i2c_probe()
1241 if (rt286->i2c->irq) { in rt286_i2c_probe()
1242 ret = request_threaded_irq(rt286->i2c->irq, NULL, rt286_irq, in rt286_i2c_probe()
1243 IRQF_TRIGGER_HIGH | IRQF_ONESHOT, "rt286", rt286); in rt286_i2c_probe()
1260 struct rt286_priv *rt286 = i2c_get_clientdata(i2c); in rt286_i2c_remove() local
1263 free_irq(i2c->irq, rt286); in rt286_i2c_remove()