Lines Matching +full:lrclk +full:- +full:strength
2 * max98925.c -- ALSA SoC Stereo MAX98925 driver
3 * Copyright 2013-15 Maxim Integrated Products
70 { 0x2B, 0x02 }, /* DOUT Drive Strength */
107 regmap_update_bits(max98925->regmap, in max98925_dac_event()
115 regmap_update_bits(max98925->regmap, in max98925_dac_event()
189 static DECLARE_TLV_DB_SCALE(max98925_spk_tlv, -600, 100, 0);
193 M98925_SPK_GAIN_SHIFT, (1<<M98925_SPK_GAIN_WIDTH)-1, 0,
202 (1<<M98925_ALC_TH_WIDTH)-1, 0),
262 int ret = -EINVAL; in max98925_rate_value()
280 regmap_update_bits(max98925->regmap, in max98925_set_sense_data()
283 regmap_update_bits(max98925->regmap, in max98925_set_sense_data()
286 max98925->v_slot << M98925_DAI_VMON_SLOT_SHIFT); in max98925_set_sense_data()
288 regmap_update_bits(max98925->regmap, in max98925_set_sense_data()
291 regmap_update_bits(max98925->regmap, in max98925_set_sense_data()
294 max98925->i_slot << M98925_DAI_IMON_SLOT_SHIFT); in max98925_set_sense_data()
300 struct snd_soc_component *component = codec_dai->component; in max98925_dai_set_fmt()
304 dev_dbg(component->dev, "%s: fmt 0x%08X\n", __func__, fmt); in max98925_dai_set_fmt()
308 regmap_update_bits(max98925->regmap, in max98925_dai_set_fmt()
318 regmap_update_bits(max98925->regmap, in max98925_dai_set_fmt()
325 dev_err(component->dev, "DAI clock mode unsupported"); in max98925_dai_set_fmt()
326 return -EINVAL; in max98925_dai_set_fmt()
342 dev_err(component->dev, "DAI invert mode unsupported"); in max98925_dai_set_fmt()
343 return -EINVAL; in max98925_dai_set_fmt()
346 regmap_update_bits(max98925->regmap, MAX98925_FORMAT, in max98925_dai_set_fmt()
355 struct snd_soc_component *component = max98925->component; in max98925_set_clock()
357 /* BCLK/LRCLK ratio calculation */ in max98925_set_clock()
358 int blr_clk_ratio = params_channels(params) * max98925->ch_size; in max98925_set_clock()
362 regmap_update_bits(max98925->regmap, in max98925_set_clock()
367 regmap_update_bits(max98925->regmap, in max98925_set_clock()
372 regmap_update_bits(max98925->regmap, in max98925_set_clock()
377 return -EINVAL; in max98925_set_clock()
380 switch (max98925->sysclk) { in max98925_set_clock()
398 dev_info(max98925->component->dev, "unsupported sysclk %d\n", in max98925_set_clock()
399 max98925->sysclk); in max98925_set_clock()
400 return -EINVAL; in max98925_set_clock()
404 return -EINVAL; in max98925_set_clock()
406 /* set DAI_SR to correct LRCLK frequency */ in max98925_set_clock()
407 regmap_update_bits(max98925->regmap, in max98925_set_clock()
411 regmap_write(max98925->regmap, in max98925_set_clock()
413 regmap_write(max98925->regmap, in max98925_set_clock()
416 regmap_write(max98925->regmap, in max98925_set_clock()
418 regmap_write(max98925->regmap, in max98925_set_clock()
421 regmap_update_bits(max98925->regmap, MAX98925_DAI_CLK_MODE1, in max98925_set_clock()
430 struct snd_soc_component *component = dai->component; in max98925_dai_hw_params()
435 regmap_update_bits(max98925->regmap, in max98925_dai_hw_params()
438 max98925->ch_size = 16; in max98925_dai_hw_params()
441 regmap_update_bits(max98925->regmap, in max98925_dai_hw_params()
444 max98925->ch_size = 24; in max98925_dai_hw_params()
447 regmap_update_bits(max98925->regmap, in max98925_dai_hw_params()
450 max98925->ch_size = 32; in max98925_dai_hw_params()
455 return -EINVAL; in max98925_dai_hw_params()
457 dev_dbg(component->dev, "%s: format supported %d", in max98925_dai_hw_params()
465 struct snd_soc_component *component = dai->component; in max98925_dai_set_sysclk()
471 regmap_update_bits(max98925->regmap, in max98925_dai_set_sysclk()
477 regmap_update_bits(max98925->regmap, in max98925_dai_set_sysclk()
483 return -EINVAL; in max98925_dai_set_sysclk()
485 max98925->sysclk = freq; in max98925_dai_set_sysclk()
500 .name = "max98925-aif1",
523 max98925->component = component; in max98925_probe()
524 regmap_write(max98925->regmap, MAX98925_GLOBAL_ENABLE, 0x00); in max98925_probe()
526 regmap_write(max98925->regmap, in max98925_probe()
528 regmap_write(max98925->regmap, MAX98925_TDM_SLOT_SELECT, 0xC8); in max98925_probe()
529 regmap_write(max98925->regmap, MAX98925_DOUT_HIZ_CFG1, 0xFF); in max98925_probe()
530 regmap_write(max98925->regmap, MAX98925_DOUT_HIZ_CFG2, 0xFF); in max98925_probe()
531 regmap_write(max98925->regmap, MAX98925_DOUT_HIZ_CFG3, 0xFF); in max98925_probe()
532 regmap_write(max98925->regmap, MAX98925_DOUT_HIZ_CFG4, 0xF0); in max98925_probe()
533 regmap_write(max98925->regmap, MAX98925_FILTERS, 0xD8); in max98925_probe()
534 regmap_write(max98925->regmap, MAX98925_ALC_CONFIGURATION, 0xF8); in max98925_probe()
535 regmap_write(max98925->regmap, MAX98925_CONFIGURATION, 0xF0); in max98925_probe()
537 regmap_write(max98925->regmap, MAX98925_BOOST_LIMITER, 0xF8); in max98925_probe()
573 max98925 = devm_kzalloc(&i2c->dev, in max98925_i2c_probe()
576 return -ENOMEM; in max98925_i2c_probe()
579 max98925->regmap = devm_regmap_init_i2c(i2c, &max98925_regmap); in max98925_i2c_probe()
580 if (IS_ERR(max98925->regmap)) { in max98925_i2c_probe()
581 ret = PTR_ERR(max98925->regmap); in max98925_i2c_probe()
582 dev_err(&i2c->dev, in max98925_i2c_probe()
587 if (!of_property_read_u32(i2c->dev.of_node, "vmon-slot-no", &value)) { in max98925_i2c_probe()
589 dev_err(&i2c->dev, "vmon slot number is wrong:\n"); in max98925_i2c_probe()
590 return -EINVAL; in max98925_i2c_probe()
592 max98925->v_slot = value; in max98925_i2c_probe()
594 if (!of_property_read_u32(i2c->dev.of_node, "imon-slot-no", &value)) { in max98925_i2c_probe()
596 dev_err(&i2c->dev, "imon slot number is wrong:\n"); in max98925_i2c_probe()
597 return -EINVAL; in max98925_i2c_probe()
599 max98925->i_slot = value; in max98925_i2c_probe()
602 ret = regmap_read(max98925->regmap, MAX98925_REV_VERSION, ®); in max98925_i2c_probe()
604 dev_err(&i2c->dev, "Read revision failed\n"); in max98925_i2c_probe()
609 ret = -ENODEV; in max98925_i2c_probe()
610 dev_err(&i2c->dev, "Invalid revision (%d 0x%02X)\n", in max98925_i2c_probe()
615 dev_info(&i2c->dev, "device version 0x%02X\n", reg); in max98925_i2c_probe()
617 ret = devm_snd_soc_register_component(&i2c->dev, in max98925_i2c_probe()
621 dev_err(&i2c->dev, in max98925_i2c_probe()