Lines Matching defs:rt1308

3 // rt1308.c  --  RT1308 ALSA SoC amplifier component driver
30 #include "rt1308.h"
199 struct rt1308_priv *rt1308 = snd_soc_component_get_drvdata(component);
201 return regmap_multi_reg_write(rt1308->regmap, init_list,
457 struct rt1308_priv *rt1308 = snd_soc_component_get_drvdata(component);
461 rt1308->lrck = params_rate(params);
462 pre_div = rt1308_get_clk_info(rt1308->sysclk, rt1308->lrck);
465 "Unsupported clock setting %d\n", rt1308->lrck);
477 rt1308->bclk = rt1308->lrck * (32 << bclk_ms);
483 rt1308->lrck, pre_div, dai->id);
524 struct rt1308_priv *rt1308 = snd_soc_component_get_drvdata(component);
529 rt1308->master = 0;
580 struct rt1308_priv *rt1308 = snd_soc_component_get_drvdata(component);
583 if (freq == rt1308->sysclk && clk_id == rt1308->sysclk_src)
608 rt1308->sysclk = freq;
609 rt1308->sysclk_src = clk_id;
621 struct rt1308_priv *rt1308 = snd_soc_component_get_drvdata(component);
625 if (source == rt1308->pll_src && freq_in == rt1308->pll_in &&
626 freq_out == rt1308->pll_out)
632 rt1308->pll_in = 0;
633 rt1308->pll_out = 0;
681 rt1308->pll_in = freq_in;
682 rt1308->pll_out = freq_out;
683 rt1308->pll_src = source;
690 struct rt1308_priv *rt1308 = snd_soc_component_get_drvdata(component);
692 rt1308->component = component;
699 struct rt1308_priv *rt1308 = snd_soc_component_get_drvdata(component);
701 regmap_write(rt1308->regmap, RT1308_RESET, 0);
707 struct rt1308_priv *rt1308 = snd_soc_component_get_drvdata(component);
709 regcache_cache_only(rt1308->regmap, true);
710 regcache_mark_dirty(rt1308->regmap);
717 struct rt1308_priv *rt1308 = snd_soc_component_get_drvdata(component);
719 regcache_cache_only(rt1308->regmap, false);
720 regcache_sync(rt1308->regmap);
741 .name = "rt1308-aif",
786 { .compatible = "realtek,rt1308", },
801 { "rt1308", 0 },
806 static void rt1308_efuse(struct rt1308_priv *rt1308)
808 regmap_write(rt1308->regmap, RT1308_RESET, 0);
810 regmap_write(rt1308->regmap, RT1308_POWER_STATUS, 0x01800000);
812 regmap_write(rt1308->regmap, RT1308_EFUSE_1, 0x44fe0f00);
814 regmap_write(rt1308->regmap, RT1308_PVDD_OFFSET_CTL, 0x10000000);
820 struct rt1308_priv *rt1308;
824 rt1308 = devm_kzalloc(&i2c->dev, sizeof(struct rt1308_priv),
826 if (rt1308 == NULL)
829 i2c_set_clientdata(i2c, rt1308);
831 rt1308->regmap = devm_regmap_init_i2c(i2c, &rt1308_regmap);
832 if (IS_ERR(rt1308->regmap)) {
833 ret = PTR_ERR(rt1308->regmap);
839 regmap_read(rt1308->regmap, RT1308_VEN_DEV_ID, &val);
843 "Device with ID register %x is not rt1308\n", val);
847 rt1308_efuse(rt1308);
856 struct rt1308_priv *rt1308 = i2c_get_clientdata(client);
858 regmap_write(rt1308->regmap, RT1308_RESET, 0);
863 .name = "rt1308",