Lines Matching refs:rt5660

3  * rt5660.c  --  RT5660 ALSA SoC audio codec driver
29 #include "rt5660.h"
353 struct rt5660_priv *rt5660 = snd_soc_component_get_drvdata(component);
356 rate = rt5660->sysclk / rl6231_get_pre_div(rt5660->regmap,
837 struct rt5660_priv *rt5660 = snd_soc_component_get_drvdata(component);
841 rt5660->lrck[dai->id] = params_rate(params);
842 pre_div = rl6231_get_clk_info(rt5660->sysclk, rt5660->lrck[dai->id]);
845 rt5660->lrck[dai->id], dai->id);
860 rt5660->bclk[dai->id] = rt5660->lrck[dai->id] * (32 << bclk_ms);
863 rt5660->bclk[dai->id], rt5660->lrck[dai->id]);
904 struct rt5660_priv *rt5660 = snd_soc_component_get_drvdata(component);
909 rt5660->master[dai->id] = 1;
914 rt5660->master[dai->id] = 0;
972 struct rt5660_priv *rt5660 = snd_soc_component_get_drvdata(component);
975 if (freq == rt5660->sysclk && clk_id == rt5660->sysclk_src)
999 rt5660->sysclk = freq;
1000 rt5660->sysclk_src = clk_id;
1011 struct rt5660_priv *rt5660 = snd_soc_component_get_drvdata(component);
1015 if (source == rt5660->pll_src && freq_in == rt5660->pll_in &&
1016 freq_out == rt5660->pll_out)
1022 rt5660->pll_in = 0;
1023 rt5660->pll_out = 0;
1061 rt5660->pll_in = freq_in;
1062 rt5660->pll_out = freq_out;
1063 rt5660->pll_src = source;
1071 struct rt5660_priv *rt5660 = snd_soc_component_get_drvdata(component);
1082 if (IS_ERR(rt5660->mclk))
1086 clk_disable_unprepare(rt5660->mclk);
1088 ret = clk_prepare_enable(rt5660->mclk);
1122 struct rt5660_priv *rt5660 = snd_soc_component_get_drvdata(component);
1124 rt5660->component = component;
1137 struct rt5660_priv *rt5660 = snd_soc_component_get_drvdata(component);
1139 regcache_cache_only(rt5660->regmap, true);
1140 regcache_mark_dirty(rt5660->regmap);
1147 struct rt5660_priv *rt5660 = snd_soc_component_get_drvdata(component);
1149 if (rt5660->pdata.poweroff_codec_in_suspend)
1152 regcache_cache_only(rt5660->regmap, false);
1153 regcache_sync(rt5660->regmap);
1175 .name = "rt5660-aif1",
1230 { "rt5660", 0 },
1237 { .compatible = "realtek,rt5660", },
1252 static int rt5660_parse_dt(struct rt5660_priv *rt5660, struct device *dev)
1254 rt5660->pdata.in1_diff = device_property_read_bool(dev,
1256 rt5660->pdata.in3_diff = device_property_read_bool(dev,
1258 rt5660->pdata.poweroff_codec_in_suspend = device_property_read_bool(dev,
1261 &rt5660->pdata.dmic1_data_pin);
1269 struct rt5660_priv *rt5660;
1273 rt5660 = devm_kzalloc(&i2c->dev, sizeof(struct rt5660_priv),
1276 if (rt5660 == NULL)
1280 rt5660->mclk = devm_clk_get(&i2c->dev, "mclk");
1281 if (PTR_ERR(rt5660->mclk) == -EPROBE_DEFER)
1284 i2c_set_clientdata(i2c, rt5660);
1287 rt5660->pdata = *pdata;
1289 rt5660_parse_dt(rt5660, &i2c->dev);
1291 rt5660->regmap = devm_regmap_init_i2c(i2c, &rt5660_regmap);
1292 if (IS_ERR(rt5660->regmap)) {
1293 ret = PTR_ERR(rt5660->regmap);
1299 regmap_read(rt5660->regmap, RT5660_VENDOR_ID2, &val);
1302 "Device with ID register %#x is not rt5660\n", val);
1306 regmap_write(rt5660->regmap, RT5660_RESET, 0);
1308 ret = regmap_register_patch(rt5660->regmap, rt5660_patch,
1313 regmap_update_bits(rt5660->regmap, RT5660_GEN_CTRL1,
1317 if (rt5660->pdata.dmic1_data_pin) {
1318 regmap_update_bits(rt5660->regmap, RT5660_GPIO_CTRL1,
1321 if (rt5660->pdata.dmic1_data_pin == RT5660_DMIC1_DATA_GPIO2)
1322 regmap_update_bits(rt5660->regmap, RT5660_DMIC_CTRL1,
1325 else if (rt5660->pdata.dmic1_data_pin == RT5660_DMIC1_DATA_IN1P)
1326 regmap_update_bits(rt5660->regmap, RT5660_DMIC_CTRL1,
1338 .name = "rt5660",