Lines Matching refs:adcx140

634 static int adcx140_reset(struct adcx140_priv *adcx140)  in adcx140_reset()  argument
638 if (adcx140->gpio_reset) { in adcx140_reset()
639 gpiod_direction_output(adcx140->gpio_reset, 0); in adcx140_reset()
642 gpiod_direction_output(adcx140->gpio_reset, 1); in adcx140_reset()
644 ret = regmap_write(adcx140->regmap, ADCX140_SW_RESET, in adcx140_reset()
654 static void adcx140_pwr_ctrl(struct adcx140_priv *adcx140, bool power_state) in adcx140_pwr_ctrl() argument
661 if (adcx140->micbias_vg && power_state) in adcx140_pwr_ctrl()
664 regmap_update_bits(adcx140->regmap, ADCX140_PWR_CFG, in adcx140_pwr_ctrl()
673 struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component); in adcx140_hw_params() local
695 adcx140_pwr_ctrl(adcx140, false); in adcx140_hw_params()
700 adcx140_pwr_ctrl(adcx140, true); in adcx140_hw_params()
709 struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component); in adcx140_set_dai_fmt() local
768 adcx140->dai_fmt = fmt & SND_SOC_DAIFMT_FORMAT_MASK; in adcx140_set_dai_fmt()
770 adcx140_pwr_ctrl(adcx140, false); in adcx140_set_dai_fmt()
784 adcx140_pwr_ctrl(adcx140, true); in adcx140_set_dai_fmt()
794 struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component); in adcx140_set_dai_tdm_slot() local
815 adcx140->tdm_delay = lsb; in adcx140_set_dai_tdm_slot()
816 adcx140->slot_width = slot_width; in adcx140_set_dai_tdm_slot()
827 static int adcx140_configure_gpo(struct adcx140_priv *adcx140) in adcx140_configure_gpo() argument
835 ret = device_property_read_u32_array(adcx140->dev, in adcx140_configure_gpo()
843 dev_err(adcx140->dev, "GPO%d config out of range\n", i + 1); in adcx140_configure_gpo()
848 dev_err(adcx140->dev, "GPO%d drive out of range\n", i + 1); in adcx140_configure_gpo()
854 ret = regmap_write(adcx140->regmap, ADCX140_GPO_CFG0 + i, in adcx140_configure_gpo()
864 static int adcx140_configure_gpio(struct adcx140_priv *adcx140) in adcx140_configure_gpio() argument
871 gpio_count = device_property_count_u32(adcx140->dev, in adcx140_configure_gpio()
879 ret = device_property_read_u32_array(adcx140->dev, "ti,gpio-config", in adcx140_configure_gpio()
885 dev_err(adcx140->dev, "GPIO config out of range\n"); in adcx140_configure_gpio()
890 dev_err(adcx140->dev, "GPIO drive out of range\n"); in adcx140_configure_gpio()
897 return regmap_write(adcx140->regmap, ADCX140_GPIO_CFG0, gpio_output_val); in adcx140_configure_gpio()
902 struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component); in adcx140_codec_probe() local
917 ret = device_property_read_u32(adcx140->dev, "ti,mic-bias-source", in adcx140_codec_probe()
921 adcx140->micbias_vg = false; in adcx140_codec_probe()
923 adcx140->micbias_vg = true; in adcx140_codec_probe()
926 ret = device_property_read_u32(adcx140->dev, "ti,vref-source", in adcx140_codec_probe()
932 dev_err(adcx140->dev, "Mic Bias source value is invalid\n"); in adcx140_codec_probe()
938 ret = adcx140_reset(adcx140); in adcx140_codec_probe()
942 if (adcx140->supply_areg == NULL) in adcx140_codec_probe()
945 ret = regmap_write(adcx140->regmap, ADCX140_SLEEP_CFG, sleep_cfg_val); in adcx140_codec_probe()
947 dev_err(adcx140->dev, "setting sleep config failed %d\n", ret); in adcx140_codec_probe()
954 pdm_count = device_property_count_u32(adcx140->dev, in adcx140_codec_probe()
957 ret = device_property_read_u32_array(adcx140->dev, in adcx140_codec_probe()
966 ret = regmap_write(adcx140->regmap, ADCX140_PDM_CFG, in adcx140_codec_probe()
972 gpi_count = device_property_count_u32(adcx140->dev, "ti,gpi-config"); in adcx140_codec_probe()
974 ret = device_property_read_u32_array(adcx140->dev, in adcx140_codec_probe()
983 ret = regmap_write(adcx140->regmap, ADCX140_GPI_CFG0, in adcx140_codec_probe()
991 ret = regmap_write(adcx140->regmap, ADCX140_GPI_CFG1, in adcx140_codec_probe()
997 ret = adcx140_configure_gpio(adcx140); in adcx140_codec_probe()
1001 ret = adcx140_configure_gpo(adcx140); in adcx140_codec_probe()
1005 ret = regmap_update_bits(adcx140->regmap, ADCX140_BIAS_CFG, in adcx140_codec_probe()
1009 dev_err(adcx140->dev, "setting MIC bias failed %d\n", ret); in adcx140_codec_probe()
1011 tx_high_z = device_property_read_bool(adcx140->dev, "ti,asi-tx-drive"); in adcx140_codec_probe()
1013 ret = regmap_update_bits(adcx140->regmap, ADCX140_ASI_CFG0, in adcx140_codec_probe()
1016 dev_err(adcx140->dev, "Setting Tx drive failed %d\n", ret); in adcx140_codec_probe()
1021 adcx140_pwr_ctrl(adcx140, true); in adcx140_codec_probe()
1029 struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component); in adcx140_set_bias_level() local
1035 adcx140_pwr_ctrl(adcx140, true); in adcx140_set_bias_level()
1038 adcx140_pwr_ctrl(adcx140, false); in adcx140_set_bias_level()
1087 struct adcx140_priv *adcx140; in adcx140_i2c_probe() local
1090 adcx140 = devm_kzalloc(&i2c->dev, sizeof(*adcx140), GFP_KERNEL); in adcx140_i2c_probe()
1091 if (!adcx140) in adcx140_i2c_probe()
1094 adcx140->dev = &i2c->dev; in adcx140_i2c_probe()
1096 adcx140->gpio_reset = devm_gpiod_get_optional(adcx140->dev, in adcx140_i2c_probe()
1098 if (IS_ERR(adcx140->gpio_reset)) in adcx140_i2c_probe()
1101 adcx140->supply_areg = devm_regulator_get_optional(adcx140->dev, in adcx140_i2c_probe()
1103 if (IS_ERR(adcx140->supply_areg)) { in adcx140_i2c_probe()
1104 if (PTR_ERR(adcx140->supply_areg) == -EPROBE_DEFER) in adcx140_i2c_probe()
1107 adcx140->supply_areg = NULL; in adcx140_i2c_probe()
1109 ret = regulator_enable(adcx140->supply_areg); in adcx140_i2c_probe()
1111 dev_err(adcx140->dev, "Failed to enable areg\n"); in adcx140_i2c_probe()
1116 adcx140->regmap = devm_regmap_init_i2c(i2c, &adcx140_i2c_regmap); in adcx140_i2c_probe()
1117 if (IS_ERR(adcx140->regmap)) { in adcx140_i2c_probe()
1118 ret = PTR_ERR(adcx140->regmap); in adcx140_i2c_probe()
1124 i2c_set_clientdata(i2c, adcx140); in adcx140_i2c_probe()