Lines Matching refs:sgtl5000
159 struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); in mic_bias_event() local
166 sgtl5000->micbias_resistor << SGTL5000_BIAS_R_SHIFT); in mic_bias_event()
464 struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); in sgtl5000_set_dai_fmt() local
467 sgtl5000->master = 0; in sgtl5000_set_dai_fmt()
479 sgtl5000->master = 1; in sgtl5000_set_dai_fmt()
509 sgtl5000->fmt = fmt & SND_SOC_DAIFMT_FORMAT_MASK; in sgtl5000_set_dai_fmt()
532 struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); in sgtl5000_set_dai_sysclk() local
536 sgtl5000->sysclk = freq; in sgtl5000_set_dai_sysclk()
560 struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); in sgtl5000_set_clock() local
623 switch (sgtl5000->sysclk / frame_rate) { in sgtl5000_set_clock()
638 if (sgtl5000->master) { in sgtl5000_set_clock()
646 sgtl5000->sysclk / frame_rate); in sgtl5000_set_clock()
658 if (sgtl5000->sysclk > 17000000) { in sgtl5000_set_clock()
660 in = sgtl5000->sysclk / 2; in sgtl5000_set_clock()
663 in = sgtl5000->sysclk; in sgtl5000_set_clock()
718 struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); in sgtl5000_pcm_hw_params() local
725 if (!sgtl5000->sysclk) { in sgtl5000_pcm_hw_params()
747 if (sgtl5000->fmt == SND_SOC_DAIFMT_RIGHT_J) in sgtl5000_pcm_hw_params()
764 if (sgtl5000->fmt == SND_SOC_DAIFMT_RIGHT_J) in sgtl5000_pcm_hw_params()
859 struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); in ldo_regulator_register() local
896 sgtl5000->ldo = ldo; in ldo_regulator_register()
903 struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); in ldo_regulator_remove() local
904 struct ldo_regulator *ldo = sgtl5000->ldo; in ldo_regulator_remove()
944 struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); in sgtl5000_set_bias_level() local
953 ARRAY_SIZE(sgtl5000->supplies), in sgtl5000_set_bias_level()
954 sgtl5000->supplies); in sgtl5000_set_bias_level()
959 regcache_cache_only(sgtl5000->regmap, false); in sgtl5000_set_bias_level()
961 ret = regcache_sync(sgtl5000->regmap); in sgtl5000_set_bias_level()
966 regcache_cache_only(sgtl5000->regmap, true); in sgtl5000_set_bias_level()
967 regulator_bulk_disable(ARRAY_SIZE(sgtl5000->supplies), in sgtl5000_set_bias_level()
968 sgtl5000->supplies); in sgtl5000_set_bias_level()
976 regcache_cache_only(sgtl5000->regmap, true); in sgtl5000_set_bias_level()
977 regulator_bulk_disable(ARRAY_SIZE(sgtl5000->supplies), in sgtl5000_set_bias_level()
978 sgtl5000->supplies); in sgtl5000_set_bias_level()
1130 struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); in sgtl5000_set_power_regs() local
1132 vdda = regulator_get_voltage(sgtl5000->supplies[VDDA].consumer); in sgtl5000_set_power_regs()
1133 vddio = regulator_get_voltage(sgtl5000->supplies[VDDIO].consumer); in sgtl5000_set_power_regs()
1134 vddd = regulator_get_voltage(sgtl5000->supplies[VDDD].consumer); in sgtl5000_set_power_regs()
1261 struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); in sgtl5000_replace_vddd_with_ldo() local
1272 sgtl5000->supplies[VDDD].supply = LDO_CONSUMER_NAME; in sgtl5000_replace_vddd_with_ldo()
1283 struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); in sgtl5000_enable_regulators() local
1286 for (i = 0; i < ARRAY_SIZE(sgtl5000->supplies); i++) in sgtl5000_enable_regulators()
1287 sgtl5000->supplies[i].supply = supply_names[i]; in sgtl5000_enable_regulators()
1290 if (sgtl5000->revision < 0x11) { in sgtl5000_enable_regulators()
1308 ret = regulator_bulk_get(codec->dev, ARRAY_SIZE(sgtl5000->supplies), in sgtl5000_enable_regulators()
1309 sgtl5000->supplies); in sgtl5000_enable_regulators()
1313 ret = regulator_bulk_enable(ARRAY_SIZE(sgtl5000->supplies), in sgtl5000_enable_regulators()
1314 sgtl5000->supplies); in sgtl5000_enable_regulators()
1324 regulator_bulk_free(ARRAY_SIZE(sgtl5000->supplies), in sgtl5000_enable_regulators()
1325 sgtl5000->supplies); in sgtl5000_enable_regulators()
1336 struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); in sgtl5000_probe() local
1377 sgtl5000->micbias_resistor << SGTL5000_BIAS_R_SHIFT); in sgtl5000_probe()
1381 sgtl5000->micbias_voltage << SGTL5000_BIAS_VOLT_SHIFT); in sgtl5000_probe()
1392 regulator_bulk_disable(ARRAY_SIZE(sgtl5000->supplies), in sgtl5000_probe()
1393 sgtl5000->supplies); in sgtl5000_probe()
1394 regulator_bulk_free(ARRAY_SIZE(sgtl5000->supplies), in sgtl5000_probe()
1395 sgtl5000->supplies); in sgtl5000_probe()
1403 struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); in sgtl5000_remove() local
1405 regulator_bulk_disable(ARRAY_SIZE(sgtl5000->supplies), in sgtl5000_remove()
1406 sgtl5000->supplies); in sgtl5000_remove()
1407 regulator_bulk_free(ARRAY_SIZE(sgtl5000->supplies), in sgtl5000_remove()
1408 sgtl5000->supplies); in sgtl5000_remove()
1451 static int sgtl5000_fill_defaults(struct sgtl5000_priv *sgtl5000) in sgtl5000_fill_defaults() argument
1458 ret = regmap_write(sgtl5000->regmap, index, val); in sgtl5000_fill_defaults()
1469 struct sgtl5000_priv *sgtl5000; in sgtl5000_i2c_probe() local
1474 sgtl5000 = devm_kzalloc(&client->dev, sizeof(*sgtl5000), GFP_KERNEL); in sgtl5000_i2c_probe()
1475 if (!sgtl5000) in sgtl5000_i2c_probe()
1478 sgtl5000->regmap = devm_regmap_init_i2c(client, &sgtl5000_regmap); in sgtl5000_i2c_probe()
1479 if (IS_ERR(sgtl5000->regmap)) { in sgtl5000_i2c_probe()
1480 ret = PTR_ERR(sgtl5000->regmap); in sgtl5000_i2c_probe()
1485 sgtl5000->mclk = devm_clk_get(&client->dev, NULL); in sgtl5000_i2c_probe()
1486 if (IS_ERR(sgtl5000->mclk)) { in sgtl5000_i2c_probe()
1487 ret = PTR_ERR(sgtl5000->mclk); in sgtl5000_i2c_probe()
1495 ret = clk_prepare_enable(sgtl5000->mclk); in sgtl5000_i2c_probe()
1503 ret = regmap_read(sgtl5000->regmap, SGTL5000_CHIP_ID, ®); in sgtl5000_i2c_probe()
1517 sgtl5000->revision = rev; in sgtl5000_i2c_probe()
1524 sgtl5000->micbias_resistor = 0; in sgtl5000_i2c_probe()
1527 sgtl5000->micbias_resistor = 1; in sgtl5000_i2c_probe()
1530 sgtl5000->micbias_resistor = 2; in sgtl5000_i2c_probe()
1533 sgtl5000->micbias_resistor = 3; in sgtl5000_i2c_probe()
1536 sgtl5000->micbias_resistor = 2; in sgtl5000_i2c_probe()
1542 sgtl5000->micbias_resistor = 2; in sgtl5000_i2c_probe()
1549 sgtl5000->micbias_voltage = (value / 250) - 5; in sgtl5000_i2c_probe()
1551 sgtl5000->micbias_voltage = 0; in sgtl5000_i2c_probe()
1556 sgtl5000->micbias_voltage = 0; in sgtl5000_i2c_probe()
1560 i2c_set_clientdata(client, sgtl5000); in sgtl5000_i2c_probe()
1563 ret = sgtl5000_fill_defaults(sgtl5000); in sgtl5000_i2c_probe()
1575 clk_disable_unprepare(sgtl5000->mclk); in sgtl5000_i2c_probe()
1581 struct sgtl5000_priv *sgtl5000 = i2c_get_clientdata(client); in sgtl5000_i2c_remove() local
1584 clk_disable_unprepare(sgtl5000->mclk); in sgtl5000_i2c_remove()