Lines Matching refs:cs35l33

3  * cs35l33.c -- CS35L33 ALSA SoC audio driver
26 #include <sound/cs35l33.h>
32 #include "cs35l33.h"
458 * tdm mode in cs35l33 resembles dsp-a mode very
637 struct cs35l33_private *cs35l33 = snd_soc_component_get_drvdata(component);
643 regmap_update_bits(cs35l33->regmap, CS35L33_CLK_CTL,
645 cs35l33->mclk_int = freq;
650 regmap_update_bits(cs35l33->regmap, CS35L33_CLK_CTL,
652 cs35l33->mclk_int = freq/2;
655 cs35l33->mclk_int = 0;
660 freq, cs35l33->mclk_int);
674 .name = "cs35l33-dai",
745 struct cs35l33_private *cs35l33 = snd_soc_component_get_drvdata(component);
767 regmap_write(cs35l33->regmap, CS35L33_BST_PEAK_CTL,
776 struct cs35l33_private *cs35l33 = snd_soc_component_get_drvdata(component);
778 cs35l33->component = component;
781 regmap_update_bits(cs35l33->regmap, CS35L33_PROTECT_CTL,
783 regmap_update_bits(cs35l33->regmap, CS35L33_BST_CTL2,
788 regmap_update_bits(cs35l33->regmap, CS35L33_BST_CTL1,
789 CS35L33_BST_CTL_MASK, cs35l33->pdata.boost_ctl);
790 regmap_update_bits(cs35l33->regmap, CS35L33_CLASSD_CTL,
792 cs35l33->pdata.amp_drv_sel << CS35L33_AMP_DRV_SEL_SHIFT);
794 if (cs35l33->pdata.boost_ipk)
795 cs35l33_set_bst_ipk(component, cs35l33->pdata.boost_ipk);
797 if (cs35l33->enable_soft_ramp) {
801 CS35L33_DSR_RATE, cs35l33->pdata.ramp_rate);
808 if (cs35l33->pdata.imon_adc_scale != 0x8)
810 CS35L33_IMON_SCALE, cs35l33->pdata.imon_adc_scale);
812 cs35l33_set_hg_data(component, &(cs35l33->pdata));
818 regmap_update_bits(cs35l33->regmap, CS35L33_INT_MASK_1,
858 struct cs35l33_private *cs35l33 = dev_get_drvdata(dev);
863 gpiod_set_value_cansleep(cs35l33->reset_gpio, 0);
865 ret = regulator_bulk_enable(cs35l33->num_core_supplies,
866 cs35l33->core_supplies);
872 regcache_cache_only(cs35l33->regmap, false);
874 gpiod_set_value_cansleep(cs35l33->reset_gpio, 1);
878 ret = regcache_sync(cs35l33->regmap);
887 regcache_cache_only(cs35l33->regmap, true);
888 regulator_bulk_disable(cs35l33->num_core_supplies,
889 cs35l33->core_supplies);
896 struct cs35l33_private *cs35l33 = dev_get_drvdata(dev);
901 cs35l33->amp_cal = false;
903 regcache_cache_only(cs35l33->regmap, true);
904 regcache_mark_dirty(cs35l33->regmap);
905 regulator_bulk_disable(cs35l33->num_core_supplies,
906 cs35l33->core_supplies);
960 struct cs35l33_private *cs35l33 = data;
961 struct snd_soc_component *component = cs35l33->component;
964 regmap_read(cs35l33->regmap, CS35L33_INT_STATUS_2,
966 regmap_read(cs35l33->regmap, CS35L33_INT_STATUS_1,
968 regmap_read(cs35l33->regmap, CS35L33_INT_MASK_2, &mask2);
969 regmap_read(cs35l33->regmap, CS35L33_INT_MASK_1, &mask1);
977 regmap_read(cs35l33->regmap, CS35L33_INT_STATUS_1,
987 regmap_update_bits(cs35l33->regmap,
990 regmap_update_bits(cs35l33->regmap,
994 regmap_update_bits(cs35l33->regmap,
1004 cs35l33->amp_cal = false;
1008 regmap_update_bits(cs35l33->regmap,
1011 regmap_update_bits(cs35l33->regmap,
1014 regmap_update_bits(cs35l33->regmap,
1025 regmap_update_bits(cs35l33->regmap,
1027 regmap_update_bits(cs35l33->regmap,
1030 regmap_update_bits(cs35l33->regmap,
1040 regmap_update_bits(cs35l33->regmap,
1042 regmap_update_bits(cs35l33->regmap,
1045 regmap_update_bits(cs35l33->regmap,
1076 struct cs35l33_private *cs35l33)
1079 struct cs35l33_pdata *pdata = &cs35l33->pdata;
1092 cs35l33->enable_soft_ramp = true;
1116 struct cs35l33_private *cs35l33;
1121 cs35l33 = devm_kzalloc(&i2c_client->dev, sizeof(struct cs35l33_private),
1123 if (!cs35l33)
1126 i2c_set_clientdata(i2c_client, cs35l33);
1127 cs35l33->regmap = devm_regmap_init_i2c(i2c_client, &cs35l33_regmap);
1128 if (IS_ERR(cs35l33->regmap)) {
1129 ret = PTR_ERR(cs35l33->regmap);
1134 regcache_cache_only(cs35l33->regmap, true);
1137 cs35l33->core_supplies[i].supply
1139 cs35l33->num_core_supplies = ARRAY_SIZE(cs35l33_core_supplies);
1142 cs35l33->num_core_supplies,
1143 cs35l33->core_supplies);
1152 cs35l33->pdata = *pdata;
1154 cs35l33_of_get_pdata(&i2c_client->dev, cs35l33);
1155 pdata = &cs35l33->pdata;
1160 "cs35l33", cs35l33);
1165 cs35l33->reset_gpio = devm_gpiod_get_optional(&i2c_client->dev,
1167 if (IS_ERR(cs35l33->reset_gpio)) {
1170 return PTR_ERR(cs35l33->reset_gpio);
1173 ret = regulator_bulk_enable(cs35l33->num_core_supplies,
1174 cs35l33->core_supplies);
1182 gpiod_set_value_cansleep(cs35l33->reset_gpio, 1);
1185 regcache_cache_only(cs35l33->regmap, false);
1188 devid = cirrus_read_device_id(cs35l33->regmap, CS35L33_DEVID_AB);
1203 ret = regmap_read(cs35l33->regmap, CS35L33_REV_ID, &reg);
1212 ret = regmap_register_patch(cs35l33->regmap,
1221 regmap_update_bits(cs35l33->regmap, CS35L33_CLK_CTL,
1241 gpiod_set_value_cansleep(cs35l33->reset_gpio, 0);
1243 regulator_bulk_disable(cs35l33->num_core_supplies,
1244 cs35l33->core_supplies);
1251 struct cs35l33_private *cs35l33 = i2c_get_clientdata(client);
1253 gpiod_set_value_cansleep(cs35l33->reset_gpio, 0);
1256 regulator_bulk_disable(cs35l33->num_core_supplies,
1257 cs35l33->core_supplies);
1261 { .compatible = "cirrus,cs35l33", },
1267 {"cs35l33"},
1275 .name = "cs35l33",