Lines Matching refs:cs42l56

3  * cs42l56.c -- CS42L56 ALSA SoC audio driver
32 #include <sound/cs42l56.h>
33 #include "cs42l56.h"
718 struct cs42l56_private *cs42l56 = snd_soc_component_get_drvdata(component);
724 cs42l56->mclk_div2 = 0;
725 cs42l56->mclk_prediv = 0;
730 cs42l56->mclk_div2 = CS42L56_MCLK_DIV2;
731 cs42l56->mclk_prediv = 0;
736 cs42l56->mclk_div2 = CS42L56_MCLK_DIV2;
737 cs42l56->mclk_prediv = CS42L56_MCLK_PREDIV;
742 cs42l56->mclk = freq;
746 cs42l56->mclk_prediv);
749 cs42l56->mclk_div2);
757 struct cs42l56_private *cs42l56 = snd_soc_component_get_drvdata(component);
761 cs42l56->iface = CS42L56_MASTER_MODE;
764 cs42l56->iface = CS42L56_SLAVE_MODE;
773 cs42l56->iface_fmt = CS42L56_DIG_FMT_I2S;
776 cs42l56->iface_fmt = CS42L56_DIG_FMT_LEFT_J;
785 cs42l56->iface_inv = 0;
788 cs42l56->iface_inv = CS42L56_SCLK_INV;
795 CS42L56_MS_MODE_MASK, cs42l56->iface);
797 CS42L56_DIG_FMT_MASK, cs42l56->iface_fmt);
799 CS42L56_SCLK_INV_MASK, cs42l56->iface_inv);
863 struct cs42l56_private *cs42l56 = snd_soc_component_get_drvdata(component);
866 ratio = cs42l56_get_mclk_ratio(cs42l56->mclk, params_rate(params));
881 struct cs42l56_private *cs42l56 = snd_soc_component_get_drvdata(component);
895 regcache_cache_only(cs42l56->regmap, false);
896 regcache_sync(cs42l56->regmap);
897 ret = regulator_bulk_enable(ARRAY_SIZE(cs42l56->supplies),
898 cs42l56->supplies);
900 dev_err(cs42l56->dev,
914 regcache_cache_only(cs42l56->regmap, true);
915 regulator_bulk_disable(ARRAY_SIZE(cs42l56->supplies),
916 cs42l56->supplies);
939 .name = "cs42l56",
964 struct cs42l56_private *cs42l56 =
966 struct snd_soc_component *component = cs42l56->component;
972 if (cs42l56->beep_rate) {
974 if (abs(cs42l56->beep_rate - beep_freq[i]) <
975 abs(cs42l56->beep_rate - beep_freq[best]))
980 beep_freq[best], cs42l56->beep_rate);
1003 struct cs42l56_private *cs42l56 = snd_soc_component_get_drvdata(component);
1018 cs42l56->beep_rate = hz;
1019 schedule_work(&cs42l56->beep_work);
1027 struct cs42l56_private *cs42l56 = dev_get_drvdata(dev);
1035 input_event(cs42l56->beep, EV_SND, SND_TONE, time);
1044 struct cs42l56_private *cs42l56 = snd_soc_component_get_drvdata(component);
1047 cs42l56->beep = devm_input_allocate_device(component->dev);
1048 if (!cs42l56->beep) {
1053 INIT_WORK(&cs42l56->beep_work, cs42l56_beep_work);
1054 cs42l56->beep_rate = 0;
1056 cs42l56->beep->name = "CS42L56 Beep Generator";
1057 cs42l56->beep->phys = dev_name(component->dev);
1058 cs42l56->beep->id.bustype = BUS_I2C;
1060 cs42l56->beep->evbit[0] = BIT_MASK(EV_SND);
1061 cs42l56->beep->sndbit[0] = BIT_MASK(SND_BELL) | BIT_MASK(SND_TONE);
1062 cs42l56->beep->event = cs42l56_beep_event;
1063 cs42l56->beep->dev.parent = component->dev;
1064 input_set_drvdata(cs42l56->beep, component);
1066 ret = input_register_device(cs42l56->beep);
1068 cs42l56->beep = NULL;
1081 struct cs42l56_private *cs42l56 = snd_soc_component_get_drvdata(component);
1084 cancel_work_sync(&cs42l56->beep_work);
1085 cs42l56->beep = NULL;
1173 struct cs42l56_private *cs42l56;
1181 cs42l56 = devm_kzalloc(&i2c_client->dev, sizeof(*cs42l56), GFP_KERNEL);
1182 if (cs42l56 == NULL)
1184 cs42l56->dev = &i2c_client->dev;
1186 cs42l56->regmap = devm_regmap_init_i2c(i2c_client, &cs42l56_regmap);
1187 if (IS_ERR(cs42l56->regmap)) {
1188 ret = PTR_ERR(cs42l56->regmap);
1194 cs42l56->pdata = *pdata;
1198 &cs42l56->pdata);
1204 if (cs42l56->pdata.gpio_nreset) {
1205 ret = gpio_request_one(cs42l56->pdata.gpio_nreset,
1210 cs42l56->pdata.gpio_nreset, ret);
1213 gpio_set_value_cansleep(cs42l56->pdata.gpio_nreset, 0);
1214 gpio_set_value_cansleep(cs42l56->pdata.gpio_nreset, 1);
1218 i2c_set_clientdata(i2c_client, cs42l56);
1220 for (i = 0; i < ARRAY_SIZE(cs42l56->supplies); i++)
1221 cs42l56->supplies[i].supply = cs42l56_supply_names[i];
1224 ARRAY_SIZE(cs42l56->supplies),
1225 cs42l56->supplies);
1232 ret = regulator_bulk_enable(ARRAY_SIZE(cs42l56->supplies),
1233 cs42l56->supplies);
1240 ret = regmap_read(cs42l56->regmap, CS42L56_CHIP_ID_1, &reg);
1256 if (cs42l56->pdata.ain1a_ref_cfg)
1257 regmap_update_bits(cs42l56->regmap, CS42L56_AIN_REFCFG_ADC_MUX,
1261 if (cs42l56->pdata.ain1b_ref_cfg)
1262 regmap_update_bits(cs42l56->regmap, CS42L56_AIN_REFCFG_ADC_MUX,
1266 if (cs42l56->pdata.ain2a_ref_cfg)
1267 regmap_update_bits(cs42l56->regmap, CS42L56_AIN_REFCFG_ADC_MUX,
1271 if (cs42l56->pdata.ain2b_ref_cfg)
1272 regmap_update_bits(cs42l56->regmap, CS42L56_AIN_REFCFG_ADC_MUX,
1276 if (cs42l56->pdata.micbias_lvl)
1277 regmap_update_bits(cs42l56->regmap, CS42L56_GAIN_BIAS_CTL,
1279 cs42l56->pdata.micbias_lvl);
1281 if (cs42l56->pdata.chgfreq)
1282 regmap_update_bits(cs42l56->regmap, CS42L56_CLASSH_CTL,
1284 cs42l56->pdata.chgfreq);
1286 if (cs42l56->pdata.hpfb_freq)
1287 regmap_update_bits(cs42l56->regmap, CS42L56_HPF_CTL,
1289 cs42l56->pdata.hpfb_freq);
1291 if (cs42l56->pdata.hpfa_freq)
1292 regmap_update_bits(cs42l56->regmap, CS42L56_HPF_CTL,
1294 cs42l56->pdata.hpfa_freq);
1296 if (cs42l56->pdata.adaptive_pwr)
1297 regmap_update_bits(cs42l56->regmap, CS42L56_CLASSH_CTL,
1299 cs42l56->pdata.adaptive_pwr);
1309 regulator_bulk_disable(ARRAY_SIZE(cs42l56->supplies),
1310 cs42l56->supplies);
1316 struct cs42l56_private *cs42l56 = i2c_get_clientdata(client);
1318 regulator_bulk_disable(ARRAY_SIZE(cs42l56->supplies),
1319 cs42l56->supplies);
1324 { .compatible = "cirrus,cs42l56", },
1331 { "cs42l56", 0 },
1338 .name = "cs42l56",