Lines Matching refs:sta350

306 	struct sta350_priv *sta350 = snd_soc_component_get_drvdata(component);  in sta350_coefficient_get()  local
312 mutex_lock(&sta350->coeff_lock); in sta350_coefficient_get()
315 regmap_read(sta350->regmap, STA350_CFUD, &cfud); in sta350_coefficient_get()
321 regmap_write(sta350->regmap, STA350_CFUD, cfud); in sta350_coefficient_get()
323 regmap_write(sta350->regmap, STA350_CFADDR2, index); in sta350_coefficient_get()
325 regmap_write(sta350->regmap, STA350_CFUD, cfud | 0x04); in sta350_coefficient_get()
327 regmap_write(sta350->regmap, STA350_CFUD, cfud | 0x08); in sta350_coefficient_get()
334 regmap_read(sta350->regmap, STA350_B1CF1 + i, &val); in sta350_coefficient_get()
339 mutex_unlock(&sta350->coeff_lock); in sta350_coefficient_get()
348 struct sta350_priv *sta350 = snd_soc_component_get_drvdata(component); in sta350_coefficient_put() local
355 regmap_read(sta350->regmap, STA350_CFUD, &cfud); in sta350_coefficient_put()
361 regmap_write(sta350->regmap, STA350_CFUD, cfud); in sta350_coefficient_put()
363 regmap_write(sta350->regmap, STA350_CFADDR2, index); in sta350_coefficient_put()
365 sta350->coef_shadow[index + i] = in sta350_coefficient_put()
370 regmap_write(sta350->regmap, STA350_B1CF1 + i, in sta350_coefficient_put()
373 regmap_write(sta350->regmap, STA350_CFUD, cfud | 0x01); in sta350_coefficient_put()
375 regmap_write(sta350->regmap, STA350_CFUD, cfud | 0x02); in sta350_coefficient_put()
384 struct sta350_priv *sta350 = snd_soc_component_get_drvdata(component); in sta350_sync_coef_shadow() local
389 regmap_read(sta350->regmap, STA350_CFUD, &cfud); in sta350_sync_coef_shadow()
393 regmap_write(sta350->regmap, STA350_CFADDR2, i); in sta350_sync_coef_shadow()
394 regmap_write(sta350->regmap, STA350_B1CF1, in sta350_sync_coef_shadow()
395 (sta350->coef_shadow[i] >> 16) & 0xff); in sta350_sync_coef_shadow()
396 regmap_write(sta350->regmap, STA350_B1CF2, in sta350_sync_coef_shadow()
397 (sta350->coef_shadow[i] >> 8) & 0xff); in sta350_sync_coef_shadow()
398 regmap_write(sta350->regmap, STA350_B1CF3, in sta350_sync_coef_shadow()
399 (sta350->coef_shadow[i]) & 0xff); in sta350_sync_coef_shadow()
404 regmap_write(sta350->regmap, STA350_CFUD, cfud); in sta350_sync_coef_shadow()
405 regmap_write(sta350->regmap, STA350_CFUD, cfud | 0x01); in sta350_sync_coef_shadow()
412 struct sta350_priv *sta350 = snd_soc_component_get_drvdata(component); in sta350_cache_sync() local
417 regmap_read(sta350->regmap, STA350_CFUD, &mute); in sta350_cache_sync()
418 regmap_write(sta350->regmap, STA350_MMUTE, mute | STA350_MMUTE_MMUTE); in sta350_cache_sync()
420 rc = regcache_sync(sta350->regmap); in sta350_cache_sync()
421 regmap_write(sta350->regmap, STA350_MMUTE, mute); in sta350_cache_sync()
610 struct sta350_priv *sta350 = snd_soc_component_get_drvdata(component); in sta350_set_dai_sysclk() local
613 sta350->mclk = freq; in sta350_set_dai_sysclk()
630 struct sta350_priv *sta350 = snd_soc_component_get_drvdata(component); in sta350_set_dai_fmt() local
644 sta350->format = fmt & SND_SOC_DAIFMT_FORMAT_MASK; in sta350_set_dai_fmt()
661 return regmap_update_bits(sta350->regmap, STA350_CONFB, in sta350_set_dai_fmt()
679 struct sta350_priv *sta350 = snd_soc_component_get_drvdata(component); in sta350_hw_params() local
685 if (!sta350->mclk) { in sta350_hw_params()
692 ratio = sta350->mclk / rate; in sta350_hw_params()
729 switch (sta350->format) { in sta350_hw_params()
744 switch (sta350->format) { in sta350_hw_params()
759 switch (sta350->format) { in sta350_hw_params()
774 switch (sta350->format) { in sta350_hw_params()
791 ret = regmap_update_bits(sta350->regmap, STA350_CONFA, in sta350_hw_params()
797 ret = regmap_update_bits(sta350->regmap, STA350_CONFB, in sta350_hw_params()
806 static int sta350_startup_sequence(struct sta350_priv *sta350) in sta350_startup_sequence() argument
808 if (sta350->gpiod_power_down) in sta350_startup_sequence()
809 gpiod_set_value(sta350->gpiod_power_down, 1); in sta350_startup_sequence()
811 if (sta350->gpiod_nreset) { in sta350_startup_sequence()
812 gpiod_set_value(sta350->gpiod_nreset, 0); in sta350_startup_sequence()
814 gpiod_set_value(sta350->gpiod_nreset, 1); in sta350_startup_sequence()
833 struct sta350_priv *sta350 = snd_soc_component_get_drvdata(component); in sta350_set_bias_level() local
843 regmap_update_bits(sta350->regmap, STA350_CONFF, in sta350_set_bias_level()
851 ARRAY_SIZE(sta350->supplies), in sta350_set_bias_level()
852 sta350->supplies); in sta350_set_bias_level()
859 sta350_startup_sequence(sta350); in sta350_set_bias_level()
864 regmap_update_bits(sta350->regmap, STA350_CONFF, in sta350_set_bias_level()
872 regmap_update_bits(sta350->regmap, STA350_CONFF, in sta350_set_bias_level()
876 if (sta350->gpiod_power_down) in sta350_set_bias_level()
877 gpiod_set_value(sta350->gpiod_power_down, 0); in sta350_set_bias_level()
879 if (sta350->gpiod_nreset) in sta350_set_bias_level()
880 gpiod_set_value(sta350->gpiod_nreset, 0); in sta350_set_bias_level()
882 regulator_bulk_disable(ARRAY_SIZE(sta350->supplies), in sta350_set_bias_level()
883 sta350->supplies); in sta350_set_bias_level()
909 struct sta350_priv *sta350 = snd_soc_component_get_drvdata(component); in sta350_probe() local
910 struct sta350_platform_data *pdata = sta350->pdata; in sta350_probe()
913 ret = regulator_bulk_enable(ARRAY_SIZE(sta350->supplies), in sta350_probe()
914 sta350->supplies); in sta350_probe()
920 ret = sta350_startup_sequence(sta350); in sta350_probe()
933 regmap_update_bits(sta350->regmap, STA350_CONFA, in sta350_probe()
939 regmap_update_bits(sta350->regmap, STA350_CONFC, in sta350_probe()
943 regmap_update_bits(sta350->regmap, STA350_CONFC, in sta350_probe()
947 regmap_update_bits(sta350->regmap, in sta350_probe()
954 regmap_update_bits(sta350->regmap, STA350_CONFE, in sta350_probe()
958 regmap_update_bits(sta350->regmap, STA350_CONFE, in sta350_probe()
962 regmap_update_bits(sta350->regmap, STA350_CONFE, in sta350_probe()
966 regmap_update_bits(sta350->regmap, STA350_CONFE, in sta350_probe()
970 regmap_update_bits(sta350->regmap, STA350_CONFE, in sta350_probe()
975 regmap_update_bits(sta350->regmap, STA350_CONFF, in sta350_probe()
979 regmap_update_bits(sta350->regmap, STA350_CONFF, in sta350_probe()
985 regmap_update_bits(sta350->regmap, STA350_C1CFG, in sta350_probe()
989 regmap_update_bits(sta350->regmap, STA350_C2CFG, in sta350_probe()
993 regmap_update_bits(sta350->regmap, STA350_C3CFG, in sta350_probe()
999 regmap_update_bits(sta350->regmap, STA350_MISC1, in sta350_probe()
1003 regmap_update_bits(sta350->regmap, STA350_MISC1, in sta350_probe()
1007 regmap_update_bits(sta350->regmap, STA350_MISC1, in sta350_probe()
1011 regmap_update_bits(sta350->regmap, STA350_MISC1, in sta350_probe()
1016 regmap_update_bits(sta350->regmap, STA350_MISC2, in sta350_probe()
1023 sta350->coef_shadow[i] = 0x400000; in sta350_probe()
1025 sta350->coef_shadow[i] = 0x7fffff; in sta350_probe()
1026 sta350->coef_shadow[55] = 0x5a9df7; in sta350_probe()
1027 sta350->coef_shadow[56] = 0x7fffff; in sta350_probe()
1028 sta350->coef_shadow[59] = 0x7fffff; in sta350_probe()
1029 sta350->coef_shadow[60] = 0x400000; in sta350_probe()
1030 sta350->coef_shadow[61] = 0x400000; in sta350_probe()
1034 regulator_bulk_disable(ARRAY_SIZE(sta350->supplies), sta350->supplies); in sta350_probe()
1041 struct sta350_priv *sta350 = snd_soc_component_get_drvdata(component); in sta350_remove() local
1043 regulator_bulk_disable(ARRAY_SIZE(sta350->supplies), sta350->supplies); in sta350_remove()
1088 static int sta350_probe_dt(struct device *dev, struct sta350_priv *sta350) in sta350_probe_dt() argument
1173 sta350->pdata = pdata; in sta350_probe_dt()
1182 struct sta350_priv *sta350; in sta350_i2c_probe() local
1185 sta350 = devm_kzalloc(dev, sizeof(struct sta350_priv), GFP_KERNEL); in sta350_i2c_probe()
1186 if (!sta350) in sta350_i2c_probe()
1189 mutex_init(&sta350->coeff_lock); in sta350_i2c_probe()
1190 sta350->pdata = dev_get_platdata(dev); in sta350_i2c_probe()
1194 ret = sta350_probe_dt(dev, sta350); in sta350_i2c_probe()
1201 sta350->gpiod_nreset = devm_gpiod_get_optional(dev, "reset", in sta350_i2c_probe()
1203 if (IS_ERR(sta350->gpiod_nreset)) in sta350_i2c_probe()
1204 return PTR_ERR(sta350->gpiod_nreset); in sta350_i2c_probe()
1206 sta350->gpiod_power_down = devm_gpiod_get_optional(dev, "power-down", in sta350_i2c_probe()
1208 if (IS_ERR(sta350->gpiod_power_down)) in sta350_i2c_probe()
1209 return PTR_ERR(sta350->gpiod_power_down); in sta350_i2c_probe()
1212 for (i = 0; i < ARRAY_SIZE(sta350->supplies); i++) in sta350_i2c_probe()
1213 sta350->supplies[i].supply = sta350_supply_names[i]; in sta350_i2c_probe()
1215 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(sta350->supplies), in sta350_i2c_probe()
1216 sta350->supplies); in sta350_i2c_probe()
1222 sta350->regmap = devm_regmap_init_i2c(i2c, &sta350_regmap); in sta350_i2c_probe()
1223 if (IS_ERR(sta350->regmap)) { in sta350_i2c_probe()
1224 ret = PTR_ERR(sta350->regmap); in sta350_i2c_probe()
1229 i2c_set_clientdata(i2c, sta350); in sta350_i2c_probe()