Lines Matching defs:cs35l32

3  * cs35l32.c -- CS35L32 ALSA SoC audio driver
29 #include <dt-bindings/sound/cs35l32.h>
31 #include "cs35l32.h"
187 .name = "cs35l32-monitor",
349 struct cs35l32_private *cs35l32;
355 cs35l32 = devm_kzalloc(&i2c_client->dev, sizeof(*cs35l32), GFP_KERNEL);
356 if (!cs35l32)
359 i2c_set_clientdata(i2c_client, cs35l32);
361 cs35l32->regmap = devm_regmap_init_i2c(i2c_client, &cs35l32_regmap);
362 if (IS_ERR(cs35l32->regmap)) {
363 ret = PTR_ERR(cs35l32->regmap);
369 cs35l32->pdata = *pdata;
378 &cs35l32->pdata);
384 for (i = 0; i < ARRAY_SIZE(cs35l32->supplies); i++)
385 cs35l32->supplies[i].supply = cs35l32_supply_names[i];
388 ARRAY_SIZE(cs35l32->supplies),
389 cs35l32->supplies);
396 ret = regulator_bulk_enable(ARRAY_SIZE(cs35l32->supplies),
397 cs35l32->supplies);
405 cs35l32->reset_gpio = devm_gpiod_get_optional(&i2c_client->dev,
407 if (IS_ERR(cs35l32->reset_gpio)) {
408 ret = PTR_ERR(cs35l32->reset_gpio);
412 gpiod_set_value_cansleep(cs35l32->reset_gpio, 1);
415 devid = cirrus_read_device_id(cs35l32->regmap, CS35L32_DEVID_AB);
430 ret = regmap_read(cs35l32->regmap, CS35L32_REV_ID, &reg);
436 ret = regmap_register_patch(cs35l32->regmap, cs35l32_monitor_patch,
447 if (cs35l32->pdata.boost_mng)
448 regmap_update_bits(cs35l32->regmap, CS35L32_AUDIO_LED_MNGR,
450 cs35l32->pdata.boost_mng);
453 if (cs35l32->pdata.sdout_share)
454 regmap_update_bits(cs35l32->regmap, CS35L32_ADSP_CTL,
456 cs35l32->pdata.sdout_share << 3);
459 if (cs35l32->pdata.sdout_datacfg)
460 regmap_update_bits(cs35l32->regmap, CS35L32_ADSP_CTL,
462 cs35l32->pdata.sdout_datacfg << 4);
465 if (cs35l32->pdata.batt_recov)
466 regmap_update_bits(cs35l32->regmap, CS35L32_BATT_THRESHOLD,
468 cs35l32->pdata.batt_recov << 1);
471 if (cs35l32->pdata.batt_thresh)
472 regmap_update_bits(cs35l32->regmap, CS35L32_BATT_THRESHOLD,
474 cs35l32->pdata.batt_thresh << 4);
477 regmap_update_bits(cs35l32->regmap, CS35L32_PWRCTL1, CS35L32_PDN_AMP,
481 regmap_read(cs35l32->regmap, CS35L32_INT_STATUS_1, &reg);
492 gpiod_set_value_cansleep(cs35l32->reset_gpio, 0);
494 regulator_bulk_disable(ARRAY_SIZE(cs35l32->supplies),
495 cs35l32->supplies);
501 struct cs35l32_private *cs35l32 = i2c_get_clientdata(i2c_client);
504 gpiod_set_value_cansleep(cs35l32->reset_gpio, 0);
510 struct cs35l32_private *cs35l32 = dev_get_drvdata(dev);
512 regcache_cache_only(cs35l32->regmap, true);
513 regcache_mark_dirty(cs35l32->regmap);
516 gpiod_set_value_cansleep(cs35l32->reset_gpio, 0);
519 regulator_bulk_disable(ARRAY_SIZE(cs35l32->supplies),
520 cs35l32->supplies);
527 struct cs35l32_private *cs35l32 = dev_get_drvdata(dev);
531 ret = regulator_bulk_enable(ARRAY_SIZE(cs35l32->supplies),
532 cs35l32->supplies);
539 gpiod_set_value_cansleep(cs35l32->reset_gpio, 1);
541 regcache_cache_only(cs35l32->regmap, false);
542 regcache_sync(cs35l32->regmap);
554 { .compatible = "cirrus,cs35l32", },
561 {"cs35l32"},
569 .name = "cs35l32",