Lines Matching refs:cs35l34

604 	struct cs35l34_private *cs35l34 = snd_soc_component_get_drvdata(component);  in cs35l34_dai_set_sysclk()  local
610 cs35l34->mclk_int = freq; in cs35l34_dai_set_sysclk()
614 cs35l34->mclk_int = freq; in cs35l34_dai_set_sysclk()
618 cs35l34->mclk_int = freq; in cs35l34_dai_set_sysclk()
622 cs35l34->mclk_int = freq / 2; in cs35l34_dai_set_sysclk()
626 cs35l34->mclk_int = freq / 2; in cs35l34_dai_set_sysclk()
630 cs35l34->mclk_int = freq / 2; in cs35l34_dai_set_sysclk()
634 cs35l34->mclk_int = 0; in cs35l34_dai_set_sysclk()
637 regmap_update_bits(cs35l34->regmap, CS35L34_MCLK_CTL, in cs35l34_dai_set_sysclk()
672 static int cs35l34_boost_inductor(struct cs35l34_private *cs35l34, in cs35l34_boost_inductor() argument
675 struct snd_soc_component *component = cs35l34->component; in cs35l34_boost_inductor()
679 regmap_write(cs35l34->regmap, CS35L34_BST_CONV_COEF_1, 0x24); in cs35l34_boost_inductor()
680 regmap_write(cs35l34->regmap, CS35L34_BST_CONV_COEF_2, 0x24); in cs35l34_boost_inductor()
681 regmap_write(cs35l34->regmap, CS35L34_BST_CONV_SLOPE_COMP, in cs35l34_boost_inductor()
683 regmap_write(cs35l34->regmap, CS35L34_BST_CONV_SW_FREQ, 0); in cs35l34_boost_inductor()
686 regmap_write(cs35l34->regmap, CS35L34_BST_CONV_COEF_1, 0x20); in cs35l34_boost_inductor()
687 regmap_write(cs35l34->regmap, CS35L34_BST_CONV_COEF_2, 0x20); in cs35l34_boost_inductor()
688 regmap_write(cs35l34->regmap, CS35L34_BST_CONV_SLOPE_COMP, in cs35l34_boost_inductor()
690 regmap_write(cs35l34->regmap, CS35L34_BST_CONV_SW_FREQ, 1); in cs35l34_boost_inductor()
693 regmap_write(cs35l34->regmap, CS35L34_BST_CONV_COEF_1, 0x20); in cs35l34_boost_inductor()
694 regmap_write(cs35l34->regmap, CS35L34_BST_CONV_COEF_2, 0x20); in cs35l34_boost_inductor()
695 regmap_write(cs35l34->regmap, CS35L34_BST_CONV_SLOPE_COMP, in cs35l34_boost_inductor()
697 regmap_write(cs35l34->regmap, CS35L34_BST_CONV_SW_FREQ, 2); in cs35l34_boost_inductor()
700 regmap_write(cs35l34->regmap, CS35L34_BST_CONV_COEF_1, 0x19); in cs35l34_boost_inductor()
701 regmap_write(cs35l34->regmap, CS35L34_BST_CONV_COEF_2, 0x25); in cs35l34_boost_inductor()
702 regmap_write(cs35l34->regmap, CS35L34_BST_CONV_SLOPE_COMP, in cs35l34_boost_inductor()
704 regmap_write(cs35l34->regmap, CS35L34_BST_CONV_SW_FREQ, 3); in cs35l34_boost_inductor()
717 struct cs35l34_private *cs35l34 = snd_soc_component_get_drvdata(component); in cs35l34_probe() local
722 regmap_update_bits(cs35l34->regmap, CS35L34_PROTECT_CTL, in cs35l34_probe()
728 regmap_write(cs35l34->regmap, CS35L34_PWRCTL2, 0xFD); in cs35l34_probe()
729 regmap_write(cs35l34->regmap, CS35L34_PWRCTL3, 0x1F); in cs35l34_probe()
732 regmap_update_bits(cs35l34->regmap, CS35L34_PROTECT_CTL, in cs35l34_probe()
736 if (cs35l34->pdata.boost_peak) in cs35l34_probe()
737 regmap_update_bits(cs35l34->regmap, CS35L34_BST_PEAK_I, in cs35l34_probe()
739 cs35l34->pdata.boost_peak); in cs35l34_probe()
741 if (cs35l34->pdata.gain_zc_disable) in cs35l34_probe()
742 regmap_update_bits(cs35l34->regmap, CS35L34_PROTECT_CTL, in cs35l34_probe()
745 regmap_update_bits(cs35l34->regmap, CS35L34_PROTECT_CTL, in cs35l34_probe()
748 if (cs35l34->pdata.aif_half_drv) in cs35l34_probe()
749 regmap_update_bits(cs35l34->regmap, CS35L34_ADSP_CLK_CTL, in cs35l34_probe()
752 if (cs35l34->pdata.digsft_disable) in cs35l34_probe()
753 regmap_update_bits(cs35l34->regmap, CS35L34_AMP_DIG_VOL_CTL, in cs35l34_probe()
756 if (cs35l34->pdata.amp_inv) in cs35l34_probe()
757 regmap_update_bits(cs35l34->regmap, CS35L34_AMP_DIG_VOL_CTL, in cs35l34_probe()
760 if (cs35l34->pdata.boost_ind) in cs35l34_probe()
761 ret = cs35l34_boost_inductor(cs35l34, cs35l34->pdata.boost_ind); in cs35l34_probe()
763 if (cs35l34->pdata.i2s_sdinloc) in cs35l34_probe()
764 regmap_update_bits(cs35l34->regmap, CS35L34_ADSP_I2S_CTL, in cs35l34_probe()
766 cs35l34->pdata.i2s_sdinloc << CS35L34_I2S_LOC_SHIFT); in cs35l34_probe()
768 if (cs35l34->pdata.tdm_rising_edge) in cs35l34_probe()
769 regmap_update_bits(cs35l34->regmap, CS35L34_ADSP_TDM_CTL, in cs35l34_probe()
863 struct cs35l34_private *cs35l34 = data; in cs35l34_irq_thread() local
864 struct snd_soc_component *component = cs35l34->component; in cs35l34_irq_thread()
870 regmap_read(cs35l34->regmap, CS35L34_INT_STATUS_4, &sticky4); in cs35l34_irq_thread()
871 regmap_read(cs35l34->regmap, CS35L34_INT_STATUS_3, &sticky3); in cs35l34_irq_thread()
872 regmap_read(cs35l34->regmap, CS35L34_INT_STATUS_2, &sticky2); in cs35l34_irq_thread()
873 regmap_read(cs35l34->regmap, CS35L34_INT_STATUS_1, &sticky1); in cs35l34_irq_thread()
875 regmap_read(cs35l34->regmap, CS35L34_INT_MASK_4, &mask4); in cs35l34_irq_thread()
876 regmap_read(cs35l34->regmap, CS35L34_INT_MASK_3, &mask3); in cs35l34_irq_thread()
877 regmap_read(cs35l34->regmap, CS35L34_INT_MASK_2, &mask2); in cs35l34_irq_thread()
878 regmap_read(cs35l34->regmap, CS35L34_INT_MASK_1, &mask1); in cs35l34_irq_thread()
884 regmap_read(cs35l34->regmap, CS35L34_INT_STATUS_1, &current1); in cs35l34_irq_thread()
892 regmap_update_bits(cs35l34->regmap, in cs35l34_irq_thread()
895 regmap_update_bits(cs35l34->regmap, in cs35l34_irq_thread()
899 regmap_update_bits(cs35l34->regmap, in cs35l34_irq_thread()
916 regmap_update_bits(cs35l34->regmap, in cs35l34_irq_thread()
919 regmap_update_bits(cs35l34->regmap, in cs35l34_irq_thread()
923 regmap_update_bits(cs35l34->regmap, in cs35l34_irq_thread()
936 regmap_update_bits(cs35l34->regmap, in cs35l34_irq_thread()
939 regmap_update_bits(cs35l34->regmap, in cs35l34_irq_thread()
943 regmap_update_bits(cs35l34->regmap, in cs35l34_irq_thread()
956 regmap_update_bits(cs35l34->regmap, in cs35l34_irq_thread()
959 regmap_update_bits(cs35l34->regmap, in cs35l34_irq_thread()
963 regmap_update_bits(cs35l34->regmap, in cs35l34_irq_thread()
971 regmap_update_bits(cs35l34->regmap, CS35L34_PWRCTL2, in cs35l34_irq_thread()
973 regmap_update_bits(cs35l34->regmap, CS35L34_PWRCTL1, in cs35l34_irq_thread()
979 regmap_update_bits(cs35l34->regmap, CS35L34_PWRCTL2, in cs35l34_irq_thread()
981 regmap_update_bits(cs35l34->regmap, CS35L34_PWRCTL1, in cs35l34_irq_thread()
996 struct cs35l34_private *cs35l34; in cs35l34_i2c_probe() local
1004 cs35l34 = devm_kzalloc(&i2c_client->dev, sizeof(*cs35l34), GFP_KERNEL); in cs35l34_i2c_probe()
1005 if (!cs35l34) in cs35l34_i2c_probe()
1008 i2c_set_clientdata(i2c_client, cs35l34); in cs35l34_i2c_probe()
1009 cs35l34->regmap = devm_regmap_init_i2c(i2c_client, &cs35l34_regmap); in cs35l34_i2c_probe()
1010 if (IS_ERR(cs35l34->regmap)) { in cs35l34_i2c_probe()
1011 ret = PTR_ERR(cs35l34->regmap); in cs35l34_i2c_probe()
1016 cs35l34->num_core_supplies = ARRAY_SIZE(cs35l34_core_supplies); in cs35l34_i2c_probe()
1018 cs35l34->core_supplies[i].supply = cs35l34_core_supplies[i]; in cs35l34_i2c_probe()
1021 cs35l34->num_core_supplies, in cs35l34_i2c_probe()
1022 cs35l34->core_supplies); in cs35l34_i2c_probe()
1029 ret = regulator_bulk_enable(cs35l34->num_core_supplies, in cs35l34_i2c_probe()
1030 cs35l34->core_supplies); in cs35l34_i2c_probe()
1038 cs35l34->pdata = *pdata; in cs35l34_i2c_probe()
1051 cs35l34->pdata = *pdata; in cs35l34_i2c_probe()
1056 "cs35l34", cs35l34); in cs35l34_i2c_probe()
1060 cs35l34->reset_gpio = devm_gpiod_get_optional(&i2c_client->dev, in cs35l34_i2c_probe()
1062 if (IS_ERR(cs35l34->reset_gpio)) in cs35l34_i2c_probe()
1063 return PTR_ERR(cs35l34->reset_gpio); in cs35l34_i2c_probe()
1065 gpiod_set_value_cansleep(cs35l34->reset_gpio, 1); in cs35l34_i2c_probe()
1069 ret = regmap_read(cs35l34->regmap, CS35L34_DEVID_AB, &reg); in cs35l34_i2c_probe()
1072 ret = regmap_read(cs35l34->regmap, CS35L34_DEVID_CD, &reg); in cs35l34_i2c_probe()
1074 ret = regmap_read(cs35l34->regmap, CS35L34_DEVID_E, &reg); in cs35l34_i2c_probe()
1085 ret = regmap_read(cs35l34->regmap, CS35L34_REV_ID, &reg); in cs35l34_i2c_probe()
1096 regmap_update_bits(cs35l34->regmap, CS35L34_INT_MASK_1, in cs35l34_i2c_probe()
1100 regmap_update_bits(cs35l34->regmap, CS35L34_INT_MASK_3, in cs35l34_i2c_probe()
1119 regulator_bulk_disable(cs35l34->num_core_supplies, in cs35l34_i2c_probe()
1120 cs35l34->core_supplies); in cs35l34_i2c_probe()
1127 struct cs35l34_private *cs35l34 = i2c_get_clientdata(client); in cs35l34_i2c_remove() local
1129 gpiod_set_value_cansleep(cs35l34->reset_gpio, 0); in cs35l34_i2c_remove()
1132 regulator_bulk_disable(cs35l34->num_core_supplies, in cs35l34_i2c_remove()
1133 cs35l34->core_supplies); in cs35l34_i2c_remove()
1140 struct cs35l34_private *cs35l34 = dev_get_drvdata(dev); in cs35l34_runtime_resume() local
1143 ret = regulator_bulk_enable(cs35l34->num_core_supplies, in cs35l34_runtime_resume()
1144 cs35l34->core_supplies); in cs35l34_runtime_resume()
1152 regcache_cache_only(cs35l34->regmap, false); in cs35l34_runtime_resume()
1154 gpiod_set_value_cansleep(cs35l34->reset_gpio, 1); in cs35l34_runtime_resume()
1157 ret = regcache_sync(cs35l34->regmap); in cs35l34_runtime_resume()
1164 regcache_cache_only(cs35l34->regmap, true); in cs35l34_runtime_resume()
1165 regulator_bulk_disable(cs35l34->num_core_supplies, in cs35l34_runtime_resume()
1166 cs35l34->core_supplies); in cs35l34_runtime_resume()
1173 struct cs35l34_private *cs35l34 = dev_get_drvdata(dev); in cs35l34_runtime_suspend() local
1175 regcache_cache_only(cs35l34->regmap, true); in cs35l34_runtime_suspend()
1176 regcache_mark_dirty(cs35l34->regmap); in cs35l34_runtime_suspend()
1178 gpiod_set_value_cansleep(cs35l34->reset_gpio, 0); in cs35l34_runtime_suspend()
1180 regulator_bulk_disable(cs35l34->num_core_supplies, in cs35l34_runtime_suspend()
1181 cs35l34->core_supplies); in cs35l34_runtime_suspend()