Symbol: cs4234
sound/soc/codecs/cs4234.c
102
regmap_read(cs4234->regmap, CS4234_DAC_CTRL4, &val);
sound/soc/codecs/cs4234.c
119
struct cs4234 *cs4234 = container_of(dw, struct cs4234, vq_ramp_delay);
sound/soc/codecs/cs4234.c
121
complete_all(&cs4234->vq_ramp_complete);
sound/soc/codecs/cs4234.c
127
struct cs4234 *cs4234 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/cs4234.c
134
wait_for_completion(&cs4234->vq_ramp_complete);
sound/soc/codecs/cs4234.c
290
struct cs4234 *cs4234 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/cs4234.c
293
cs4234->format = format & SND_SOC_DAIFMT_FORMAT_MASK;
sound/soc/codecs/cs4234.c
294
switch (cs4234->format) {
sound/soc/codecs/cs4234.c
313
if (cs4234->format == SND_SOC_DAIFMT_DSP_A) {
sound/soc/codecs/cs4234.c
335
regmap_update_bits(cs4234->regmap, CS4234_SP_CTRL,
sound/soc/codecs/cs4234.c
347
struct cs4234 *cs4234 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/cs4234.c
351
cs4234->lrclk_rate = params_rate(params);
sound/soc/codecs/cs4234.c
352
mclk_mult = cs4234->mclk_rate / cs4234->lrclk_rate;
sound/soc/codecs/cs4234.c
354
if (cs4234->lrclk_rate > 48000) {
sound/soc/codecs/cs4234.c
363
regmap_update_bits(cs4234->regmap, CS4234_CLOCK_SP,
sound/soc/codecs/cs4234.c
366
regmap_update_bits(cs4234->regmap, CS4234_CLOCK_SP,
sound/soc/codecs/cs4234.c
375
switch (cs4234->lrclk_rate) {
sound/soc/codecs/cs4234.c
392
regmap_update_bits(cs4234->regmap, CS4234_CLOCK_SP, CS4234_BASE_RATE_MASK,
sound/soc/codecs/cs4234.c
414
regmap_update_bits(cs4234->regmap, CS4234_SAMPLE_WIDTH,
sound/soc/codecs/cs4234.c
418
regmap_update_bits(cs4234->regmap, CS4234_SAMPLE_WIDTH,
sound/soc/codecs/cs4234.c
447
struct cs4234 *cs4234 = rule->private;
sound/soc/codecs/cs4234.c
448
int mclk = cs4234->mclk_rate;
sound/soc/codecs/cs4234.c
467
struct cs4234 *cs4234 = snd_soc_component_get_drvdata(comp);
sound/soc/codecs/cs4234.c
470
switch (cs4234->format) {
sound/soc/codecs/cs4234.c
473
cs4234->rate_constraint.nrats = 2;
sound/soc/codecs/cs4234.c
498
cs4234->rate_constraint.nrats = 1;
sound/soc/codecs/cs4234.c
505
for (i = 0; i < cs4234->rate_constraint.nrats; i++)
sound/soc/codecs/cs4234.c
506
cs4234->rate_dividers[i].num = cs4234->mclk_rate / CS4234_MCLK_SCALE;
sound/soc/codecs/cs4234.c
510
&cs4234->rate_constraint);
sound/soc/codecs/cs4234.c
519
cs4234_dai_rule_rate, cs4234, -1);
sound/soc/codecs/cs4234.c
526
struct cs4234 *cs4234 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/cs4234.c
543
regmap_update_bits(cs4234->regmap, CS4234_SP_DATA_SEL, CS4234_DAC14_SRC_MASK,
sound/soc/codecs/cs4234.c
545
regmap_update_bits(cs4234->regmap, CS4234_SP_DATA_SEL, CS4234_LL_SRC_MASK,
sound/soc/codecs/cs4234.c
554
regmap_bulk_write(cs4234->regmap,
sound/soc/codecs/cs4234.c
688
static void cs4234_shutdown(struct cs4234 *cs4234)
sound/soc/codecs/cs4234.c
690
cancel_delayed_work_sync(&cs4234->vq_ramp_delay);
sound/soc/codecs/cs4234.c
691
reinit_completion(&cs4234->vq_ramp_complete);
sound/soc/codecs/cs4234.c
693
regmap_update_bits(cs4234->regmap, CS4234_DAC_CTRL4, CS4234_VQ_RAMP_MASK,
sound/soc/codecs/cs4234.c
696
regcache_cache_only(cs4234->regmap, true);
sound/soc/codecs/cs4234.c
698
regmap_update_bits(cs4234->regmap, CS4234_DAC_CTRL4, CS4234_VQ_RAMP_MASK, 0);
sound/soc/codecs/cs4234.c
699
gpiod_set_value_cansleep(cs4234->reset_gpio, 0);
sound/soc/codecs/cs4234.c
700
regulator_bulk_disable(cs4234->num_core_supplies, cs4234->core_supplies);
sound/soc/codecs/cs4234.c
701
clk_disable_unprepare(cs4234->mclk);
sound/soc/codecs/cs4234.c
704
static int cs4234_powerup(struct cs4234 *cs4234)
sound/soc/codecs/cs4234.c
708
ret = clk_prepare_enable(cs4234->mclk);
sound/soc/codecs/cs4234.c
710
dev_err(cs4234->dev, "Failed to enable mclk: %d\n", ret);
sound/soc/codecs/cs4234.c
714
ret = regulator_bulk_enable(cs4234->num_core_supplies, cs4234->core_supplies);
sound/soc/codecs/cs4234.c
716
dev_err(cs4234->dev, "Failed to enable core supplies: %d\n", ret);
sound/soc/codecs/cs4234.c
717
clk_disable_unprepare(cs4234->mclk);
sound/soc/codecs/cs4234.c
722
gpiod_set_value_cansleep(cs4234->reset_gpio, 1);
sound/soc/codecs/cs4234.c
728
&cs4234->vq_ramp_delay,
sound/soc/codecs/cs4234.c
736
struct cs4234 *cs4234;
sound/soc/codecs/cs4234.c
743
cs4234 = devm_kzalloc(dev, sizeof(*cs4234), GFP_KERNEL);
sound/soc/codecs/cs4234.c
744
if (!cs4234)
sound/soc/codecs/cs4234.c
746
i2c_set_clientdata(i2c_client, cs4234);
sound/soc/codecs/cs4234.c
747
cs4234->dev = dev;
sound/soc/codecs/cs4234.c
748
init_completion(&cs4234->vq_ramp_complete);
sound/soc/codecs/cs4234.c
749
INIT_DELAYED_WORK(&cs4234->vq_ramp_delay, cs4234_vq_ramp_done);
sound/soc/codecs/cs4234.c
751
cs4234->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
sound/soc/codecs/cs4234.c
752
if (IS_ERR(cs4234->reset_gpio))
sound/soc/codecs/cs4234.c
753
return PTR_ERR(cs4234->reset_gpio);
sound/soc/codecs/cs4234.c
755
BUILD_BUG_ON(ARRAY_SIZE(cs4234->core_supplies) < ARRAY_SIZE(cs4234_core_supplies));
sound/soc/codecs/cs4234.c
757
cs4234->num_core_supplies = ARRAY_SIZE(cs4234_core_supplies);
sound/soc/codecs/cs4234.c
759
cs4234->core_supplies[i].supply = cs4234_core_supplies[i];
sound/soc/codecs/cs4234.c
761
ret = devm_regulator_bulk_get(dev, cs4234->num_core_supplies, cs4234->core_supplies);
sound/soc/codecs/cs4234.c
767
cs4234->mclk = devm_clk_get(dev, "mclk");
sound/soc/codecs/cs4234.c
768
if (IS_ERR(cs4234->mclk)) {
sound/soc/codecs/cs4234.c
769
ret = PTR_ERR(cs4234->mclk);
sound/soc/codecs/cs4234.c
773
cs4234->mclk_rate = clk_get_rate(cs4234->mclk);
sound/soc/codecs/cs4234.c
775
if (cs4234->mclk_rate < 7680000 || cs4234->mclk_rate > 25600000) {
sound/soc/codecs/cs4234.c
780
cs4234->regmap = devm_regmap_init_i2c(i2c_client, &cs4234_regmap);
sound/soc/codecs/cs4234.c
781
if (IS_ERR(cs4234->regmap)) {
sound/soc/codecs/cs4234.c
782
ret = PTR_ERR(cs4234->regmap);
sound/soc/codecs/cs4234.c
787
ret = cs4234_powerup(cs4234);
sound/soc/codecs/cs4234.c
791
ret = regmap_bulk_read(cs4234->regmap, CS4234_DEVID_AB, ids, ARRAY_SIZE(ids));
sound/soc/codecs/cs4234.c
804
ret = regmap_read(cs4234->regmap, CS4234_REVID, &revid);
sound/soc/codecs/cs4234.c
813
ret = regulator_get_voltage(cs4234->core_supplies[CS4234_SUPPLY_VA].consumer);
sound/soc/codecs/cs4234.c
816
regmap_update_bits(cs4234->regmap, CS4234_ADC_CTRL1,
sound/soc/codecs/cs4234.c
821
regmap_update_bits(cs4234->regmap, CS4234_ADC_CTRL1,
sound/soc/codecs/cs4234.c
834
memcpy(&cs4234->rate_dividers, &cs4234_dividers, sizeof(cs4234_dividers));
sound/soc/codecs/cs4234.c
835
cs4234->rate_constraint.rats = cs4234->rate_dividers;
sound/soc/codecs/cs4234.c
848
cs4234_shutdown(cs4234);
sound/soc/codecs/cs4234.c
855
struct cs4234 *cs4234 = i2c_get_clientdata(i2c_client);
sound/soc/codecs/cs4234.c
860
cs4234_shutdown(cs4234);
sound/soc/codecs/cs4234.c
865
struct cs4234 *cs4234 = dev_get_drvdata(dev);
sound/soc/codecs/cs4234.c
868
ret = cs4234_powerup(cs4234);
sound/soc/codecs/cs4234.c
872
regcache_mark_dirty(cs4234->regmap);
sound/soc/codecs/cs4234.c
873
regcache_cache_only(cs4234->regmap, false);
sound/soc/codecs/cs4234.c
874
ret = regcache_sync(cs4234->regmap);
sound/soc/codecs/cs4234.c
877
cs4234_shutdown(cs4234);
sound/soc/codecs/cs4234.c
88
struct cs4234 *cs4234 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/cs4234.c
886
struct cs4234 *cs4234 = dev_get_drvdata(dev);
sound/soc/codecs/cs4234.c
888
cs4234_shutdown(cs4234);
sound/soc/codecs/cs4234.c
95
regmap_read(cs4234->regmap, CS4234_ADC_CTRL2, &val);