Lines Matching refs:rt5682

3 // rt5682-sdw.c  --  RT5682 ALSA SoC audio component driver
32 #include "rt5682.h"
43 struct rt5682_priv *rt5682 = dev_get_drvdata(dev);
46 regmap_write(rt5682->sdw_regmap, RT5682_SDW_CMD, 0);
47 regmap_write(rt5682->sdw_regmap, RT5682_SDW_ADDR_H, (reg >> 8) & 0xff);
48 regmap_write(rt5682->sdw_regmap, RT5682_SDW_ADDR_L, (reg & 0xff));
49 regmap_read(rt5682->sdw_regmap, RT5682_SDW_DATA_H, &data_h);
50 regmap_read(rt5682->sdw_regmap, RT5682_SDW_DATA_L, &data_l);
62 struct rt5682_priv *rt5682 = dev_get_drvdata(dev);
64 regmap_write(rt5682->sdw_regmap, RT5682_SDW_CMD, 1);
65 regmap_write(rt5682->sdw_regmap, RT5682_SDW_ADDR_H, (reg >> 8) & 0xff);
66 regmap_write(rt5682->sdw_regmap, RT5682_SDW_ADDR_L, (reg & 0xff));
67 regmap_write(rt5682->sdw_regmap, RT5682_SDW_DATA_H, (val >> 8) & 0xff);
68 regmap_write(rt5682->sdw_regmap, RT5682_SDW_DATA_L, (val & 0xff));
132 struct rt5682_priv *rt5682 = snd_soc_component_get_drvdata(component);
146 if (!rt5682->slave)
167 retval = sdw_stream_add_slave(rt5682->slave, &stream_config,
243 regmap_update_bits(rt5682->regmap, RT5682_SDW_REF_CLK,
245 regmap_update_bits(rt5682->regmap, RT5682_ADDA_CLK_1,
248 regmap_update_bits(rt5682->regmap, RT5682_SDW_REF_CLK,
250 regmap_update_bits(rt5682->regmap, RT5682_ADDA_CLK_1,
261 struct rt5682_priv *rt5682 = snd_soc_component_get_drvdata(component);
265 if (!rt5682->slave)
268 sdw_stream_remove_slave(rt5682->slave, stream->sdw_stream);
281 .name = "rt5682-aif1",
300 .name = "rt5682-aif2",
312 .name = "rt5682-sdw",
335 struct rt5682_priv *rt5682;
338 rt5682 = devm_kzalloc(dev, sizeof(*rt5682), GFP_KERNEL);
339 if (!rt5682)
342 dev_set_drvdata(dev, rt5682);
343 rt5682->slave = slave;
344 rt5682->sdw_regmap = regmap;
345 rt5682->is_sdw = true;
347 rt5682->regmap = devm_regmap_init(dev, NULL, dev,
349 if (IS_ERR(rt5682->regmap)) {
350 ret = PTR_ERR(rt5682->regmap);
360 rt5682->hw_init = false;
361 rt5682->first_hw_init = false;
363 mutex_init(&rt5682->calibrate_mutex);
364 INIT_DELAYED_WORK(&rt5682->jack_detect_work,
377 struct rt5682_priv *rt5682 = dev_get_drvdata(dev);
381 if (rt5682->hw_init)
387 if (!rt5682->first_hw_init) {
403 if (rt5682->first_hw_init) {
404 regcache_cache_only(rt5682->regmap, false);
405 regcache_cache_bypass(rt5682->regmap, true);
409 regmap_read(rt5682->regmap, RT5682_DEVICE_ID, &val);
412 dev_warn(dev, "Device with ID register %x is not rt5682\n", val);
418 dev_err(dev, "Device with ID register %x is not rt5682\n", val);
423 rt5682_calibrate(rt5682);
425 if (rt5682->first_hw_init) {
426 regcache_cache_bypass(rt5682->regmap, false);
427 regcache_mark_dirty(rt5682->regmap);
428 regcache_sync(rt5682->regmap);
431 regmap_update_bits(rt5682->regmap, RT5682_CBJ_CTRL_2,
437 rt5682_apply_patch_list(rt5682, dev);
439 regmap_write(rt5682->regmap, RT5682_DEPOP_1, 0x0000);
441 regmap_update_bits(rt5682->regmap, RT5682_PWR_ANLG_1,
444 regmap_write(rt5682->regmap, RT5682_MICBIAS_2, 0x0080);
445 regmap_write(rt5682->regmap, RT5682_TEST_MODE_CTRL_1, 0x0000);
446 regmap_update_bits(rt5682->regmap, RT5682_BIAS_CUR_CTRL_8,
448 regmap_update_bits(rt5682->regmap, RT5682_CHARGE_PUMP_1,
450 regmap_update_bits(rt5682->regmap, RT5682_HP_CHARGE_PUMP_1,
454 regmap_write(rt5682->regmap, RT5682_PLL2_INTERNAL, 0xa266);
455 regmap_write(rt5682->regmap, RT5682_PLL2_CTRL_1, 0x1700);
456 regmap_write(rt5682->regmap, RT5682_PLL2_CTRL_2, 0x0006);
457 regmap_write(rt5682->regmap, RT5682_PLL2_CTRL_3, 0x2600);
458 regmap_write(rt5682->regmap, RT5682_PLL2_CTRL_4, 0x0c8f);
459 regmap_write(rt5682->regmap, RT5682_PLL_TRACK_2, 0x3000);
460 regmap_write(rt5682->regmap, RT5682_PLL_TRACK_3, 0x4000);
461 regmap_update_bits(rt5682->regmap, RT5682_GLB_CLK,
465 regmap_update_bits(rt5682->regmap, RT5682_CBJ_CTRL_2,
467 regmap_write(rt5682->regmap, RT5682_CBJ_CTRL_1, 0xd142);
468 regmap_update_bits(rt5682->regmap, RT5682_CBJ_CTRL_5, 0x0700, 0x0600);
469 regmap_update_bits(rt5682->regmap, RT5682_CBJ_CTRL_3,
471 regmap_update_bits(rt5682->regmap, RT5682_SAR_IL_CMD_1,
473 regmap_update_bits(rt5682->regmap, RT5682_RC_CLK_CTRL,
477 regmap_update_bits(rt5682->regmap, RT5682_PWR_ANLG_2,
479 regmap_update_bits(rt5682->regmap, RT5682_IRQ_CTRL_2,
485 &rt5682->jack_detect_work, msecs_to_jiffies(250));
488 rt5682->hw_init = true;
489 rt5682->first_hw_init = true;
530 struct rt5682_priv *rt5682 = dev_get_drvdata(&slave->dev);
533 rt5682->status = status;
536 rt5682->hw_init = false;
542 if (rt5682->hw_init || rt5682->status != SDW_SLAVE_ATTACHED)
623 struct rt5682_priv *rt5682 = dev_get_drvdata(dev);
626 clk_freq = (rt5682->params.curr_dr_freq >> 1);
651 regmap_write(rt5682->sdw_regmap, 0xe0, value);
652 regmap_write(rt5682->sdw_regmap, 0xf0, value);
662 struct rt5682_priv *rt5682 = dev_get_drvdata(&slave->dev);
665 memcpy(&rt5682->params, params, sizeof(*params));
677 struct rt5682_priv *rt5682 = dev_get_drvdata(&slave->dev);
684 &rt5682->jack_detect_work, msecs_to_jiffies(250));
714 struct rt5682_priv *rt5682 = dev_get_drvdata(&slave->dev);
716 if (rt5682 && rt5682->hw_init)
717 cancel_delayed_work(&rt5682->jack_detect_work);
730 struct rt5682_priv *rt5682 = dev_get_drvdata(dev);
732 if (!rt5682->hw_init)
735 regcache_cache_only(rt5682->regmap, true);
736 regcache_mark_dirty(rt5682->regmap);
744 struct rt5682_priv *rt5682 = dev_get_drvdata(dev);
747 if (!rt5682->first_hw_init)
762 regcache_cache_only(rt5682->regmap, false);
763 regcache_sync(rt5682->regmap);
775 .name = "rt5682",