Lines Matching refs:adcx140

618 	struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(codec);  in adcx140_phase_calib_get()  local
620 value->value.integer.value[0] = adcx140->phase_calib_on ? 1 : 0; in adcx140_phase_calib_get()
631 struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(codec); in adcx140_phase_calib_put() local
635 if (adcx140->phase_calib_on != v) { in adcx140_phase_calib_put()
636 adcx140->phase_calib_on = v; in adcx140_phase_calib_put()
681 static int adcx140_reset(struct adcx140_priv *adcx140) in adcx140_reset() argument
685 if (adcx140->gpio_reset) { in adcx140_reset()
686 gpiod_direction_output(adcx140->gpio_reset, 0); in adcx140_reset()
689 gpiod_direction_output(adcx140->gpio_reset, 1); in adcx140_reset()
691 ret = regmap_write(adcx140->regmap, ADCX140_SW_RESET, in adcx140_reset()
701 static void adcx140_pwr_ctrl(struct adcx140_priv *adcx140, bool power_state) in adcx140_pwr_ctrl() argument
705 struct snd_soc_component *component = adcx140->component; in adcx140_pwr_ctrl()
710 if (adcx140->micbias_vg && power_state) in adcx140_pwr_ctrl()
714 ret = regmap_write(adcx140->regmap, ADCX140_PHASE_CALIB, in adcx140_pwr_ctrl()
715 adcx140->phase_calib_on ? 0x00 : 0x40); in adcx140_pwr_ctrl()
721 regmap_update_bits(adcx140->regmap, ADCX140_PWR_CFG, in adcx140_pwr_ctrl()
730 struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component); in adcx140_hw_params() local
752 adcx140_pwr_ctrl(adcx140, false); in adcx140_hw_params()
757 adcx140_pwr_ctrl(adcx140, true); in adcx140_hw_params()
766 struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component); in adcx140_set_dai_fmt() local
823 adcx140->dai_fmt = fmt & SND_SOC_DAIFMT_FORMAT_MASK; in adcx140_set_dai_fmt()
825 adcx140_pwr_ctrl(adcx140, false); in adcx140_set_dai_fmt()
839 adcx140_pwr_ctrl(adcx140, true); in adcx140_set_dai_fmt()
849 struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component); in adcx140_set_dai_tdm_slot() local
871 adcx140->slot_width = slot_width; in adcx140_set_dai_tdm_slot()
882 static int adcx140_configure_gpo(struct adcx140_priv *adcx140) in adcx140_configure_gpo() argument
890 ret = device_property_read_u32_array(adcx140->dev, in adcx140_configure_gpo()
898 dev_err(adcx140->dev, "GPO%d config out of range\n", i + 1); in adcx140_configure_gpo()
903 dev_err(adcx140->dev, "GPO%d drive out of range\n", i + 1); in adcx140_configure_gpo()
909 ret = regmap_write(adcx140->regmap, ADCX140_GPO_CFG0 + i, in adcx140_configure_gpo()
919 static int adcx140_configure_gpio(struct adcx140_priv *adcx140) in adcx140_configure_gpio() argument
926 gpio_count = device_property_count_u32(adcx140->dev, in adcx140_configure_gpio()
934 ret = device_property_read_u32_array(adcx140->dev, "ti,gpio-config", in adcx140_configure_gpio()
940 dev_err(adcx140->dev, "GPIO config out of range\n"); in adcx140_configure_gpio()
945 dev_err(adcx140->dev, "GPIO drive out of range\n"); in adcx140_configure_gpio()
952 return regmap_write(adcx140->regmap, ADCX140_GPIO_CFG0, gpio_output_val); in adcx140_configure_gpio()
957 struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component); in adcx140_codec_probe() local
972 ret = device_property_read_u32(adcx140->dev, "ti,mic-bias-source", in adcx140_codec_probe()
976 adcx140->micbias_vg = false; in adcx140_codec_probe()
978 adcx140->micbias_vg = true; in adcx140_codec_probe()
981 ret = device_property_read_u32(adcx140->dev, "ti,vref-source", in adcx140_codec_probe()
987 dev_err(adcx140->dev, "Mic Bias source value is invalid\n"); in adcx140_codec_probe()
993 ret = adcx140_reset(adcx140); in adcx140_codec_probe()
997 if (adcx140->supply_areg == NULL) in adcx140_codec_probe()
1000 ret = regmap_write(adcx140->regmap, ADCX140_SLEEP_CFG, sleep_cfg_val); in adcx140_codec_probe()
1002 dev_err(adcx140->dev, "setting sleep config failed %d\n", ret); in adcx140_codec_probe()
1009 pdm_count = device_property_count_u32(adcx140->dev, in adcx140_codec_probe()
1012 ret = device_property_read_u32_array(adcx140->dev, in adcx140_codec_probe()
1021 ret = regmap_write(adcx140->regmap, ADCX140_PDM_CFG, in adcx140_codec_probe()
1027 gpi_count = device_property_count_u32(adcx140->dev, "ti,gpi-config"); in adcx140_codec_probe()
1029 ret = device_property_read_u32_array(adcx140->dev, in adcx140_codec_probe()
1038 ret = regmap_write(adcx140->regmap, ADCX140_GPI_CFG0, in adcx140_codec_probe()
1046 ret = regmap_write(adcx140->regmap, ADCX140_GPI_CFG1, in adcx140_codec_probe()
1052 ret = adcx140_configure_gpio(adcx140); in adcx140_codec_probe()
1056 ret = adcx140_configure_gpo(adcx140); in adcx140_codec_probe()
1060 ret = regmap_update_bits(adcx140->regmap, ADCX140_BIAS_CFG, in adcx140_codec_probe()
1064 dev_err(adcx140->dev, "setting MIC bias failed %d\n", ret); in adcx140_codec_probe()
1066 tx_high_z = device_property_read_bool(adcx140->dev, "ti,asi-tx-drive"); in adcx140_codec_probe()
1068 ret = regmap_update_bits(adcx140->regmap, ADCX140_ASI_CFG0, in adcx140_codec_probe()
1071 dev_err(adcx140->dev, "Setting Tx drive failed %d\n", ret); in adcx140_codec_probe()
1076 adcx140_pwr_ctrl(adcx140, true); in adcx140_codec_probe()
1084 struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component); in adcx140_set_bias_level() local
1090 adcx140_pwr_ctrl(adcx140, true); in adcx140_set_bias_level()
1093 adcx140_pwr_ctrl(adcx140, false); in adcx140_set_bias_level()
1142 struct adcx140_priv *adcx140 = arg; in adcx140_disable_regulator() local
1144 regulator_disable(adcx140->supply_areg); in adcx140_disable_regulator()
1149 struct adcx140_priv *adcx140; in adcx140_i2c_probe() local
1152 adcx140 = devm_kzalloc(&i2c->dev, sizeof(*adcx140), GFP_KERNEL); in adcx140_i2c_probe()
1153 if (!adcx140) in adcx140_i2c_probe()
1156 adcx140->phase_calib_on = false; in adcx140_i2c_probe()
1157 adcx140->dev = &i2c->dev; in adcx140_i2c_probe()
1159 adcx140->gpio_reset = devm_gpiod_get_optional(adcx140->dev, in adcx140_i2c_probe()
1161 if (IS_ERR(adcx140->gpio_reset)) in adcx140_i2c_probe()
1164 adcx140->supply_areg = devm_regulator_get_optional(adcx140->dev, in adcx140_i2c_probe()
1166 if (IS_ERR(adcx140->supply_areg)) { in adcx140_i2c_probe()
1167 if (PTR_ERR(adcx140->supply_areg) == -EPROBE_DEFER) in adcx140_i2c_probe()
1170 adcx140->supply_areg = NULL; in adcx140_i2c_probe()
1172 ret = regulator_enable(adcx140->supply_areg); in adcx140_i2c_probe()
1174 dev_err(adcx140->dev, "Failed to enable areg\n"); in adcx140_i2c_probe()
1178 ret = devm_add_action_or_reset(&i2c->dev, adcx140_disable_regulator, adcx140); in adcx140_i2c_probe()
1183 adcx140->regmap = devm_regmap_init_i2c(i2c, &adcx140_i2c_regmap); in adcx140_i2c_probe()
1184 if (IS_ERR(adcx140->regmap)) { in adcx140_i2c_probe()
1185 ret = PTR_ERR(adcx140->regmap); in adcx140_i2c_probe()
1191 i2c_set_clientdata(i2c, adcx140); in adcx140_i2c_probe()