Lines Matching refs:adcx140

617 	struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(codec);  in adcx140_phase_calib_get()  local
619 value->value.integer.value[0] = adcx140->phase_calib_on ? 1 : 0; in adcx140_phase_calib_get()
630 struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(codec); in adcx140_phase_calib_put() local
634 if (adcx140->phase_calib_on != v) { in adcx140_phase_calib_put()
635 adcx140->phase_calib_on = v; in adcx140_phase_calib_put()
680 static int adcx140_reset(struct adcx140_priv *adcx140) in adcx140_reset() argument
684 if (adcx140->gpio_reset) { in adcx140_reset()
685 gpiod_direction_output(adcx140->gpio_reset, 0); in adcx140_reset()
688 gpiod_direction_output(adcx140->gpio_reset, 1); in adcx140_reset()
690 ret = regmap_write(adcx140->regmap, ADCX140_SW_RESET, in adcx140_reset()
700 static void adcx140_pwr_ctrl(struct adcx140_priv *adcx140, bool power_state) in adcx140_pwr_ctrl() argument
704 struct snd_soc_component *component = adcx140->component; in adcx140_pwr_ctrl()
709 if (adcx140->micbias_vg && power_state) in adcx140_pwr_ctrl()
713 ret = regmap_write(adcx140->regmap, ADCX140_PHASE_CALIB, in adcx140_pwr_ctrl()
714 adcx140->phase_calib_on ? 0x00 : 0x40); in adcx140_pwr_ctrl()
720 regmap_update_bits(adcx140->regmap, ADCX140_PWR_CFG, in adcx140_pwr_ctrl()
729 struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component); in adcx140_hw_params() local
751 adcx140_pwr_ctrl(adcx140, false); in adcx140_hw_params()
756 adcx140_pwr_ctrl(adcx140, true); in adcx140_hw_params()
765 struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component); in adcx140_set_dai_fmt() local
822 adcx140->dai_fmt = fmt & SND_SOC_DAIFMT_FORMAT_MASK; in adcx140_set_dai_fmt()
824 adcx140_pwr_ctrl(adcx140, false); in adcx140_set_dai_fmt()
838 adcx140_pwr_ctrl(adcx140, true); in adcx140_set_dai_fmt()
848 struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component); in adcx140_set_dai_tdm_slot() local
870 adcx140->slot_width = slot_width; in adcx140_set_dai_tdm_slot()
881 static int adcx140_configure_gpo(struct adcx140_priv *adcx140) in adcx140_configure_gpo() argument
889 ret = device_property_read_u32_array(adcx140->dev, in adcx140_configure_gpo()
897 dev_err(adcx140->dev, "GPO%d config out of range\n", i + 1); in adcx140_configure_gpo()
902 dev_err(adcx140->dev, "GPO%d drive out of range\n", i + 1); in adcx140_configure_gpo()
908 ret = regmap_write(adcx140->regmap, ADCX140_GPO_CFG0 + i, in adcx140_configure_gpo()
918 static int adcx140_configure_gpio(struct adcx140_priv *adcx140) in adcx140_configure_gpio() argument
925 gpio_count = device_property_count_u32(adcx140->dev, in adcx140_configure_gpio()
933 ret = device_property_read_u32_array(adcx140->dev, "ti,gpio-config", in adcx140_configure_gpio()
939 dev_err(adcx140->dev, "GPIO config out of range\n"); in adcx140_configure_gpio()
944 dev_err(adcx140->dev, "GPIO drive out of range\n"); in adcx140_configure_gpio()
951 return regmap_write(adcx140->regmap, ADCX140_GPIO_CFG0, gpio_output_val); in adcx140_configure_gpio()
956 struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component); in adcx140_codec_probe() local
971 ret = device_property_read_u32(adcx140->dev, "ti,mic-bias-source", in adcx140_codec_probe()
975 adcx140->micbias_vg = false; in adcx140_codec_probe()
977 adcx140->micbias_vg = true; in adcx140_codec_probe()
980 ret = device_property_read_u32(adcx140->dev, "ti,vref-source", in adcx140_codec_probe()
986 dev_err(adcx140->dev, "Mic Bias source value is invalid\n"); in adcx140_codec_probe()
992 ret = adcx140_reset(adcx140); in adcx140_codec_probe()
996 if (adcx140->supply_areg == NULL) in adcx140_codec_probe()
999 ret = regmap_write(adcx140->regmap, ADCX140_SLEEP_CFG, sleep_cfg_val); in adcx140_codec_probe()
1001 dev_err(adcx140->dev, "setting sleep config failed %d\n", ret); in adcx140_codec_probe()
1008 pdm_count = device_property_count_u32(adcx140->dev, in adcx140_codec_probe()
1011 ret = device_property_read_u32_array(adcx140->dev, in adcx140_codec_probe()
1020 ret = regmap_write(adcx140->regmap, ADCX140_PDM_CFG, in adcx140_codec_probe()
1026 gpi_count = device_property_count_u32(adcx140->dev, "ti,gpi-config"); in adcx140_codec_probe()
1028 ret = device_property_read_u32_array(adcx140->dev, in adcx140_codec_probe()
1037 ret = regmap_write(adcx140->regmap, ADCX140_GPI_CFG0, in adcx140_codec_probe()
1045 ret = regmap_write(adcx140->regmap, ADCX140_GPI_CFG1, in adcx140_codec_probe()
1051 ret = adcx140_configure_gpio(adcx140); in adcx140_codec_probe()
1055 ret = adcx140_configure_gpo(adcx140); in adcx140_codec_probe()
1059 ret = regmap_update_bits(adcx140->regmap, ADCX140_BIAS_CFG, in adcx140_codec_probe()
1063 dev_err(adcx140->dev, "setting MIC bias failed %d\n", ret); in adcx140_codec_probe()
1065 tx_high_z = device_property_read_bool(adcx140->dev, "ti,asi-tx-drive"); in adcx140_codec_probe()
1067 ret = regmap_update_bits(adcx140->regmap, ADCX140_ASI_CFG0, in adcx140_codec_probe()
1070 dev_err(adcx140->dev, "Setting Tx drive failed %d\n", ret); in adcx140_codec_probe()
1075 adcx140_pwr_ctrl(adcx140, true); in adcx140_codec_probe()
1083 struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component); in adcx140_set_bias_level() local
1089 adcx140_pwr_ctrl(adcx140, true); in adcx140_set_bias_level()
1092 adcx140_pwr_ctrl(adcx140, false); in adcx140_set_bias_level()
1141 struct adcx140_priv *adcx140 = arg; in adcx140_disable_regulator() local
1143 regulator_disable(adcx140->supply_areg); in adcx140_disable_regulator()
1148 struct adcx140_priv *adcx140; in adcx140_i2c_probe() local
1151 adcx140 = devm_kzalloc(&i2c->dev, sizeof(*adcx140), GFP_KERNEL); in adcx140_i2c_probe()
1152 if (!adcx140) in adcx140_i2c_probe()
1155 adcx140->phase_calib_on = false; in adcx140_i2c_probe()
1156 adcx140->dev = &i2c->dev; in adcx140_i2c_probe()
1158 adcx140->gpio_reset = devm_gpiod_get_optional(adcx140->dev, in adcx140_i2c_probe()
1160 if (IS_ERR(adcx140->gpio_reset)) in adcx140_i2c_probe()
1163 adcx140->supply_areg = devm_regulator_get_optional(adcx140->dev, in adcx140_i2c_probe()
1165 if (IS_ERR(adcx140->supply_areg)) { in adcx140_i2c_probe()
1166 if (PTR_ERR(adcx140->supply_areg) == -EPROBE_DEFER) in adcx140_i2c_probe()
1169 adcx140->supply_areg = NULL; in adcx140_i2c_probe()
1171 ret = regulator_enable(adcx140->supply_areg); in adcx140_i2c_probe()
1173 dev_err(adcx140->dev, "Failed to enable areg\n"); in adcx140_i2c_probe()
1177 ret = devm_add_action_or_reset(&i2c->dev, adcx140_disable_regulator, adcx140); in adcx140_i2c_probe()
1182 adcx140->regmap = devm_regmap_init_i2c(i2c, &adcx140_i2c_regmap); in adcx140_i2c_probe()
1183 if (IS_ERR(adcx140->regmap)) { in adcx140_i2c_probe()
1184 ret = PTR_ERR(adcx140->regmap); in adcx140_i2c_probe()
1190 i2c_set_clientdata(i2c, adcx140); in adcx140_i2c_probe()