Lines Matching refs:cs35l32

350 	struct cs35l32_private *cs35l32;  in cs35l32_i2c_probe()  local
356 cs35l32 = devm_kzalloc(&i2c_client->dev, sizeof(*cs35l32), GFP_KERNEL); in cs35l32_i2c_probe()
357 if (!cs35l32) in cs35l32_i2c_probe()
360 i2c_set_clientdata(i2c_client, cs35l32); in cs35l32_i2c_probe()
362 cs35l32->regmap = devm_regmap_init_i2c(i2c_client, &cs35l32_regmap); in cs35l32_i2c_probe()
363 if (IS_ERR(cs35l32->regmap)) { in cs35l32_i2c_probe()
364 ret = PTR_ERR(cs35l32->regmap); in cs35l32_i2c_probe()
370 cs35l32->pdata = *pdata; in cs35l32_i2c_probe()
379 &cs35l32->pdata); in cs35l32_i2c_probe()
385 for (i = 0; i < ARRAY_SIZE(cs35l32->supplies); i++) in cs35l32_i2c_probe()
386 cs35l32->supplies[i].supply = cs35l32_supply_names[i]; in cs35l32_i2c_probe()
389 ARRAY_SIZE(cs35l32->supplies), in cs35l32_i2c_probe()
390 cs35l32->supplies); in cs35l32_i2c_probe()
397 ret = regulator_bulk_enable(ARRAY_SIZE(cs35l32->supplies), in cs35l32_i2c_probe()
398 cs35l32->supplies); in cs35l32_i2c_probe()
406 cs35l32->reset_gpio = devm_gpiod_get_optional(&i2c_client->dev, in cs35l32_i2c_probe()
408 if (IS_ERR(cs35l32->reset_gpio)) { in cs35l32_i2c_probe()
409 ret = PTR_ERR(cs35l32->reset_gpio); in cs35l32_i2c_probe()
413 gpiod_set_value_cansleep(cs35l32->reset_gpio, 1); in cs35l32_i2c_probe()
416 devid = cirrus_read_device_id(cs35l32->regmap, CS35L32_DEVID_AB); in cs35l32_i2c_probe()
431 ret = regmap_read(cs35l32->regmap, CS35L32_REV_ID, &reg); in cs35l32_i2c_probe()
437 ret = regmap_register_patch(cs35l32->regmap, cs35l32_monitor_patch, in cs35l32_i2c_probe()
448 if (cs35l32->pdata.boost_mng) in cs35l32_i2c_probe()
449 regmap_update_bits(cs35l32->regmap, CS35L32_AUDIO_LED_MNGR, in cs35l32_i2c_probe()
451 cs35l32->pdata.boost_mng); in cs35l32_i2c_probe()
454 if (cs35l32->pdata.sdout_share) in cs35l32_i2c_probe()
455 regmap_update_bits(cs35l32->regmap, CS35L32_ADSP_CTL, in cs35l32_i2c_probe()
457 cs35l32->pdata.sdout_share << 3); in cs35l32_i2c_probe()
460 if (cs35l32->pdata.sdout_datacfg) in cs35l32_i2c_probe()
461 regmap_update_bits(cs35l32->regmap, CS35L32_ADSP_CTL, in cs35l32_i2c_probe()
463 cs35l32->pdata.sdout_datacfg << 4); in cs35l32_i2c_probe()
466 if (cs35l32->pdata.batt_recov) in cs35l32_i2c_probe()
467 regmap_update_bits(cs35l32->regmap, CS35L32_BATT_THRESHOLD, in cs35l32_i2c_probe()
469 cs35l32->pdata.batt_recov << 1); in cs35l32_i2c_probe()
472 if (cs35l32->pdata.batt_thresh) in cs35l32_i2c_probe()
473 regmap_update_bits(cs35l32->regmap, CS35L32_BATT_THRESHOLD, in cs35l32_i2c_probe()
475 cs35l32->pdata.batt_thresh << 4); in cs35l32_i2c_probe()
478 regmap_update_bits(cs35l32->regmap, CS35L32_PWRCTL1, CS35L32_PDN_AMP, in cs35l32_i2c_probe()
482 regmap_read(cs35l32->regmap, CS35L32_INT_STATUS_1, &reg); in cs35l32_i2c_probe()
493 gpiod_set_value_cansleep(cs35l32->reset_gpio, 0); in cs35l32_i2c_probe()
495 regulator_bulk_disable(ARRAY_SIZE(cs35l32->supplies), in cs35l32_i2c_probe()
496 cs35l32->supplies); in cs35l32_i2c_probe()
502 struct cs35l32_private *cs35l32 = i2c_get_clientdata(i2c_client); in cs35l32_i2c_remove() local
505 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()