Lines Matching refs:cs35l32

377 	struct cs35l32_private *cs35l32;  in cs35l32_i2c_probe()  local
385 cs35l32 = devm_kzalloc(&i2c_client->dev, sizeof(struct cs35l32_private), in cs35l32_i2c_probe()
387 if (!cs35l32) { in cs35l32_i2c_probe()
392 i2c_set_clientdata(i2c_client, cs35l32); in cs35l32_i2c_probe()
394 cs35l32->regmap = devm_regmap_init_i2c(i2c_client, &cs35l32_regmap); in cs35l32_i2c_probe()
395 if (IS_ERR(cs35l32->regmap)) { in cs35l32_i2c_probe()
396 ret = PTR_ERR(cs35l32->regmap); in cs35l32_i2c_probe()
402 cs35l32->pdata = *pdata; in cs35l32_i2c_probe()
413 &cs35l32->pdata); in cs35l32_i2c_probe()
419 for (i = 0; i < ARRAY_SIZE(cs35l32->supplies); i++) in cs35l32_i2c_probe()
420 cs35l32->supplies[i].supply = cs35l32_supply_names[i]; in cs35l32_i2c_probe()
423 ARRAY_SIZE(cs35l32->supplies), in cs35l32_i2c_probe()
424 cs35l32->supplies); in cs35l32_i2c_probe()
431 ret = regulator_bulk_enable(ARRAY_SIZE(cs35l32->supplies), in cs35l32_i2c_probe()
432 cs35l32->supplies); in cs35l32_i2c_probe()
440 cs35l32->reset_gpio = devm_gpiod_get_optional(&i2c_client->dev, in cs35l32_i2c_probe()
442 if (IS_ERR(cs35l32->reset_gpio)) in cs35l32_i2c_probe()
443 return PTR_ERR(cs35l32->reset_gpio); in cs35l32_i2c_probe()
445 if (cs35l32->reset_gpio) in cs35l32_i2c_probe()
446 gpiod_set_value_cansleep(cs35l32->reset_gpio, 1); in cs35l32_i2c_probe()
449 ret = regmap_read(cs35l32->regmap, CS35L32_DEVID_AB, &reg); in cs35l32_i2c_probe()
452 ret = regmap_read(cs35l32->regmap, CS35L32_DEVID_CD, &reg); in cs35l32_i2c_probe()
455 ret = regmap_read(cs35l32->regmap, CS35L32_DEVID_E, &reg); in cs35l32_i2c_probe()
466 ret = regmap_read(cs35l32->regmap, CS35L32_REV_ID, &reg); in cs35l32_i2c_probe()
472 ret = regmap_register_patch(cs35l32->regmap, cs35l32_monitor_patch, in cs35l32_i2c_probe()
483 if (cs35l32->pdata.boost_mng) in cs35l32_i2c_probe()
484 regmap_update_bits(cs35l32->regmap, CS35L32_AUDIO_LED_MNGR, in cs35l32_i2c_probe()
486 cs35l32->pdata.boost_mng); in cs35l32_i2c_probe()
489 if (cs35l32->pdata.sdout_share) in cs35l32_i2c_probe()
490 regmap_update_bits(cs35l32->regmap, CS35L32_ADSP_CTL, in cs35l32_i2c_probe()
492 cs35l32->pdata.sdout_share << 3); in cs35l32_i2c_probe()
495 if (cs35l32->pdata.sdout_datacfg) in cs35l32_i2c_probe()
496 regmap_update_bits(cs35l32->regmap, CS35L32_ADSP_CTL, in cs35l32_i2c_probe()
498 cs35l32->pdata.sdout_datacfg << 4); in cs35l32_i2c_probe()
501 if (cs35l32->pdata.batt_recov) in cs35l32_i2c_probe()
502 regmap_update_bits(cs35l32->regmap, CS35L32_BATT_THRESHOLD, in cs35l32_i2c_probe()
504 cs35l32->pdata.batt_recov << 1); in cs35l32_i2c_probe()
507 if (cs35l32->pdata.batt_thresh) in cs35l32_i2c_probe()
508 regmap_update_bits(cs35l32->regmap, CS35L32_BATT_THRESHOLD, in cs35l32_i2c_probe()
510 cs35l32->pdata.batt_thresh << 4); in cs35l32_i2c_probe()
513 regmap_update_bits(cs35l32->regmap, CS35L32_PWRCTL1, CS35L32_PDN_AMP, in cs35l32_i2c_probe()
517 ret = regmap_read(cs35l32->regmap, CS35L32_INT_STATUS_1, &reg); in cs35l32_i2c_probe()
528 regulator_bulk_disable(ARRAY_SIZE(cs35l32->supplies), in cs35l32_i2c_probe()
529 cs35l32->supplies); in cs35l32_i2c_probe()
535 struct cs35l32_private *cs35l32 = i2c_get_clientdata(i2c_client); in cs35l32_i2c_remove() local
540 if (cs35l32->reset_gpio) in cs35l32_i2c_remove()
541 gpiod_set_value_cansleep(cs35l32->reset_gpio, 0); in cs35l32_i2c_remove()
549 struct cs35l32_private *cs35l32 = dev_get_drvdata(dev); in cs35l32_runtime_suspend() local
551 regcache_cache_only(cs35l32->regmap, true); in cs35l32_runtime_suspend()
552 regcache_mark_dirty(cs35l32->regmap); in cs35l32_runtime_suspend()
555 if (cs35l32->reset_gpio) in cs35l32_runtime_suspend()
556 gpiod_set_value_cansleep(cs35l32->reset_gpio, 0); in cs35l32_runtime_suspend()
559 regulator_bulk_disable(ARRAY_SIZE(cs35l32->supplies), in cs35l32_runtime_suspend()
560 cs35l32->supplies); in cs35l32_runtime_suspend()
567 struct cs35l32_private *cs35l32 = dev_get_drvdata(dev); in cs35l32_runtime_resume() local
571 ret = regulator_bulk_enable(ARRAY_SIZE(cs35l32->supplies), in cs35l32_runtime_resume()
572 cs35l32->supplies); in cs35l32_runtime_resume()
579 if (cs35l32->reset_gpio) in cs35l32_runtime_resume()
580 gpiod_set_value_cansleep(cs35l32->reset_gpio, 1); in cs35l32_runtime_resume()
582 regcache_cache_only(cs35l32->regmap, false); in cs35l32_runtime_resume()
583 regcache_sync(cs35l32->regmap); in cs35l32_runtime_resume()