Lines Matching +full:pdm +full:- +full:mute

2  * ALSA SoC ES7202 pdm adc driver
4 * Author: David Yang, <yangxiaohua@everest-semi.com>
14 * ES7202 is 2-ch ADC with PDM interface
34 #include <sound/soc-dapm.h>
77 if (!client || !client->adapter) in es7202_read()
78 return -1; in es7202_read()
83 return -1; in es7202_read()
89 return -1; in es7202_read()
100 if (!client || !client->adapter) in es7202_write()
101 return -1; in es7202_write()
108 printk("es7202_write error->[REG-0x%02x,val-0x%02x]\n", in es7202_write()
110 return -1; in es7202_write()
161 ucontrol->value.integer.value[0] & 0x0f, in es7202_micboost1_setting_set()
171 ucontrol->value.integer.value[0] = val & 0x0f; in es7202_micboost1_setting_get()
180 ucontrol->value.integer.value[0] & 0x0f, i2c_ctl[0]); in es7202_micboost2_setting_set()
189 ucontrol->value.integer.value[0] = val & 0x0f; in es7202_micboost2_setting_get()
199 ucontrol->value.integer.value[0] & 0x0f, i2c_ctl[1]); in es7202_micboost3_setting_set()
208 ucontrol->value.integer.value[0] = val & 0x0f; in es7202_micboost3_setting_get()
217 ucontrol->value.integer.value[0] & 0x0f, i2c_ctl[1]); in es7202_micboost4_setting_set()
226 ucontrol->value.integer.value[0] = val & 0x0f; in es7202_micboost4_setting_get()
236 ucontrol->value.integer.value[0] & 0x0f, i2c_ctl[2]); in es7202_micboost5_setting_set()
245 ucontrol->value.integer.value[0] = val & 0x0f; in es7202_micboost5_setting_get()
254 ucontrol->value.integer.value[0] & 0x0f, i2c_ctl[2]); in es7202_micboost6_setting_set()
263 ucontrol->value.integer.value[0] = val & 0x0f; in es7202_micboost6_setting_get()
274 ucontrol->value.integer.value[0] & 0x0f, i2c_ctl[3]); in es7202_micboost7_setting_set()
283 ucontrol->value.integer.value[0] = val & 0x0f; in es7202_micboost7_setting_get()
292 ucontrol->value.integer.value[0] & 0x0f, i2c_ctl[3]); in es7202_micboost8_setting_set()
301 ucontrol->value.integer.value[0] = val & 0x0f; in es7202_micboost8_setting_get()
312 ucontrol->value.integer.value[0] & 0x0f, i2c_ctl[4]); in es7202_micboost9_setting_set()
321 ucontrol->value.integer.value[0] = val & 0x0f; in es7202_micboost9_setting_get()
330 ucontrol->value.integer.value[0] & 0x0f, i2c_ctl[4]); in es7202_micboost10_setting_set()
339 ucontrol->value.integer.value[0] = val & 0x0f; in es7202_micboost10_setting_get()
350 ucontrol->value.integer.value[0] & 0x0f, i2c_ctl[5]); in es7202_micboost11_setting_set()
359 ucontrol->value.integer.value[0] = val & 0x0f; in es7202_micboost11_setting_get()
368 ucontrol->value.integer.value[0] & 0x0f, i2c_ctl[5]); in es7202_micboost12_setting_set()
377 ucontrol->value.integer.value[0] = val & 0x0f; in es7202_micboost12_setting_get()
388 ucontrol->value.integer.value[0] & 0x0f, i2c_ctl[6]); in es7202_micboost13_setting_set()
397 ucontrol->value.integer.value[0] = val & 0x0f; in es7202_micboost13_setting_get()
406 ucontrol->value.integer.value[0] & 0x0f, i2c_ctl[6]); in es7202_micboost14_setting_set()
415 ucontrol->value.integer.value[0] = val & 0x0f; in es7202_micboost14_setting_get()
426 ucontrol->value.integer.value[0] & 0x0f, i2c_ctl[7]); in es7202_micboost15_setting_set()
435 ucontrol->value.integer.value[0] = val & 0x0f; in es7202_micboost15_setting_get()
444 ucontrol->value.integer.value[0] & 0x0f, i2c_ctl[7]); in es7202_micboost16_setting_set()
453 ucontrol->value.integer.value[0] = val & 0x0f; in es7202_micboost16_setting_get()
541 static int es7202_mute(struct snd_soc_dai *dai, int mute, int stream) in es7202_mute() argument
546 if (mute) { in es7202_mute()
562 .name = "es7202 pdm 0",
576 .name = "es7202 pdm 1",
590 .name = "es7202 pdm 2",
604 .name = "es7202 pdm 3",
618 .name = "es7202 pdm 4",
632 .name = "es7202 pdm 5",
646 .name = "es7202 pdm 6",
660 .name = "es7202 pdm 7",
724 switch(es7202->pwr_vdd_voltage) { in es7202_probe()
801 while(flag--) { in es7202_store()
802 es7202_write(reg, value_w, es7202->i2c); in es7202_store()
812 es7202_read(reg, &value_r, es7202->i2c); in es7202_store()
848 int ret = -1; in es7202_i2c_probe()
850 dev_info(&i2c->dev, "probe\n"); in es7202_i2c_probe()
851 es7202 = devm_kzalloc(&i2c->dev, sizeof(*es7202), GFP_KERNEL); in es7202_i2c_probe()
853 return -ENOMEM; in es7202_i2c_probe()
854 es7202->i2c = i2c; in es7202_i2c_probe()
855 es7202->vdd = devm_regulator_get_optional(&i2c->dev, "power"); in es7202_i2c_probe()
856 if (IS_ERR(es7202->vdd)) { in es7202_i2c_probe()
857 if (PTR_ERR(es7202->vdd) == -EPROBE_DEFER) in es7202_i2c_probe()
858 return -EPROBE_DEFER; in es7202_i2c_probe()
859 dev_warn(&i2c->dev, "power-supply get fail, use 3v3 as default\n"); in es7202_i2c_probe()
860 es7202->pwr_vdd_voltage = VDD_3V3; in es7202_i2c_probe()
862 uV = regulator_get_voltage(es7202->vdd); in es7202_i2c_probe()
863 dev_info(&i2c->dev, "probe power-supply %duV\n", uV); in es7202_i2c_probe()
865 es7202->pwr_vdd_voltage = VDD_1V8; in es7202_i2c_probe()
867 es7202->pwr_vdd_voltage = VDD_3V3; in es7202_i2c_probe()
869 dev_set_drvdata(&i2c->dev, es7202); in es7202_i2c_probe()
870 if (id->driver_data < ADC_DEV_MAXNUM) { in es7202_i2c_probe()
871 i2c_ctl[id->driver_data] = i2c; in es7202_i2c_probe()
872 dev_info(&i2c->dev, "probe reigister es7202 dai(%s) component\n", in es7202_i2c_probe()
873 es7202_dai[id->driver_data]->name); in es7202_i2c_probe()
874 ret = devm_snd_soc_register_component(&i2c->dev, &soc_codec_dev_es7202, in es7202_i2c_probe()
875 es7202_dai[id->driver_data], 1); in es7202_i2c_probe()
880 ret = sysfs_create_group(&i2c->dev.kobj, &es7202_debug_attr_group); in es7202_i2c_probe()
882 dev_err(&i2c->dev, "failed to create attr group\n"); in es7202_i2c_probe()
889 sysfs_remove_group(&client->dev.kobj, &es7202_debug_attr_group); in es7202_i2c_remove()
904 struct i2c_adapter *adapter = client->adapter; in es7202_i2c_detect()
906 if (adapter->nr == ES7202_I2C_BUS_NUM) { in es7202_i2c_detect()
907 if (client->addr == 0x30) { in es7202_i2c_detect()
908 strlcpy(info->type, "ES7202_PDM_ADC_1", I2C_NAME_SIZE); in es7202_i2c_detect()
910 } else if (client->addr == 0x31) { in es7202_i2c_detect()
911 strlcpy(info->type, "ES7202_PDM_ADC_2", I2C_NAME_SIZE); in es7202_i2c_detect()
913 } else if (client->addr == 0x32) { in es7202_i2c_detect()
914 strlcpy(info->type, "ES7202_PDM_ADC_3", I2C_NAME_SIZE); in es7202_i2c_detect()
916 } else if (client->addr == 0x33) { in es7202_i2c_detect()
917 strlcpy(info->type, "ES7202_PDM_ADC_4", I2C_NAME_SIZE); in es7202_i2c_detect()
919 }else if (client->addr == 0x34) { in es7202_i2c_detect()
920 strlcpy(info->type, "ES7202_PDM_ADC_5", I2C_NAME_SIZE); in es7202_i2c_detect()
922 }else if (client->addr == 0x35) { in es7202_i2c_detect()
923 strlcpy(info->type, "ES7202_PDM_ADC_6", I2C_NAME_SIZE); in es7202_i2c_detect()
925 }else if (client->addr == 0x36) { in es7202_i2c_detect()
926 strlcpy(info->type, "ES7202_PDM_ADC_7", I2C_NAME_SIZE); in es7202_i2c_detect()
928 }else if (client->addr == 0x37) { in es7202_i2c_detect()
929 strlcpy(info->type, "ES7202_PDM_ADC_8", I2C_NAME_SIZE); in es7202_i2c_detect()
934 return -ENODEV; in es7202_i2c_detect()
1123 return -ENODEV; in es7202_modinit()
1131 return -ENODEV; in es7202_modinit()
1150 MODULE_DESCRIPTION("ASoC es7202 pdm adc driver");
1151 MODULE_AUTHOR(" David Yang, <yangxiaohua@everest-semi.com>>");