Lines Matching defs:cs35l33
3 * cs35l33.c -- CS35L33 ALSA SoC audio driver
26 #include <sound/cs35l33.h>
34 #include "cs35l33.h"
460 * tdm mode in cs35l33 resembles dsp-a mode very
639 struct cs35l33_private *cs35l33 = snd_soc_component_get_drvdata(component);
645 regmap_update_bits(cs35l33->regmap, CS35L33_CLK_CTL,
647 cs35l33->mclk_int = freq;
652 regmap_update_bits(cs35l33->regmap, CS35L33_CLK_CTL,
654 cs35l33->mclk_int = freq/2;
657 cs35l33->mclk_int = 0;
662 freq, cs35l33->mclk_int);
676 .name = "cs35l33-dai",
747 struct cs35l33_private *cs35l33 = snd_soc_component_get_drvdata(component);
769 regmap_write(cs35l33->regmap, CS35L33_BST_PEAK_CTL,
778 struct cs35l33_private *cs35l33 = snd_soc_component_get_drvdata(component);
780 cs35l33->component = component;
783 regmap_update_bits(cs35l33->regmap, CS35L33_PROTECT_CTL,
785 regmap_update_bits(cs35l33->regmap, CS35L33_BST_CTL2,
790 regmap_update_bits(cs35l33->regmap, CS35L33_BST_CTL1,
791 CS35L33_BST_CTL_MASK, cs35l33->pdata.boost_ctl);
792 regmap_update_bits(cs35l33->regmap, CS35L33_CLASSD_CTL,
794 cs35l33->pdata.amp_drv_sel << CS35L33_AMP_DRV_SEL_SHIFT);
796 if (cs35l33->pdata.boost_ipk)
797 cs35l33_set_bst_ipk(component, cs35l33->pdata.boost_ipk);
799 if (cs35l33->enable_soft_ramp) {
803 CS35L33_DSR_RATE, cs35l33->pdata.ramp_rate);
810 if (cs35l33->pdata.imon_adc_scale != 0x8)
812 CS35L33_IMON_SCALE, cs35l33->pdata.imon_adc_scale);
814 cs35l33_set_hg_data(component, &(cs35l33->pdata));
820 regmap_update_bits(cs35l33->regmap, CS35L33_INT_MASK_1,
860 struct cs35l33_private *cs35l33 = dev_get_drvdata(dev);
865 gpiod_set_value_cansleep(cs35l33->reset_gpio, 0);
867 ret = regulator_bulk_enable(cs35l33->num_core_supplies,
868 cs35l33->core_supplies);
874 regcache_cache_only(cs35l33->regmap, false);
876 gpiod_set_value_cansleep(cs35l33->reset_gpio, 1);
880 ret = regcache_sync(cs35l33->regmap);
889 regcache_cache_only(cs35l33->regmap, true);
890 regulator_bulk_disable(cs35l33->num_core_supplies,
891 cs35l33->core_supplies);
898 struct cs35l33_private *cs35l33 = dev_get_drvdata(dev);
903 cs35l33->amp_cal = false;
905 regcache_cache_only(cs35l33->regmap, true);
906 regcache_mark_dirty(cs35l33->regmap);
907 regulator_bulk_disable(cs35l33->num_core_supplies,
908 cs35l33->core_supplies);
962 struct cs35l33_private *cs35l33 = data;
963 struct snd_soc_component *component = cs35l33->component;
966 regmap_read(cs35l33->regmap, CS35L33_INT_STATUS_2,
968 regmap_read(cs35l33->regmap, CS35L33_INT_STATUS_1,
970 regmap_read(cs35l33->regmap, CS35L33_INT_MASK_2, &mask2);
971 regmap_read(cs35l33->regmap, CS35L33_INT_MASK_1, &mask1);
979 regmap_read(cs35l33->regmap, CS35L33_INT_STATUS_1,
989 regmap_update_bits(cs35l33->regmap,
992 regmap_update_bits(cs35l33->regmap,
996 regmap_update_bits(cs35l33->regmap,
1006 cs35l33->amp_cal = false;
1010 regmap_update_bits(cs35l33->regmap,
1013 regmap_update_bits(cs35l33->regmap,
1016 regmap_update_bits(cs35l33->regmap,
1027 regmap_update_bits(cs35l33->regmap,
1029 regmap_update_bits(cs35l33->regmap,
1032 regmap_update_bits(cs35l33->regmap,
1042 regmap_update_bits(cs35l33->regmap,
1044 regmap_update_bits(cs35l33->regmap,
1047 regmap_update_bits(cs35l33->regmap,
1078 struct cs35l33_private *cs35l33)
1081 struct cs35l33_pdata *pdata = &cs35l33->pdata;
1094 cs35l33->enable_soft_ramp = true;
1118 struct cs35l33_private *cs35l33;
1123 cs35l33 = devm_kzalloc(&i2c_client->dev, sizeof(struct cs35l33_private),
1125 if (!cs35l33)
1128 i2c_set_clientdata(i2c_client, cs35l33);
1129 cs35l33->regmap = devm_regmap_init_i2c(i2c_client, &cs35l33_regmap);
1130 if (IS_ERR(cs35l33->regmap)) {
1131 ret = PTR_ERR(cs35l33->regmap);
1136 regcache_cache_only(cs35l33->regmap, true);
1139 cs35l33->core_supplies[i].supply
1141 cs35l33->num_core_supplies = ARRAY_SIZE(cs35l33_core_supplies);
1144 cs35l33->num_core_supplies,
1145 cs35l33->core_supplies);
1154 cs35l33->pdata = *pdata;
1156 cs35l33_of_get_pdata(&i2c_client->dev, cs35l33);
1157 pdata = &cs35l33->pdata;
1162 "cs35l33", cs35l33);
1167 cs35l33->reset_gpio = devm_gpiod_get_optional(&i2c_client->dev,
1169 if (IS_ERR(cs35l33->reset_gpio)) {
1172 return PTR_ERR(cs35l33->reset_gpio);
1175 ret = regulator_bulk_enable(cs35l33->num_core_supplies,
1176 cs35l33->core_supplies);
1184 gpiod_set_value_cansleep(cs35l33->reset_gpio, 1);
1187 regcache_cache_only(cs35l33->regmap, false);
1190 devid = cirrus_read_device_id(cs35l33->regmap, CS35L33_DEVID_AB);
1205 ret = regmap_read(cs35l33->regmap, CS35L33_REV_ID, ®);
1214 ret = regmap_register_patch(cs35l33->regmap,
1223 regmap_update_bits(cs35l33->regmap, CS35L33_CLK_CTL,
1243 gpiod_set_value_cansleep(cs35l33->reset_gpio, 0);
1245 regulator_bulk_disable(cs35l33->num_core_supplies,
1246 cs35l33->core_supplies);
1253 struct cs35l33_private *cs35l33 = i2c_get_clientdata(client);
1255 gpiod_set_value_cansleep(cs35l33->reset_gpio, 0);
1258 regulator_bulk_disable(cs35l33->num_core_supplies,
1259 cs35l33->core_supplies);
1263 { .compatible = "cirrus,cs35l33", },
1269 {"cs35l33", 0},
1277 .name = "cs35l33",