Lines Matching refs:max98373
248 struct max98373_priv *max98373 = dev_get_drvdata(dev); in max98373_suspend() local
250 regcache_cache_only(max98373->regmap, true); in max98373_suspend()
251 regcache_mark_dirty(max98373->regmap); in max98373_suspend()
258 struct max98373_priv *max98373 = dev_get_drvdata(dev); in max98373_resume() local
261 if (!max98373->first_hw_init) in max98373_resume()
276 regcache_cache_only(max98373->regmap, false); in max98373_resume()
277 regcache_sync(max98373->regmap); in max98373_resume()
350 struct max98373_priv *max98373 = dev_get_drvdata(dev); in max98373_io_init() local
352 if (max98373->first_hw_init) { in max98373_io_init()
353 regcache_cache_only(max98373->regmap, false); in max98373_io_init()
354 regcache_cache_bypass(max98373->regmap, true); in max98373_io_init()
360 if (!max98373->first_hw_init) { in max98373_io_init()
377 max98373_reset(max98373, dev); in max98373_io_init()
380 regmap_write(max98373->regmap, MAX98373_R2025_AUDIO_IF_MODE, 3); in max98373_io_init()
382 regmap_write(max98373->regmap, MAX98373_R2047_IV_SENSE_ADC_EN, 3); in max98373_io_init()
384 regmap_write(max98373->regmap, MAX98373_R2036_SOUNDWIRE_CTRL, 5); in max98373_io_init()
386 regmap_write(max98373->regmap, MAX98373_R2028_PCM_SR_SETUP_2, 0x88); in max98373_io_init()
388 regmap_write(max98373->regmap, in max98373_io_init()
391 regmap_write(max98373->regmap, in max98373_io_init()
395 regmap_write(max98373->regmap, in max98373_io_init()
398 regmap_write(max98373->regmap, in max98373_io_init()
402 regmap_write(max98373->regmap, in max98373_io_init()
406 regmap_write(max98373->regmap, in max98373_io_init()
410 regmap_write(max98373->regmap, in max98373_io_init()
412 (max98373->i_slot << MAX98373_PCM_TX_CH_SRC_A_I_SHIFT | in max98373_io_init()
413 max98373->v_slot) & 0xFF); in max98373_io_init()
414 if (max98373->v_slot < 8) in max98373_io_init()
415 regmap_update_bits(max98373->regmap, in max98373_io_init()
417 1 << max98373->v_slot, 0); in max98373_io_init()
419 regmap_update_bits(max98373->regmap, in max98373_io_init()
421 1 << (max98373->v_slot - 8), 0); in max98373_io_init()
423 if (max98373->i_slot < 8) in max98373_io_init()
424 regmap_update_bits(max98373->regmap, in max98373_io_init()
426 1 << max98373->i_slot, 0); in max98373_io_init()
428 regmap_update_bits(max98373->regmap, in max98373_io_init()
430 1 << (max98373->i_slot - 8), 0); in max98373_io_init()
433 regmap_write(max98373->regmap, in max98373_io_init()
435 max98373->spkfb_slot & 0xFF); in max98373_io_init()
438 if (max98373->interleave_mode) in max98373_io_init()
439 regmap_update_bits(max98373->regmap, in max98373_io_init()
445 regmap_update_bits(max98373->regmap, in max98373_io_init()
449 regmap_write(max98373->regmap, MAX98373_R20B5_BDE_EN, 1); in max98373_io_init()
450 regmap_write(max98373->regmap, MAX98373_R20E2_LIMITER_EN, 1); in max98373_io_init()
452 if (max98373->first_hw_init) { in max98373_io_init()
453 regcache_cache_bypass(max98373->regmap, false); in max98373_io_init()
454 regcache_mark_dirty(max98373->regmap); in max98373_io_init()
457 max98373->first_hw_init = true; in max98373_io_init()
458 max98373->hw_init = true; in max98373_io_init()
490 struct max98373_priv *max98373 = dev_get_drvdata(dev); in max98373_clock_config() local
503 regmap_write(max98373->regmap, MAX98373_R2036_SOUNDWIRE_CTRL, value); in max98373_clock_config()
506 regmap_write(max98373->regmap, MAX98373_R2028_PCM_SR_SETUP_2, 0x88); in max98373_clock_config()
519 struct max98373_priv *max98373 = in max98373_sdw_dai_hw_params() local
533 if (!max98373->slave) in max98373_sdw_dai_hw_params()
548 if (max98373->slot && direction == SDW_DATA_DIR_RX) { in max98373_sdw_dai_hw_params()
549 stream_config.ch_count = max98373->slot; in max98373_sdw_dai_hw_params()
550 port_config.ch_mask = max98373->rx_mask; in max98373_sdw_dai_hw_params()
561 ret = sdw_stream_add_slave(max98373->slave, &stream_config, in max98373_sdw_dai_hw_params()
591 max98373->ch_size = snd_pcm_format_width(params_format(params)); in max98373_sdw_dai_hw_params()
593 regmap_update_bits(max98373->regmap, in max98373_sdw_dai_hw_params()
641 regmap_update_bits(max98373->regmap, in max98373_sdw_dai_hw_params()
647 regmap_update_bits(max98373->regmap, in max98373_sdw_dai_hw_params()
659 struct max98373_priv *max98373 = in max98373_pcm_hw_free() local
664 if (!max98373->slave) in max98373_pcm_hw_free()
667 sdw_stream_remove_slave(max98373->slave, stream->sdw_stream); in max98373_pcm_hw_free()
710 struct max98373_priv *max98373 = in max98373_sdw_set_tdm_slot() local
718 max98373->tdm_mode = false; in max98373_sdw_set_tdm_slot()
720 max98373->tdm_mode = true; in max98373_sdw_set_tdm_slot()
722 max98373->rx_mask = rx_mask; in max98373_sdw_set_tdm_slot()
723 max98373->slot = slots; in max98373_sdw_set_tdm_slot()
759 struct max98373_priv *max98373; in max98373_init() local
764 max98373 = devm_kzalloc(dev, sizeof(*max98373), GFP_KERNEL); in max98373_init()
765 if (!max98373) in max98373_init()
768 dev_set_drvdata(dev, max98373); in max98373_init()
769 max98373->regmap = regmap; in max98373_init()
770 max98373->slave = slave; in max98373_init()
773 max98373_slot_config(dev, max98373); in max98373_init()
775 max98373->hw_init = false; in max98373_init()
776 max98373->first_hw_init = false; in max98373_init()
791 struct max98373_priv *max98373 = dev_get_drvdata(&slave->dev); in max98373_update_status() local
794 max98373->hw_init = false; in max98373_update_status()
799 if (max98373->hw_init || status != SDW_SLAVE_ATTACHED) in max98373_update_status()