rt286 189 sound/soc/codecs/rt286.c struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component); rt286 193 sound/soc/codecs/rt286.c snd_soc_component_write(component, rt286->index_cache[i].reg, rt286 194 sound/soc/codecs/rt286.c rt286->index_cache[i].def); rt286 212 sound/soc/codecs/rt286.c static int rt286_jack_detect(struct rt286_priv *rt286, bool *hp, bool *mic) rt286 220 sound/soc/codecs/rt286.c if (!rt286->component) rt286 223 sound/soc/codecs/rt286.c dapm = snd_soc_component_get_dapm(rt286->component); rt286 225 sound/soc/codecs/rt286.c if (rt286->pdata.cbj_en) { rt286 226 sound/soc/codecs/rt286.c regmap_read(rt286->regmap, RT286_GET_HP_SENSE, &buf); rt286 230 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, rt286 239 sound/soc/codecs/rt286.c regmap_write(rt286->regmap, RT286_SET_MIC1, 0x24); rt286 242 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, rt286 245 sound/soc/codecs/rt286.c regmap_read(rt286->regmap, RT286_CBJ_CTRL2, &val); rt286 250 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, rt286 253 sound/soc/codecs/rt286.c regmap_read(rt286->regmap, rt286 260 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, rt286 265 sound/soc/codecs/rt286.c regmap_write(rt286->regmap, RT286_SET_MIC1, 0x20); rt286 266 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, rt286 270 sound/soc/codecs/rt286.c regmap_read(rt286->regmap, RT286_GET_HP_SENSE, &buf); rt286 272 sound/soc/codecs/rt286.c regmap_read(rt286->regmap, RT286_GET_MIC1_SENSE, &buf); rt286 288 sound/soc/codecs/rt286.c struct rt286_priv *rt286 = rt286 294 sound/soc/codecs/rt286.c rt286_jack_detect(rt286, &hp, &mic); rt286 302 sound/soc/codecs/rt286.c snd_soc_jack_report(rt286->jack, status, rt286 309 sound/soc/codecs/rt286.c struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component); rt286 311 sound/soc/codecs/rt286.c rt286->jack = jack; rt286 315 sound/soc/codecs/rt286.c if (rt286->jack->status & SND_JACK_HEADPHONE) rt286 317 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, RT286_IRQ_CTRL, 0x2, 0x2); rt286 319 sound/soc/codecs/rt286.c snd_soc_jack_report(rt286->jack, rt286->jack->status, rt286 323 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, RT286_IRQ_CTRL, 0x2, 0x0); rt286 336 sound/soc/codecs/rt286.c struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component); rt286 338 sound/soc/codecs/rt286.c if (rt286->clk_id == RT286_SCLK_S_MCLK) rt286 676 sound/soc/codecs/rt286.c struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component); rt286 692 sound/soc/codecs/rt286.c switch (rt286->sys_clk) { rt286 697 sound/soc/codecs/rt286.c params_rate(params), rt286->sys_clk); rt286 705 sound/soc/codecs/rt286.c params_rate(params), rt286->sys_clk); rt286 804 sound/soc/codecs/rt286.c struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component); rt286 858 sound/soc/codecs/rt286.c rt286->sys_clk = freq; rt286 859 sound/soc/codecs/rt286.c rt286->clk_id = clk_id; rt286 914 sound/soc/codecs/rt286.c struct rt286_priv *rt286 = data; rt286 919 sound/soc/codecs/rt286.c rt286_jack_detect(rt286, &hp, &mic); rt286 922 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, RT286_IRQ_CTRL, 0x1, 0x1); rt286 930 sound/soc/codecs/rt286.c snd_soc_jack_report(rt286->jack, status, rt286 933 sound/soc/codecs/rt286.c pm_wakeup_event(&rt286->i2c->dev, 300); rt286 940 sound/soc/codecs/rt286.c struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component); rt286 942 sound/soc/codecs/rt286.c rt286->component = component; rt286 944 sound/soc/codecs/rt286.c if (rt286->i2c->irq) { rt286 945 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, rt286 948 sound/soc/codecs/rt286.c INIT_DELAYED_WORK(&rt286->jack_detect_work, rt286 950 sound/soc/codecs/rt286.c schedule_delayed_work(&rt286->jack_detect_work, rt286 959 sound/soc/codecs/rt286.c struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component); rt286 961 sound/soc/codecs/rt286.c cancel_delayed_work_sync(&rt286->jack_detect_work); rt286 967 sound/soc/codecs/rt286.c struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component); rt286 969 sound/soc/codecs/rt286.c regcache_cache_only(rt286->regmap, true); rt286 970 sound/soc/codecs/rt286.c regcache_mark_dirty(rt286->regmap); rt286 977 sound/soc/codecs/rt286.c struct rt286_priv *rt286 = snd_soc_component_get_drvdata(component); rt286 979 sound/soc/codecs/rt286.c regcache_cache_only(rt286->regmap, false); rt286 981 sound/soc/codecs/rt286.c regcache_sync(rt286->regmap); rt286 1133 sound/soc/codecs/rt286.c struct rt286_priv *rt286; rt286 1136 sound/soc/codecs/rt286.c rt286 = devm_kzalloc(&i2c->dev, sizeof(*rt286), rt286 1138 sound/soc/codecs/rt286.c if (NULL == rt286) rt286 1141 sound/soc/codecs/rt286.c rt286->regmap = devm_regmap_init(&i2c->dev, NULL, i2c, &rt286_regmap); rt286 1142 sound/soc/codecs/rt286.c if (IS_ERR(rt286->regmap)) { rt286 1143 sound/soc/codecs/rt286.c ret = PTR_ERR(rt286->regmap); rt286 1149 sound/soc/codecs/rt286.c ret = regmap_read(rt286->regmap, rt286 1161 sound/soc/codecs/rt286.c rt286->index_cache = devm_kmemdup(&i2c->dev, rt286_index_def, rt286 1163 sound/soc/codecs/rt286.c if (!rt286->index_cache) rt286 1166 sound/soc/codecs/rt286.c rt286->index_cache_size = INDEX_CACHE_SIZE; rt286 1167 sound/soc/codecs/rt286.c rt286->i2c = i2c; rt286 1168 sound/soc/codecs/rt286.c i2c_set_clientdata(i2c, rt286); rt286 1172 sound/soc/codecs/rt286.c regmap_write(rt286->regmap, rt286->index_cache[i].reg, rt286 1173 sound/soc/codecs/rt286.c rt286->index_cache[i].def); rt286 1175 sound/soc/codecs/rt286.c regmap_write(rt286->regmap, rt286_reg[i].reg, rt286 1179 sound/soc/codecs/rt286.c rt286->pdata = *pdata; rt286 1183 sound/soc/codecs/rt286.c rt286->pdata.cbj_en = true; rt286 1185 sound/soc/codecs/rt286.c regmap_write(rt286->regmap, RT286_SET_AUDIO_POWER, AC_PWRST_D3); rt286 1188 sound/soc/codecs/rt286.c regmap_write(rt286->regmap, rt286 1192 sound/soc/codecs/rt286.c if (!rt286->pdata.cbj_en) { rt286 1193 sound/soc/codecs/rt286.c regmap_write(rt286->regmap, RT286_CBJ_CTRL2, 0x0000); rt286 1194 sound/soc/codecs/rt286.c regmap_write(rt286->regmap, RT286_MIC1_DET_CTRL, 0x0816); rt286 1195 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, rt286 1198 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, rt286 1204 sound/soc/codecs/rt286.c if (!rt286->pdata.gpio2_en) rt286 1205 sound/soc/codecs/rt286.c regmap_write(rt286->regmap, RT286_SET_DMIC2_DEFAULT, 0x4000); rt286 1207 sound/soc/codecs/rt286.c regmap_write(rt286->regmap, RT286_SET_DMIC2_DEFAULT, 0); rt286 1211 sound/soc/codecs/rt286.c regmap_write(rt286->regmap, RT286_MISC_CTRL1, 0x0000); rt286 1213 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, RT286_POWER_CTRL2, 0xc, 0x0); rt286 1214 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, RT286_POWER_CTRL1, 0x1001, 0x1001); rt286 1217 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, RT286_DEPOP_CTRL2, 0x403a, 0x401a); rt286 1218 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, RT286_DEPOP_CTRL3, 0xf777, 0x4737); rt286 1219 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, RT286_DEPOP_CTRL4, 0x00ff, 0x003f); rt286 1222 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, rt286 1224 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, rt286 1226 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, rt286 1228 sound/soc/codecs/rt286.c regmap_update_bits(rt286->regmap, rt286 1232 sound/soc/codecs/rt286.c if (rt286->i2c->irq) { rt286 1233 sound/soc/codecs/rt286.c ret = request_threaded_irq(rt286->i2c->irq, NULL, rt286_irq, rt286 1234 sound/soc/codecs/rt286.c IRQF_TRIGGER_HIGH | IRQF_ONESHOT, "rt286", rt286); rt286 1251 sound/soc/codecs/rt286.c struct rt286_priv *rt286 = i2c_get_clientdata(i2c); rt286 1254 sound/soc/codecs/rt286.c free_irq(i2c->irq, rt286);