Lines Matching refs:cs35l32

341 	struct cs35l32_private *cs35l32;  in cs35l32_i2c_probe()  local
349 cs35l32 = devm_kzalloc(&i2c_client->dev, sizeof(struct cs35l32_private), in cs35l32_i2c_probe()
351 if (!cs35l32) { in cs35l32_i2c_probe()
356 i2c_set_clientdata(i2c_client, cs35l32); in cs35l32_i2c_probe()
358 cs35l32->regmap = devm_regmap_init_i2c(i2c_client, &cs35l32_regmap); in cs35l32_i2c_probe()
359 if (IS_ERR(cs35l32->regmap)) { in cs35l32_i2c_probe()
360 ret = PTR_ERR(cs35l32->regmap); in cs35l32_i2c_probe()
366 cs35l32->pdata = *pdata; in cs35l32_i2c_probe()
377 &cs35l32->pdata); in cs35l32_i2c_probe()
383 for (i = 0; i < ARRAY_SIZE(cs35l32->supplies); i++) in cs35l32_i2c_probe()
384 cs35l32->supplies[i].supply = cs35l32_supply_names[i]; in cs35l32_i2c_probe()
387 ARRAY_SIZE(cs35l32->supplies), in cs35l32_i2c_probe()
388 cs35l32->supplies); in cs35l32_i2c_probe()
395 ret = regulator_bulk_enable(ARRAY_SIZE(cs35l32->supplies), in cs35l32_i2c_probe()
396 cs35l32->supplies); in cs35l32_i2c_probe()
404 cs35l32->reset_gpio = devm_gpiod_get_optional(&i2c_client->dev, in cs35l32_i2c_probe()
406 if (IS_ERR(cs35l32->reset_gpio)) in cs35l32_i2c_probe()
407 return PTR_ERR(cs35l32->reset_gpio); in cs35l32_i2c_probe()
409 gpiod_set_value_cansleep(cs35l32->reset_gpio, 1); in cs35l32_i2c_probe()
412 ret = regmap_read(cs35l32->regmap, CS35L32_DEVID_AB, &reg); in cs35l32_i2c_probe()
415 ret = regmap_read(cs35l32->regmap, CS35L32_DEVID_CD, &reg); in cs35l32_i2c_probe()
418 ret = regmap_read(cs35l32->regmap, CS35L32_DEVID_E, &reg); in cs35l32_i2c_probe()
429 ret = regmap_read(cs35l32->regmap, CS35L32_REV_ID, &reg); in cs35l32_i2c_probe()
435 ret = regmap_register_patch(cs35l32->regmap, cs35l32_monitor_patch, in cs35l32_i2c_probe()
446 if (cs35l32->pdata.boost_mng) in cs35l32_i2c_probe()
447 regmap_update_bits(cs35l32->regmap, CS35L32_AUDIO_LED_MNGR, in cs35l32_i2c_probe()
449 cs35l32->pdata.boost_mng); in cs35l32_i2c_probe()
452 if (cs35l32->pdata.sdout_share) in cs35l32_i2c_probe()
453 regmap_update_bits(cs35l32->regmap, CS35L32_ADSP_CTL, in cs35l32_i2c_probe()
455 cs35l32->pdata.sdout_share << 3); in cs35l32_i2c_probe()
458 if (cs35l32->pdata.sdout_datacfg) in cs35l32_i2c_probe()
459 regmap_update_bits(cs35l32->regmap, CS35L32_ADSP_CTL, in cs35l32_i2c_probe()
461 cs35l32->pdata.sdout_datacfg << 4); in cs35l32_i2c_probe()
464 if (cs35l32->pdata.batt_recov) in cs35l32_i2c_probe()
465 regmap_update_bits(cs35l32->regmap, CS35L32_BATT_THRESHOLD, in cs35l32_i2c_probe()
467 cs35l32->pdata.batt_recov << 1); in cs35l32_i2c_probe()
470 if (cs35l32->pdata.batt_thresh) in cs35l32_i2c_probe()
471 regmap_update_bits(cs35l32->regmap, CS35L32_BATT_THRESHOLD, in cs35l32_i2c_probe()
473 cs35l32->pdata.batt_thresh << 4); in cs35l32_i2c_probe()
476 regmap_update_bits(cs35l32->regmap, CS35L32_PWRCTL1, CS35L32_PDN_AMP, in cs35l32_i2c_probe()
480 ret = regmap_read(cs35l32->regmap, CS35L32_INT_STATUS_1, &reg); in cs35l32_i2c_probe()
491 regulator_bulk_disable(ARRAY_SIZE(cs35l32->supplies), in cs35l32_i2c_probe()
492 cs35l32->supplies); in cs35l32_i2c_probe()
498 struct cs35l32_private *cs35l32 = i2c_get_clientdata(i2c_client); in cs35l32_i2c_remove() local
503 gpiod_set_value_cansleep(cs35l32->reset_gpio, 0); in cs35l32_i2c_remove()
511 struct cs35l32_private *cs35l32 = dev_get_drvdata(dev); in cs35l32_runtime_suspend() local
513 regcache_cache_only(cs35l32->regmap, true); in cs35l32_runtime_suspend()
514 regcache_mark_dirty(cs35l32->regmap); in cs35l32_runtime_suspend()
517 gpiod_set_value_cansleep(cs35l32->reset_gpio, 0); in cs35l32_runtime_suspend()
520 regulator_bulk_disable(ARRAY_SIZE(cs35l32->supplies), in cs35l32_runtime_suspend()
521 cs35l32->supplies); in cs35l32_runtime_suspend()
528 struct cs35l32_private *cs35l32 = dev_get_drvdata(dev); in cs35l32_runtime_resume() local
532 ret = regulator_bulk_enable(ARRAY_SIZE(cs35l32->supplies), in cs35l32_runtime_resume()
533 cs35l32->supplies); in cs35l32_runtime_resume()
540 gpiod_set_value_cansleep(cs35l32->reset_gpio, 1); in cs35l32_runtime_resume()
542 regcache_cache_only(cs35l32->regmap, false); in cs35l32_runtime_resume()
543 regcache_sync(cs35l32->regmap); in cs35l32_runtime_resume()