Lines Matching defs:cpcap

14 #include <linux/mfd/motorola-cpcap.h>
269 struct cpcap_audio *cpcap = snd_soc_component_get_drvdata(component);
273 if (cpcap->vendor != CPCAP_VENDOR_ST)
278 err = regmap_write(cpcap->regmap, CPCAP_REG_TEST,
282 err = regmap_write(cpcap->regmap, CPCAP_REG_ST_TEST1,
288 err = regmap_write(cpcap->regmap, CPCAP_REG_ST_TEST1,
292 err = regmap_write(cpcap->regmap, CPCAP_REG_TEST,
370 struct cpcap_audio *cpcap = snd_soc_component_get_drvdata(component);
376 err = regmap_read(cpcap->regmap, CPCAP_REG_RXCOA, &reg_voice);
379 err = regmap_read(cpcap->regmap, CPCAP_REG_RXSDOA, &reg_hifi);
382 err = regmap_read(cpcap->regmap, CPCAP_REG_RXEPOA, &reg_ext);
413 struct cpcap_audio *cpcap = snd_soc_component_get_drvdata(component);
436 err = regmap_update_bits(cpcap->regmap, CPCAP_REG_RXCOA,
440 err = regmap_update_bits(cpcap->regmap, CPCAP_REG_RXSDOA,
444 err = regmap_update_bits(cpcap->regmap, CPCAP_REG_RXEPOA,
458 struct cpcap_audio *cpcap = snd_soc_component_get_drvdata(component);
462 err = regmap_read(cpcap->regmap, CPCAP_REG_TXI, &regval);
497 struct cpcap_audio *cpcap = snd_soc_component_get_drvdata(component);
528 err = regmap_update_bits(cpcap->regmap, CPCAP_REG_TXI,
542 struct cpcap_audio *cpcap = snd_soc_component_get_drvdata(component);
546 err = regmap_read(cpcap->regmap, CPCAP_REG_TXI, &regval);
573 struct cpcap_audio *cpcap = snd_soc_component_get_drvdata(component);
596 err = regmap_update_bits(cpcap->regmap, CPCAP_REG_TXI,
958 static int cpcap_set_sysclk(struct cpcap_audio *cpcap, enum cpcap_dai dai,
981 dev_err(cpcap->component->dev, "invalid DAI: %d", dai);
987 dev_err(cpcap->component->dev, "invalid clk id %d", clk_id);
990 err = regmap_update_bits(cpcap->regmap, clkidreg, BIT(clkidshift),
999 err = regmap_update_bits(cpcap->regmap, CPCAP_REG_CDI,
1027 dev_err(cpcap->component->dev, "unsupported freq %u", freq);
1031 err = regmap_update_bits(cpcap->regmap, clkfreqreg,
1037 cpcap->codec_clk_id = clk_id;
1038 cpcap->codec_freq = freq;
1044 static int cpcap_set_samprate(struct cpcap_audio *cpcap, enum cpcap_dai dai,
1047 struct snd_soc_component *component = cpcap->component;
1102 err = regmap_update_bits(cpcap->regmap, sampreg,
1110 err = regmap_read(cpcap->regmap, sampreg, &sampreadval);
1128 struct cpcap_audio *cpcap = snd_soc_component_get_drvdata(component);
1132 return cpcap_set_samprate(cpcap, CPCAP_DAI_HIFI, rate);
1139 struct cpcap_audio *cpcap = snd_soc_component_get_drvdata(component);
1143 return cpcap_set_sysclk(cpcap, CPCAP_DAI_HIFI, clk_id, freq);
1150 struct cpcap_audio *cpcap = snd_soc_component_get_drvdata(component);
1225 return regmap_update_bits(cpcap->regmap, reg, mask, val);
1231 struct cpcap_audio *cpcap = snd_soc_component_get_drvdata(component);
1242 return regmap_update_bits(cpcap->regmap, reg, mask, val);
1259 struct cpcap_audio *cpcap = snd_soc_component_get_drvdata(component);
1270 err = cpcap_set_samprate(cpcap, CPCAP_DAI_VOICE, rate);
1285 err = regmap_update_bits(cpcap->regmap, reg_cdi, mask, val);
1297 struct cpcap_audio *cpcap = snd_soc_component_get_drvdata(component);
1301 return cpcap_set_sysclk(cpcap, CPCAP_DAI_VOICE, clk_id, freq);
1308 struct cpcap_audio *cpcap = snd_soc_component_get_drvdata(component);
1375 err = regmap_update_bits(cpcap->regmap, CPCAP_REG_CDI, mask, val);
1379 cpcap->codec_format = val;
1389 * cpcap related hardware as CPU is not involved in the voice call.
1391 static int cpcap_voice_call(struct cpcap_audio *cpcap, struct snd_soc_dai *dai,
1398 err = regmap_update_bits(cpcap->regmap, CPCAP_REG_VAUDIOC,
1405 err = regmap_update_bits(cpcap->regmap, CPCAP_REG_TXI,
1413 err = regmap_update_bits(cpcap->regmap, CPCAP_REG_TXI,
1420 err = regmap_update_bits(cpcap->regmap, CPCAP_REG_RXOA,
1427 err = regmap_update_bits(cpcap->regmap, CPCAP_REG_RXCOA,
1444 err = regmap_update_bits(cpcap->regmap, CPCAP_REG_CC,
1451 err = regmap_update_bits(cpcap->regmap, CPCAP_REG_CDI,
1462 struct cpcap_audio *cpcap = snd_soc_component_get_drvdata(component);
1481 err = regmap_update_bits(cpcap->regmap, CPCAP_REG_CDI,
1486 err = cpcap_set_samprate(cpcap, CPCAP_DAI_VOICE, slot_width * 1000);
1490 err = cpcap_voice_call(cpcap, dai, voice_call);
1500 struct cpcap_audio *cpcap = snd_soc_component_get_drvdata(component);
1511 return regmap_update_bits(cpcap->regmap, reg, mask, val);
1526 .name = "cpcap-hifi",
1538 .name = "cpcap-voice",
1557 static int cpcap_dai_mux(struct cpcap_audio *cpcap, bool swap_dai_configuration)
1576 err = regmap_update_bits(cpcap->regmap, CPCAP_REG_CDI,
1581 err = regmap_update_bits(cpcap->regmap, CPCAP_REG_SDACDI,
1592 struct cpcap_audio *cpcap = snd_soc_component_get_drvdata(component);
1598 err = regmap_update_bits(cpcap->regmap,
1607 err = cpcap_dai_mux(cpcap, swap_dai_configuration);
1611 err = cpcap_set_sysclk(cpcap, CPCAP_DAI_HIFI, 0, 26000000);
1614 err = cpcap_set_sysclk(cpcap, CPCAP_DAI_VOICE, 0, 26000000);
1618 err = cpcap_set_samprate(cpcap, CPCAP_DAI_HIFI, 48000);
1622 err = cpcap_set_samprate(cpcap, CPCAP_DAI_VOICE, 48000);
1631 struct cpcap_audio *cpcap;
1634 cpcap = devm_kzalloc(component->dev, sizeof(*cpcap), GFP_KERNEL);
1635 if (!cpcap)
1637 snd_soc_component_set_drvdata(component, cpcap);
1638 cpcap->component = component;
1640 cpcap->regmap = dev_get_regmap(component->dev->parent, NULL);
1641 if (!cpcap->regmap)
1643 snd_soc_component_init_regmap(component, cpcap->regmap);
1645 err = cpcap_get_vendor(component->dev, cpcap->regmap, &cpcap->vendor);
1681 .name = "cpcap-codec",
1686 MODULE_ALIAS("platform:cpcap-codec");