Lines Matching full:cs42l43
3 // CS42L43 CODEC driver
14 #include <linux/mfd/cs42l43.h>
15 #include <linux/mfd/cs42l43-regs.h>
28 #include "cs42l43.h"
222 struct cs42l43 *cs42l43 = priv->core; in cs42l43_startup() local
223 int provider = !dai->id || !!regmap_test_bits(cs42l43->regmap, in cs42l43_startup()
266 struct cs42l43 *cs42l43 = priv->core; in cs42l43_set_sample_rate() local
276 regmap_update_bits(cs42l43->regmap, CS42L43_SAMPLE_RATE1, in cs42l43_set_sample_rate()
287 struct cs42l43 *cs42l43 = priv->core; in cs42l43_asp_hw_params() local
288 int dsp_mode = !!regmap_test_bits(cs42l43->regmap, CS42L43_ASP_CTRL, in cs42l43_asp_hw_params()
290 int provider = !!regmap_test_bits(cs42l43->regmap, CS42L43_ASP_CLK_CONFIG2, in cs42l43_asp_hw_params()
327 regmap_update_bits(cs42l43->regmap, CS42L43_ASP_CLK_CONFIG1, in cs42l43_asp_hw_params()
331 regmap_update_bits(cs42l43->regmap, CS42L43_ASP_FSYNC_CTRL1, in cs42l43_asp_hw_params()
335 regmap_update_bits(cs42l43->regmap, CS42L43_ASP_FSYNC_CTRL4, in cs42l43_asp_hw_params()
359 regmap_update_bits(cs42l43->regmap, reg, in cs42l43_asp_hw_params()
376 struct cs42l43 *cs42l43 = priv->core; in cs42l43_asp_set_fmt() local
377 int provider = regmap_test_bits(cs42l43->regmap, CS42L43_ASP_CLK_CONFIG2, in cs42l43_asp_set_fmt()
444 regmap_update_bits(cs42l43->regmap, CS42L43_ASP_CTRL, in cs42l43_asp_set_fmt()
447 regmap_update_bits(cs42l43->regmap, CS42L43_ASP_DATA_CTRL, in cs42l43_asp_set_fmt()
451 regmap_update_bits(cs42l43->regmap, CS42L43_ASP_CLK_CONFIG2, in cs42l43_asp_set_fmt()
455 regmap_update_bits(cs42l43->regmap, CS42L43_ASP_FSYNC_CTRL3, in cs42l43_asp_set_fmt()
535 .name = "cs42l43-asp",
554 .name = "cs42l43-dp1",
566 .name = "cs42l43-dp2",
578 .name = "cs42l43-dp3",
590 .name = "cs42l43-dp4",
602 .name = "cs42l43-dp5",
614 .name = "cs42l43-dp6",
626 .name = "cs42l43-dp7",
912 struct cs42l43 *cs42l43 = priv->core; in cs42l43_spk_vu_sync() local
916 regmap_update_bits(cs42l43->regmap, CS42L43_INTP_VOLUME_CTRL1, in cs42l43_spk_vu_sync()
918 regmap_update_bits(cs42l43->regmap, CS42L43_INTP_VOLUME_CTRL1, in cs42l43_spk_vu_sync()
926 struct cs42l43 *cs42l43 = priv->core; in cs42l43_shutter_get() local
941 ret = regcache_drop_region(cs42l43->regmap, CS42L43_SHUTTER_CONTROL, in cs42l43_shutter_get()
948 ret = regmap_read(cs42l43->regmap, CS42L43_SHUTTER_CONTROL, &val); in cs42l43_shutter_get()
1151 struct cs42l43 *cs42l43 = priv->core; in cs42l43_eq_ev() local
1157 regmap_update_bits(cs42l43->regmap, CS42L43_MUTE_EQ_IN0, in cs42l43_eq_ev()
1161 regmap_update_bits(cs42l43->regmap, CS42L43_COEFF_RD_WR0, in cs42l43_eq_ev()
1165 regmap_write(cs42l43->regmap, CS42L43_COEFF_DATA_IN0, in cs42l43_eq_ev()
1168 regmap_update_bits(cs42l43->regmap, CS42L43_COEFF_RD_WR0, in cs42l43_eq_ev()
1173 ret = regmap_read_poll_timeout(cs42l43->regmap, CS42L43_INIT_DONE0, in cs42l43_eq_ev()
1179 regmap_update_bits(cs42l43->regmap, CS42L43_MUTE_EQ_IN0, in cs42l43_eq_ev()
1204 struct cs42l43 *cs42l43 = priv->core; in cs42l43_set_pll() local
1206 lockdep_assert_held(&cs42l43->pll_lock); in cs42l43_set_pll()
1211 if (regmap_test_bits(cs42l43->regmap, CS42L43_CTRL_REG, CS42L43_PLL_EN_MASK)) { in cs42l43_set_pll()
1238 struct cs42l43 *cs42l43 = priv->core; in cs42l43_enable_pll() local
1244 lockdep_assert_held(&cs42l43->pll_lock); in cs42l43_enable_pll()
1248 freq = cs42l43->sdw_freq; in cs42l43_enable_pll()
1249 else if (!cs42l43->sdw_freq) in cs42l43_enable_pll()
1250 cs42l43->sdw_freq = freq; in cs42l43_enable_pll()
1276 regmap_update_bits(cs42l43->regmap, CS42L43_PLL_CONTROL, in cs42l43_enable_pll()
1280 regmap_write(cs42l43->regmap, CS42L43_FDIV_FRAC, config->div); in cs42l43_enable_pll()
1281 regmap_update_bits(cs42l43->regmap, CS42L43_CTRL_REG, in cs42l43_enable_pll()
1285 regmap_update_bits(cs42l43->regmap, CS42L43_CAL_RATIO, in cs42l43_enable_pll()
1287 regmap_update_bits(cs42l43->regmap, CS42L43_PLL_CONTROL, in cs42l43_enable_pll()
1292 regmap_update_bits(cs42l43->regmap, CS42L43_CTRL_REG, in cs42l43_enable_pll()
1298 regmap_update_bits(cs42l43->regmap, CS42L43_CTRL_REG, in cs42l43_enable_pll()
1300 regmap_update_bits(cs42l43->regmap, CS42L43_PLL_CONTROL, in cs42l43_enable_pll()
1308 cs42l43->sdw_pll_active = true; in cs42l43_enable_pll()
1317 regmap_multi_reg_write(cs42l43->regmap, enable_seq, ARRAY_SIZE(enable_seq)); in cs42l43_enable_pll()
1328 struct cs42l43 *cs42l43 = priv->core; in cs42l43_disable_pll() local
1332 lockdep_assert_held(&cs42l43->pll_lock); in cs42l43_disable_pll()
1334 regmap_multi_reg_write(cs42l43->regmap, disable_seq, ARRAY_SIZE(disable_seq)); in cs42l43_disable_pll()
1335 regmap_update_bits(cs42l43->regmap, CS42L43_CTRL_REG, CS42L43_PLL_EN_MASK, 0); in cs42l43_disable_pll()
1336 regmap_update_bits(cs42l43->regmap, CS42L43_PLL_CONTROL, in cs42l43_disable_pll()
1339 cs42l43->sdw_pll_active = false; in cs42l43_disable_pll()
1349 struct cs42l43 *cs42l43 = priv->core; in cs42l43_pll_ev() local
1352 mutex_lock(&cs42l43->pll_lock); in cs42l43_pll_ev()
1377 mutex_unlock(&cs42l43->pll_lock); in cs42l43_pll_ev()
1437 struct cs42l43 *cs42l43 = priv->core; in cs42l43_hp_ev() local
1457 regmap_update_bits(cs42l43->regmap, CS42L43_BLOCK_EN8, in cs42l43_hp_ev()
1483 struct cs42l43 *cs42l43 = priv->core; in cs42l43_mic_ev() local
1522 ret = regmap_read(cs42l43->regmap, reg, val); in cs42l43_mic_ev()
1530 regmap_update_bits(cs42l43->regmap, reg, mute | ramp, mute); in cs42l43_mic_ev()
1533 regmap_update_bits(cs42l43->regmap, reg, mute | ramp, *val); in cs42l43_mic_ev()
1547 struct cs42l43 *cs42l43 = priv->core; in cs42l43_adc_ev() local
1565 regmap_update_bits(cs42l43->regmap, CS42L43_BLOCK_EN3, in cs42l43_adc_ev()
2001 struct cs42l43 *cs42l43 = priv->core; in cs42l43_set_sysclk() local
2004 mutex_lock(&cs42l43->pll_lock); in cs42l43_set_sysclk()
2006 mutex_unlock(&cs42l43->pll_lock); in cs42l43_set_sysclk()
2014 struct cs42l43 *cs42l43 = priv->core; in cs42l43_component_probe() local
2016 snd_soc_component_init_regmap(component, cs42l43->regmap); in cs42l43_component_probe()
2028 .name = "cs42l43-codec",
2138 struct cs42l43 *cs42l43 = dev_get_drvdata(pdev->dev.parent); in cs42l43_codec_probe() local
2144 dom = irq_find_matching_fwnode(dev_fwnode(cs42l43->dev), DOMAIN_BUS_ANY); in cs42l43_codec_probe()
2153 priv->core = cs42l43; in cs42l43_codec_probe()
2192 ret = regmap_read(cs42l43->regmap, CS42L43_SHUTTER_CONTROL, &val); in cs42l43_codec_probe()
2212 priv->mclk = clk_get_optional(cs42l43->dev, "mclk"); in cs42l43_codec_probe()
2264 { "cs42l43-codec", },
2271 .name = "cs42l43-codec",
2283 MODULE_DESCRIPTION("CS42L43 CODEC Driver");