Lines Matching defs:cs35l56

21 #include "cs35l56.h"
166 struct cs35l56_private *cs35l56 = dev_get_drvdata(&peripheral->dev);
169 pm_runtime_get_noresume(cs35l56->base.dev);
171 regcache_cache_only(cs35l56->base.regmap, false);
173 ret = cs35l56_init(cs35l56);
175 regcache_cache_only(cs35l56->base.regmap, true);
183 if (cs35l56->base.init_done) {
190 pm_runtime_mark_last_busy(cs35l56->base.dev);
191 pm_runtime_put_autosuspend(cs35l56->base.dev);
197 struct cs35l56_private *cs35l56 = dev_get_drvdata(&peripheral->dev);
201 dev_dbg(cs35l56->base.dev, "int control_port=%#x\n", status->control_port);
210 pm_runtime_get_noresume(cs35l56->base.dev);
222 queue_work(system_power_efficient_wq, &cs35l56->sdw_irq_work);
229 struct cs35l56_private *cs35l56 = container_of(work,
233 cs35l56_irq(-1, &cs35l56->base);
236 if (!cs35l56->sdw_irq_no_unmask)
237 sdw_write_no_pm(cs35l56->sdw_peripheral, CS35L56_SDW_GEN_INT_MASK_1,
240 pm_runtime_put_autosuspend(cs35l56->base.dev);
245 struct cs35l56_private *cs35l56 = dev_get_drvdata(&peripheral->dev);
249 ports = devm_kcalloc(cs35l56->base.dev, 2, sizeof(*ports), GFP_KERNEL);
278 struct cs35l56_private *cs35l56 = dev_get_drvdata(&peripheral->dev);
282 dev_dbg(cs35l56->base.dev, "%s: ATTACHED\n", __func__);
283 if (cs35l56->sdw_attached)
286 if (!cs35l56->base.init_done || cs35l56->soft_resetting)
289 cs35l56->sdw_attached = true;
292 dev_dbg(cs35l56->base.dev, "%s: UNATTACHED\n", __func__);
293 cs35l56->sdw_attached = false;
302 static int cs35l56_a1_kick_divider(struct cs35l56_private *cs35l56,
308 if (!cs35l56->base.init_done)
327 dev_err(cs35l56->base.dev, "Failed to read current clock scale: %d\n", curr_scale);
333 dev_err(cs35l56->base.dev, "Failed to read next clock scale: %d\n", next_scale);
338 next_scale = cs35l56->old_sdw_clock_scale;
341 dev_err(cs35l56->base.dev, "Failed to modify current clock scale: %d\n",
347 cs35l56->old_sdw_clock_scale = curr_scale;
350 dev_err(cs35l56->base.dev, "Failed to modify current clock scale: %d\n", ret);
354 dev_dbg(cs35l56->base.dev, "Next bus scale: %#x\n", next_scale);
362 struct cs35l56_private *cs35l56 = dev_get_drvdata(&peripheral->dev);
366 dev_dbg(cs35l56->base.dev, "%s: sclk=%u c=%u r=%u\n",
369 if (cs35l56->base.rev < 0xb0)
370 return cs35l56_a1_kick_divider(cs35l56, peripheral);
379 struct cs35l56_private *cs35l56 = dev_get_drvdata(&peripheral->dev);
381 dev_dbg(cs35l56->base.dev, "%s: mode:%d type:%d\n", __func__, mode, type);
396 static int __maybe_unused cs35l56_sdw_handle_unattach(struct cs35l56_private *cs35l56)
398 struct sdw_slave *peripheral = cs35l56->sdw_peripheral;
402 dev_dbg(cs35l56->base.dev, "Wait for initialization_complete\n");
405 dev_err(cs35l56->base.dev, "initialization_complete timed out\n");
422 struct cs35l56_private *cs35l56 = dev_get_drvdata(dev);
424 if (!cs35l56->base.init_done)
427 return cs35l56_runtime_suspend_common(&cs35l56->base);
432 struct cs35l56_private *cs35l56 = dev_get_drvdata(dev);
437 if (!cs35l56->base.init_done)
440 ret = cs35l56_sdw_handle_unattach(cs35l56);
444 ret = cs35l56_runtime_resume_common(&cs35l56->base, true);
449 sdw_write_no_pm(cs35l56->sdw_peripheral, CS35L56_SDW_GEN_INT_MASK_1,
457 struct cs35l56_private *cs35l56 = dev_get_drvdata(dev);
459 if (!cs35l56->base.init_done)
466 cs35l56->sdw_irq_no_unmask = true;
467 flush_work(&cs35l56->sdw_irq_work);
470 sdw_write_no_pm(cs35l56->sdw_peripheral, CS35L56_SDW_GEN_INT_MASK_1, 0);
471 sdw_read_no_pm(cs35l56->sdw_peripheral, CS35L56_SDW_GEN_INT_STAT_1);
472 sdw_write_no_pm(cs35l56->sdw_peripheral, CS35L56_SDW_GEN_INT_STAT_1, 0xFF);
473 flush_work(&cs35l56->sdw_irq_work);
480 struct cs35l56_private *cs35l56 = dev_get_drvdata(dev);
482 cs35l56->sdw_irq_no_unmask = false;
491 struct cs35l56_private *cs35l56;
494 cs35l56 = devm_kzalloc(dev, sizeof(*cs35l56), GFP_KERNEL);
495 if (!cs35l56)
498 cs35l56->base.dev = dev;
499 cs35l56->sdw_peripheral = peripheral;
500 INIT_WORK(&cs35l56->sdw_irq_work, cs35l56_sdw_irq_work);
502 dev_set_drvdata(dev, cs35l56);
504 cs35l56->base.regmap = devm_regmap_init(dev, &cs35l56_regmap_bus_sdw,
506 if (IS_ERR(cs35l56->base.regmap)) {
507 ret = PTR_ERR(cs35l56->base.regmap);
512 regcache_cache_only(cs35l56->base.regmap, true);
514 ret = cs35l56_common_probe(cs35l56);
523 struct cs35l56_private *cs35l56 = dev_get_drvdata(&peripheral->dev);
526 cs35l56->sdw_irq_no_unmask = true;
527 cancel_work_sync(&cs35l56->sdw_irq_work);
532 cs35l56_remove(cs35l56);
552 .name = "cs35l56",