Lines Matching refs:cs42l56
732 struct cs42l56_private *cs42l56 = snd_soc_codec_get_drvdata(codec); in cs42l56_set_sysclk() local
738 cs42l56->mclk_div2 = 0; in cs42l56_set_sysclk()
739 cs42l56->mclk_prediv = 0; in cs42l56_set_sysclk()
744 cs42l56->mclk_div2 = CS42L56_MCLK_DIV2; in cs42l56_set_sysclk()
745 cs42l56->mclk_prediv = 0; in cs42l56_set_sysclk()
750 cs42l56->mclk_div2 = CS42L56_MCLK_DIV2; in cs42l56_set_sysclk()
751 cs42l56->mclk_prediv = CS42L56_MCLK_PREDIV; in cs42l56_set_sysclk()
756 cs42l56->mclk = freq; in cs42l56_set_sysclk()
760 cs42l56->mclk_prediv); in cs42l56_set_sysclk()
763 cs42l56->mclk_div2); in cs42l56_set_sysclk()
771 struct cs42l56_private *cs42l56 = snd_soc_codec_get_drvdata(codec); in cs42l56_set_dai_fmt() local
775 cs42l56->iface = CS42L56_MASTER_MODE; in cs42l56_set_dai_fmt()
778 cs42l56->iface = CS42L56_SLAVE_MODE; in cs42l56_set_dai_fmt()
787 cs42l56->iface_fmt = CS42L56_DIG_FMT_I2S; in cs42l56_set_dai_fmt()
790 cs42l56->iface_fmt = CS42L56_DIG_FMT_LEFT_J; in cs42l56_set_dai_fmt()
799 cs42l56->iface_inv = 0; in cs42l56_set_dai_fmt()
802 cs42l56->iface_inv = CS42L56_SCLK_INV; in cs42l56_set_dai_fmt()
809 CS42L56_MS_MODE_MASK, cs42l56->iface); in cs42l56_set_dai_fmt()
811 CS42L56_DIG_FMT_MASK, cs42l56->iface_fmt); in cs42l56_set_dai_fmt()
813 CS42L56_SCLK_INV_MASK, cs42l56->iface_inv); in cs42l56_set_dai_fmt()
877 struct cs42l56_private *cs42l56 = snd_soc_codec_get_drvdata(codec); in cs42l56_pcm_hw_params() local
880 ratio = cs42l56_get_mclk_ratio(cs42l56->mclk, params_rate(params)); in cs42l56_pcm_hw_params()
895 struct cs42l56_private *cs42l56 = snd_soc_codec_get_drvdata(codec); in cs42l56_set_bias_level() local
909 regcache_cache_only(cs42l56->regmap, false); in cs42l56_set_bias_level()
910 regcache_sync(cs42l56->regmap); in cs42l56_set_bias_level()
911 ret = regulator_bulk_enable(ARRAY_SIZE(cs42l56->supplies), in cs42l56_set_bias_level()
912 cs42l56->supplies); in cs42l56_set_bias_level()
914 dev_err(cs42l56->dev, in cs42l56_set_bias_level()
928 regcache_cache_only(cs42l56->regmap, true); in cs42l56_set_bias_level()
929 regulator_bulk_disable(ARRAY_SIZE(cs42l56->supplies), in cs42l56_set_bias_level()
930 cs42l56->supplies); in cs42l56_set_bias_level()
977 struct cs42l56_private *cs42l56 = in cs42l56_beep_work() local
979 struct snd_soc_codec *codec = cs42l56->codec; in cs42l56_beep_work()
985 if (cs42l56->beep_rate) { in cs42l56_beep_work()
987 if (abs(cs42l56->beep_rate - beep_freq[i]) < in cs42l56_beep_work()
988 abs(cs42l56->beep_rate - beep_freq[best])) in cs42l56_beep_work()
993 beep_freq[best], cs42l56->beep_rate); in cs42l56_beep_work()
1016 struct cs42l56_private *cs42l56 = snd_soc_codec_get_drvdata(codec); in cs42l56_beep_event() local
1031 cs42l56->beep_rate = hz; in cs42l56_beep_event()
1032 schedule_work(&cs42l56->beep_work); in cs42l56_beep_event()
1040 struct cs42l56_private *cs42l56 = dev_get_drvdata(dev); in cs42l56_beep_set() local
1048 input_event(cs42l56->beep, EV_SND, SND_TONE, time); in cs42l56_beep_set()
1057 struct cs42l56_private *cs42l56 = snd_soc_codec_get_drvdata(codec); in cs42l56_init_beep() local
1060 cs42l56->beep = devm_input_allocate_device(codec->dev); in cs42l56_init_beep()
1061 if (!cs42l56->beep) { in cs42l56_init_beep()
1066 INIT_WORK(&cs42l56->beep_work, cs42l56_beep_work); in cs42l56_init_beep()
1067 cs42l56->beep_rate = 0; in cs42l56_init_beep()
1069 cs42l56->beep->name = "CS42L56 Beep Generator"; in cs42l56_init_beep()
1070 cs42l56->beep->phys = dev_name(codec->dev); in cs42l56_init_beep()
1071 cs42l56->beep->id.bustype = BUS_I2C; in cs42l56_init_beep()
1073 cs42l56->beep->evbit[0] = BIT_MASK(EV_SND); in cs42l56_init_beep()
1074 cs42l56->beep->sndbit[0] = BIT_MASK(SND_BELL) | BIT_MASK(SND_TONE); in cs42l56_init_beep()
1075 cs42l56->beep->event = cs42l56_beep_event; in cs42l56_init_beep()
1076 cs42l56->beep->dev.parent = codec->dev; in cs42l56_init_beep()
1077 input_set_drvdata(cs42l56->beep, codec); in cs42l56_init_beep()
1079 ret = input_register_device(cs42l56->beep); in cs42l56_init_beep()
1081 cs42l56->beep = NULL; in cs42l56_init_beep()
1094 struct cs42l56_private *cs42l56 = snd_soc_codec_get_drvdata(codec); in cs42l56_free_beep() local
1097 cancel_work_sync(&cs42l56->beep_work); in cs42l56_free_beep()
1098 cs42l56->beep = NULL; in cs42l56_free_beep()
1186 struct cs42l56_private *cs42l56; in cs42l56_i2c_probe() local
1194 cs42l56 = devm_kzalloc(&i2c_client->dev, in cs42l56_i2c_probe()
1197 if (cs42l56 == NULL) in cs42l56_i2c_probe()
1199 cs42l56->dev = &i2c_client->dev; in cs42l56_i2c_probe()
1201 cs42l56->regmap = devm_regmap_init_i2c(i2c_client, &cs42l56_regmap); in cs42l56_i2c_probe()
1202 if (IS_ERR(cs42l56->regmap)) { in cs42l56_i2c_probe()
1203 ret = PTR_ERR(cs42l56->regmap); in cs42l56_i2c_probe()
1209 cs42l56->pdata = *pdata; in cs42l56_i2c_probe()
1221 &cs42l56->pdata); in cs42l56_i2c_probe()
1225 cs42l56->pdata = *pdata; in cs42l56_i2c_probe()
1228 if (cs42l56->pdata.gpio_nreset) { in cs42l56_i2c_probe()
1229 ret = gpio_request_one(cs42l56->pdata.gpio_nreset, in cs42l56_i2c_probe()
1234 cs42l56->pdata.gpio_nreset, ret); in cs42l56_i2c_probe()
1237 gpio_set_value_cansleep(cs42l56->pdata.gpio_nreset, 0); in cs42l56_i2c_probe()
1238 gpio_set_value_cansleep(cs42l56->pdata.gpio_nreset, 1); in cs42l56_i2c_probe()
1242 i2c_set_clientdata(i2c_client, cs42l56); in cs42l56_i2c_probe()
1244 for (i = 0; i < ARRAY_SIZE(cs42l56->supplies); i++) in cs42l56_i2c_probe()
1245 cs42l56->supplies[i].supply = cs42l56_supply_names[i]; in cs42l56_i2c_probe()
1248 ARRAY_SIZE(cs42l56->supplies), in cs42l56_i2c_probe()
1249 cs42l56->supplies); in cs42l56_i2c_probe()
1256 ret = regulator_bulk_enable(ARRAY_SIZE(cs42l56->supplies), in cs42l56_i2c_probe()
1257 cs42l56->supplies); in cs42l56_i2c_probe()
1264 regcache_cache_bypass(cs42l56->regmap, true); in cs42l56_i2c_probe()
1266 ret = regmap_read(cs42l56->regmap, CS42L56_CHIP_ID_1, ®); in cs42l56_i2c_probe()
1281 regcache_cache_bypass(cs42l56->regmap, false); in cs42l56_i2c_probe()
1283 if (cs42l56->pdata.ain1a_ref_cfg) in cs42l56_i2c_probe()
1284 regmap_update_bits(cs42l56->regmap, CS42L56_AIN_REFCFG_ADC_MUX, in cs42l56_i2c_probe()
1287 if (cs42l56->pdata.ain1b_ref_cfg) in cs42l56_i2c_probe()
1288 regmap_update_bits(cs42l56->regmap, CS42L56_AIN_REFCFG_ADC_MUX, in cs42l56_i2c_probe()
1291 if (cs42l56->pdata.ain2a_ref_cfg) in cs42l56_i2c_probe()
1292 regmap_update_bits(cs42l56->regmap, CS42L56_AIN_REFCFG_ADC_MUX, in cs42l56_i2c_probe()
1295 if (cs42l56->pdata.ain2b_ref_cfg) in cs42l56_i2c_probe()
1296 regmap_update_bits(cs42l56->regmap, CS42L56_AIN_REFCFG_ADC_MUX, in cs42l56_i2c_probe()
1299 if (cs42l56->pdata.micbias_lvl) in cs42l56_i2c_probe()
1300 regmap_update_bits(cs42l56->regmap, CS42L56_GAIN_BIAS_CTL, in cs42l56_i2c_probe()
1302 cs42l56->pdata.micbias_lvl); in cs42l56_i2c_probe()
1304 if (cs42l56->pdata.chgfreq) in cs42l56_i2c_probe()
1305 regmap_update_bits(cs42l56->regmap, CS42L56_CLASSH_CTL, in cs42l56_i2c_probe()
1307 cs42l56->pdata.chgfreq); in cs42l56_i2c_probe()
1309 if (cs42l56->pdata.hpfb_freq) in cs42l56_i2c_probe()
1310 regmap_update_bits(cs42l56->regmap, CS42L56_HPF_CTL, in cs42l56_i2c_probe()
1312 cs42l56->pdata.hpfb_freq); in cs42l56_i2c_probe()
1314 if (cs42l56->pdata.hpfa_freq) in cs42l56_i2c_probe()
1315 regmap_update_bits(cs42l56->regmap, CS42L56_HPF_CTL, in cs42l56_i2c_probe()
1317 cs42l56->pdata.hpfa_freq); in cs42l56_i2c_probe()
1319 if (cs42l56->pdata.adaptive_pwr) in cs42l56_i2c_probe()
1320 regmap_update_bits(cs42l56->regmap, CS42L56_CLASSH_CTL, in cs42l56_i2c_probe()
1322 cs42l56->pdata.adaptive_pwr); in cs42l56_i2c_probe()
1332 regulator_bulk_disable(ARRAY_SIZE(cs42l56->supplies), in cs42l56_i2c_probe()
1333 cs42l56->supplies); in cs42l56_i2c_probe()
1339 struct cs42l56_private *cs42l56 = i2c_get_clientdata(client); in cs42l56_i2c_remove() local
1342 regulator_bulk_disable(ARRAY_SIZE(cs42l56->supplies), in cs42l56_i2c_remove()
1343 cs42l56->supplies); in cs42l56_i2c_remove()