Lines Matching refs:cs42l56
780 struct cs42l56_private *cs42l56 = snd_soc_codec_get_drvdata(codec); in cs42l56_set_sysclk() local
786 cs42l56->mclk_div2 = 0; in cs42l56_set_sysclk()
787 cs42l56->mclk_prediv = 0; in cs42l56_set_sysclk()
792 cs42l56->mclk_div2 = CS42L56_MCLK_DIV2; in cs42l56_set_sysclk()
793 cs42l56->mclk_prediv = 0; in cs42l56_set_sysclk()
798 cs42l56->mclk_div2 = CS42L56_MCLK_DIV2; in cs42l56_set_sysclk()
799 cs42l56->mclk_prediv = CS42L56_MCLK_PREDIV; in cs42l56_set_sysclk()
804 cs42l56->mclk = freq; in cs42l56_set_sysclk()
808 cs42l56->mclk_prediv); in cs42l56_set_sysclk()
811 cs42l56->mclk_div2); in cs42l56_set_sysclk()
819 struct cs42l56_private *cs42l56 = snd_soc_codec_get_drvdata(codec); in cs42l56_set_dai_fmt() local
823 cs42l56->iface = CS42L56_MASTER_MODE; in cs42l56_set_dai_fmt()
826 cs42l56->iface = CS42L56_SLAVE_MODE; in cs42l56_set_dai_fmt()
835 cs42l56->iface_fmt = CS42L56_DIG_FMT_I2S; in cs42l56_set_dai_fmt()
838 cs42l56->iface_fmt = CS42L56_DIG_FMT_LEFT_J; in cs42l56_set_dai_fmt()
847 cs42l56->iface_inv = 0; in cs42l56_set_dai_fmt()
850 cs42l56->iface_inv = CS42L56_SCLK_INV; in cs42l56_set_dai_fmt()
857 CS42L56_MS_MODE_MASK, cs42l56->iface); in cs42l56_set_dai_fmt()
859 CS42L56_DIG_FMT_MASK, cs42l56->iface_fmt); in cs42l56_set_dai_fmt()
861 CS42L56_SCLK_INV_MASK, cs42l56->iface_inv); in cs42l56_set_dai_fmt()
925 struct cs42l56_private *cs42l56 = snd_soc_codec_get_drvdata(codec); in cs42l56_pcm_hw_params() local
928 ratio = cs42l56_get_mclk_ratio(cs42l56->mclk, params_rate(params)); in cs42l56_pcm_hw_params()
943 struct cs42l56_private *cs42l56 = snd_soc_codec_get_drvdata(codec); in cs42l56_set_bias_level() local
957 regcache_cache_only(cs42l56->regmap, false); in cs42l56_set_bias_level()
958 regcache_sync(cs42l56->regmap); in cs42l56_set_bias_level()
959 ret = regulator_bulk_enable(ARRAY_SIZE(cs42l56->supplies), in cs42l56_set_bias_level()
960 cs42l56->supplies); in cs42l56_set_bias_level()
962 dev_err(cs42l56->dev, in cs42l56_set_bias_level()
976 regcache_cache_only(cs42l56->regmap, true); in cs42l56_set_bias_level()
977 regulator_bulk_disable(ARRAY_SIZE(cs42l56->supplies), in cs42l56_set_bias_level()
978 cs42l56->supplies); in cs42l56_set_bias_level()
1026 struct cs42l56_private *cs42l56 = in cs42l56_beep_work() local
1028 struct snd_soc_codec *codec = cs42l56->codec; in cs42l56_beep_work()
1034 if (cs42l56->beep_rate) { in cs42l56_beep_work()
1036 if (abs(cs42l56->beep_rate - beep_freq[i]) < in cs42l56_beep_work()
1037 abs(cs42l56->beep_rate - beep_freq[best])) in cs42l56_beep_work()
1042 beep_freq[best], cs42l56->beep_rate); in cs42l56_beep_work()
1065 struct cs42l56_private *cs42l56 = snd_soc_codec_get_drvdata(codec); in cs42l56_beep_event() local
1080 cs42l56->beep_rate = hz; in cs42l56_beep_event()
1081 schedule_work(&cs42l56->beep_work); in cs42l56_beep_event()
1089 struct cs42l56_private *cs42l56 = dev_get_drvdata(dev); in cs42l56_beep_set() local
1097 input_event(cs42l56->beep, EV_SND, SND_TONE, time); in cs42l56_beep_set()
1106 struct cs42l56_private *cs42l56 = snd_soc_codec_get_drvdata(codec); in cs42l56_init_beep() local
1109 cs42l56->beep = devm_input_allocate_device(codec->dev); in cs42l56_init_beep()
1110 if (!cs42l56->beep) { in cs42l56_init_beep()
1115 INIT_WORK(&cs42l56->beep_work, cs42l56_beep_work); in cs42l56_init_beep()
1116 cs42l56->beep_rate = 0; in cs42l56_init_beep()
1118 cs42l56->beep->name = "CS42L56 Beep Generator"; in cs42l56_init_beep()
1119 cs42l56->beep->phys = dev_name(codec->dev); in cs42l56_init_beep()
1120 cs42l56->beep->id.bustype = BUS_I2C; in cs42l56_init_beep()
1122 cs42l56->beep->evbit[0] = BIT_MASK(EV_SND); in cs42l56_init_beep()
1123 cs42l56->beep->sndbit[0] = BIT_MASK(SND_BELL) | BIT_MASK(SND_TONE); in cs42l56_init_beep()
1124 cs42l56->beep->event = cs42l56_beep_event; in cs42l56_init_beep()
1125 cs42l56->beep->dev.parent = codec->dev; in cs42l56_init_beep()
1126 input_set_drvdata(cs42l56->beep, codec); in cs42l56_init_beep()
1128 ret = input_register_device(cs42l56->beep); in cs42l56_init_beep()
1130 cs42l56->beep = NULL; in cs42l56_init_beep()
1143 struct cs42l56_private *cs42l56 = snd_soc_codec_get_drvdata(codec); in cs42l56_free_beep() local
1146 cancel_work_sync(&cs42l56->beep_work); in cs42l56_free_beep()
1147 cs42l56->beep = NULL; in cs42l56_free_beep()
1235 struct cs42l56_private *cs42l56; in cs42l56_i2c_probe() local
1243 cs42l56 = devm_kzalloc(&i2c_client->dev, in cs42l56_i2c_probe()
1246 if (cs42l56 == NULL) in cs42l56_i2c_probe()
1248 cs42l56->dev = &i2c_client->dev; in cs42l56_i2c_probe()
1250 cs42l56->regmap = devm_regmap_init_i2c(i2c_client, &cs42l56_regmap); in cs42l56_i2c_probe()
1251 if (IS_ERR(cs42l56->regmap)) { in cs42l56_i2c_probe()
1252 ret = PTR_ERR(cs42l56->regmap); in cs42l56_i2c_probe()
1258 cs42l56->pdata = *pdata; in cs42l56_i2c_probe()
1270 &cs42l56->pdata); in cs42l56_i2c_probe()
1274 cs42l56->pdata = *pdata; in cs42l56_i2c_probe()
1277 if (cs42l56->pdata.gpio_nreset) { in cs42l56_i2c_probe()
1278 ret = gpio_request_one(cs42l56->pdata.gpio_nreset, in cs42l56_i2c_probe()
1283 cs42l56->pdata.gpio_nreset, ret); in cs42l56_i2c_probe()
1286 gpio_set_value_cansleep(cs42l56->pdata.gpio_nreset, 0); in cs42l56_i2c_probe()
1287 gpio_set_value_cansleep(cs42l56->pdata.gpio_nreset, 1); in cs42l56_i2c_probe()
1291 i2c_set_clientdata(i2c_client, cs42l56); in cs42l56_i2c_probe()
1293 for (i = 0; i < ARRAY_SIZE(cs42l56->supplies); i++) in cs42l56_i2c_probe()
1294 cs42l56->supplies[i].supply = cs42l56_supply_names[i]; in cs42l56_i2c_probe()
1297 ARRAY_SIZE(cs42l56->supplies), in cs42l56_i2c_probe()
1298 cs42l56->supplies); in cs42l56_i2c_probe()
1305 ret = regulator_bulk_enable(ARRAY_SIZE(cs42l56->supplies), in cs42l56_i2c_probe()
1306 cs42l56->supplies); in cs42l56_i2c_probe()
1313 regcache_cache_bypass(cs42l56->regmap, true); in cs42l56_i2c_probe()
1315 ret = regmap_read(cs42l56->regmap, CS42L56_CHIP_ID_1, ®); in cs42l56_i2c_probe()
1330 regcache_cache_bypass(cs42l56->regmap, false); in cs42l56_i2c_probe()
1332 if (cs42l56->pdata.ain1a_ref_cfg) in cs42l56_i2c_probe()
1333 regmap_update_bits(cs42l56->regmap, CS42L56_AIN_REFCFG_ADC_MUX, in cs42l56_i2c_probe()
1336 if (cs42l56->pdata.ain1b_ref_cfg) in cs42l56_i2c_probe()
1337 regmap_update_bits(cs42l56->regmap, CS42L56_AIN_REFCFG_ADC_MUX, in cs42l56_i2c_probe()
1340 if (cs42l56->pdata.ain2a_ref_cfg) in cs42l56_i2c_probe()
1341 regmap_update_bits(cs42l56->regmap, CS42L56_AIN_REFCFG_ADC_MUX, in cs42l56_i2c_probe()
1344 if (cs42l56->pdata.ain2b_ref_cfg) in cs42l56_i2c_probe()
1345 regmap_update_bits(cs42l56->regmap, CS42L56_AIN_REFCFG_ADC_MUX, in cs42l56_i2c_probe()
1348 if (cs42l56->pdata.micbias_lvl) in cs42l56_i2c_probe()
1349 regmap_update_bits(cs42l56->regmap, CS42L56_GAIN_BIAS_CTL, in cs42l56_i2c_probe()
1351 cs42l56->pdata.micbias_lvl); in cs42l56_i2c_probe()
1353 if (cs42l56->pdata.chgfreq) in cs42l56_i2c_probe()
1354 regmap_update_bits(cs42l56->regmap, CS42L56_CLASSH_CTL, in cs42l56_i2c_probe()
1356 cs42l56->pdata.chgfreq); in cs42l56_i2c_probe()
1358 if (cs42l56->pdata.hpfb_freq) in cs42l56_i2c_probe()
1359 regmap_update_bits(cs42l56->regmap, CS42L56_HPF_CTL, in cs42l56_i2c_probe()
1361 cs42l56->pdata.hpfb_freq); in cs42l56_i2c_probe()
1363 if (cs42l56->pdata.hpfa_freq) in cs42l56_i2c_probe()
1364 regmap_update_bits(cs42l56->regmap, CS42L56_HPF_CTL, in cs42l56_i2c_probe()
1366 cs42l56->pdata.hpfa_freq); in cs42l56_i2c_probe()
1368 if (cs42l56->pdata.adaptive_pwr) in cs42l56_i2c_probe()
1369 regmap_update_bits(cs42l56->regmap, CS42L56_CLASSH_CTL, in cs42l56_i2c_probe()
1371 cs42l56->pdata.adaptive_pwr); in cs42l56_i2c_probe()
1381 regulator_bulk_disable(ARRAY_SIZE(cs42l56->supplies), in cs42l56_i2c_probe()
1382 cs42l56->supplies); in cs42l56_i2c_probe()
1388 struct cs42l56_private *cs42l56 = i2c_get_clientdata(client); in cs42l56_i2c_remove() local
1391 regulator_bulk_disable(ARRAY_SIZE(cs42l56->supplies), in cs42l56_i2c_remove()
1392 cs42l56->supplies); in cs42l56_i2c_remove()