Lines Matching +full:mclk +full:- +full:fs

4  * Author:      David Yang, <yangxiaohua@everest-semi.com>
14 * ES7210 is a 4-ch ADC of Everest
30 #include <sound/soc-dapm.h>
96 /* to set internal mclk and adclrclk ratio */
101 #define RATIO_64 0x41 /* mclk from bclk pin */
114 struct clk *mclk; member
133 0x32, 0x40, 0x02, 0x04, 0x01, 0x00, 0x00, 0x20, /* 0 - 7 */
134 0x10, 0x40, 0x40, 0x00, 0x00, 0x09, 0x00, 0x00, /* 8 - F */
135 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 10 - 17 */
136 0xf7, 0xf7, 0x00, 0xbf, 0xbf, 0xbf, 0xbf, 0x00, /* 18 - 1f */
137 0x26, 0x26, 0x06, 0x26, 0x00, 0x00, 0x00, 0x00, /* 20 - 27 */
138 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 28 - 2f */
139 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 30 - 37 */
140 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x10, 0x00, /* 38 - 3f */
141 0x80, 0x71, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, /* 40 - 47 */
142 0x00, 0x00, 0x00, 0xff, 0xff, /* 48 - 4c */
196 if (client->adapter == NULL) in es7210_read()
197 pr_err("es7210_read client->adapter==NULL\n"); in es7210_read()
202 return -1; in es7210_read()
208 return -1; in es7210_read()
222 pr_err("es7210_write error->[REG-0x%02x,val-0x%02x]\n", reg, value); in es7210_write()
223 return -1; in es7210_write()
292 printk("begin->>>>>>>>>>%s!\n", __func__); in es7210_tdm_init_codec()
304 * Here to set TDM format for DSP-A mode in es7210_tdm_init_codec()
315 * Here to set TDM format for DSP-B mode in es7210_tdm_init_codec()
352 * set format, dsp-a with multiple LRCK tdm mode in es7210_tdm_init_codec()
376 * set format, dsp-b with multiple LRCK tdm mode in es7210_tdm_init_codec()
467 * here to disable tdm and set i2s-16bit for in es7210_tdm_init_codec()
493 * to set internal mclk in es7210_tdm_init_codec()
495 * 256FS i2s clock in es7210_tdm_init_codec()
500 * 512FS clock. the clk divider ratio is 1. in es7210_tdm_init_codec()
502 * according to FS in es7210_tdm_init_codec()
518 * Here to set TDM format for DSP-A with in es7210_tdm_init_codec()
570 * to set internal mclk in es7210_tdm_init_codec()
572 * 256FS i2s clock in es7210_tdm_init_codec()
575 * internal FS in es7210 in es7210_tdm_init_codec()
576 * is only FS/4; in es7210_tdm_init_codec()
580 * modem equals to (256FS / (FS/4) / 2) * FS in es7210_tdm_init_codec()
581 * = 512FS in es7210_tdm_init_codec()
583 * according to FS in es7210_tdm_init_codec()
592 * to set internal mclk for normal mode in es7210_tdm_init_codec()
594 * 256FS i2s clock in es7210_tdm_init_codec()
599 * 512FS clock. the clk divider ratio is 1. in es7210_tdm_init_codec()
601 * according to FS in es7210_tdm_init_codec()
677 printk("exit->>>>>>>>>>%s!\n", __func__); in es7210_tdm_init_codec()
711 struct snd_soc_component *component = dai->component; in es7210_pcm_startup()
715 schedule_delayed_work(&es7210->pcm_pop_work, msecs_to_jiffies(100)); in es7210_pcm_startup()
888 es7210_tdm_init_codec(resume_es7210->tdm_mode); in es7210_resume()
896 printk("begin->>>>>>>>>>%s!\n", __func__); in es7210_probe()
897 es7210->mclk = devm_clk_get(component->dev, "mclk"); in es7210_probe()
898 if (PTR_ERR(es7210->mclk) == -EPROBE_DEFER) in es7210_probe()
899 return -EPROBE_DEFER; in es7210_probe()
901 ret = clk_prepare_enable(es7210->mclk); in es7210_probe()
908 component->control_data = devm_regmap_init_i2c(es7210->i2c_client, &es7210_regmap_config); in es7210_probe()
909 ret = PTR_ERR_OR_ZERO(component->control_data); in es7210_probe()
913 dev_err(component->dev, "Failed to set cache I/O: %d\n", ret); in es7210_probe()
916 printk("begin->>>>>>>>>>%s!\n", __func__); in es7210_probe()
919 INIT_DELAYED_WORK(&es7210->pcm_pop_work, pcm_pop_work_events); in es7210_probe()
920 es7210_tdm_init_codec(es7210->tdm_mode); in es7210_probe()
939 if (IS_ERR(es7210->mclk)) in es7210_set_bias_level()
942 clk_disable_unprepare(es7210->mclk); in es7210_set_bias_level()
944 ret = clk_prepare_enable(es7210->mclk); in es7210_set_bias_level()
965 es7210_update_bits(0x43, 0x0F, ucontrol->value.integer.value[0], i2c_clt1[0]); in es7210_micboost1_setting_set()
974 ucontrol->value.integer.value[0] = val; in es7210_micboost1_setting_get()
981 es7210_update_bits(0x44, 0x0F, ucontrol->value.integer.value[0], i2c_clt1[0]); in es7210_micboost2_setting_set()
990 ucontrol->value.integer.value[0] = val; in es7210_micboost2_setting_get()
997 es7210_update_bits(0x45, 0x0F, ucontrol->value.integer.value[0], i2c_clt1[0]); in es7210_micboost3_setting_set()
1006 ucontrol->value.integer.value[0] = val; in es7210_micboost3_setting_get()
1012 es7210_update_bits(0x46, 0x0F, ucontrol->value.integer.value[0], i2c_clt1[0]); in es7210_micboost4_setting_set()
1021 ucontrol->value.integer.value[0] = val; in es7210_micboost4_setting_get()
1029 ucontrol->value.integer.value[0]&0x01, i2c_clt1[0]); in es7210_adc1_mute_set()
1038 ucontrol->value.integer.value[0] = val & 0x01; in es7210_adc1_mute_get()
1046 (ucontrol->value.integer.value[0] & 0x01) << 1, i2c_clt1[0]); in es7210_adc2_mute_set()
1055 ucontrol->value.integer.value[0] = (val & 0x02) >> 1; in es7210_adc2_mute_get()
1063 ucontrol->value.integer.value[0]&0x01, i2c_clt1[0]); in es7210_adc3_mute_set()
1072 ucontrol->value.integer.value[0] = val & 0x01; in es7210_adc3_mute_get()
1079 (ucontrol->value.integer.value[0] & 0x01) << 1, i2c_clt1[0]); in es7210_adc4_mute_set()
1088 ucontrol->value.integer.value[0] = (val & 0x02) >> 1; in es7210_adc4_mute_get()
1098 es7210_update_bits(0x43, 0x0F, ucontrol->value.integer.value[0], i2c_clt1[1]); in es7210_micboost5_setting_set()
1107 ucontrol->value.integer.value[0] = val; in es7210_micboost5_setting_get()
1113 es7210_update_bits(0x44, 0x0F, ucontrol->value.integer.value[0], i2c_clt1[1]); in es7210_micboost6_setting_set()
1122 ucontrol->value.integer.value[0] = val; in es7210_micboost6_setting_get()
1128 es7210_update_bits(0x45, 0x0F, ucontrol->value.integer.value[0], i2c_clt1[1]); in es7210_micboost7_setting_set()
1137 ucontrol->value.integer.value[0] = val; in es7210_micboost7_setting_get()
1143 es7210_update_bits(0x46, 0x0F, ucontrol->value.integer.value[0], i2c_clt1[1]); in es7210_micboost8_setting_set()
1152 ucontrol->value.integer.value[0] = val; in es7210_micboost8_setting_get()
1159 ucontrol->value.integer.value[0]&0x01, i2c_clt1[1]); in es7210_adc5_mute_set()
1168 ucontrol->value.integer.value[0] = val & 0x01; in es7210_adc5_mute_get()
1176 (ucontrol->value.integer.value[0] & 0x01) << 1, i2c_clt1[1]); in es7210_adc6_mute_set()
1185 ucontrol->value.integer.value[0] = (val & 0x02) >> 1; in es7210_adc6_mute_get()
1193 ucontrol->value.integer.value[0]&0x01, i2c_clt1[1]); in es7210_adc7_mute_set()
1202 ucontrol->value.integer.value[0] = val & 0x01; in es7210_adc7_mute_get()
1209 (ucontrol->value.integer.value[0] & 0x01) << 1, i2c_clt1[1]); in es7210_adc8_mute_set()
1218 ucontrol->value.integer.value[0] = (val & 0x02) >> 1; in es7210_adc8_mute_get()
1227 es7210_update_bits(0x43, 0x0F, ucontrol->value.integer.value[0], i2c_clt1[2]); in es7210_micboost9_setting_set()
1236 ucontrol->value.integer.value[0] = val; in es7210_micboost9_setting_get()
1242 es7210_update_bits(0x44, 0x0F, ucontrol->value.integer.value[0], i2c_clt1[2]); in es7210_micboost10_setting_set()
1251 ucontrol->value.integer.value[0] = val; in es7210_micboost10_setting_get()
1257 es7210_update_bits(0x45, 0x0F, ucontrol->value.integer.value[0], i2c_clt1[2]); in es7210_micboost11_setting_set()
1266 ucontrol->value.integer.value[0] = val; in es7210_micboost11_setting_get()
1272 es7210_update_bits(0x46, 0x0F, ucontrol->value.integer.value[0], i2c_clt1[2]); in es7210_micboost12_setting_set()
1281 ucontrol->value.integer.value[0] = val; in es7210_micboost12_setting_get()
1288 ucontrol->value.integer.value[0]&0x01, i2c_clt1[2]); in es7210_adc9_mute_set()
1297 ucontrol->value.integer.value[0] = val & 0x01; in es7210_adc9_mute_get()
1305 (ucontrol->value.integer.value[0] & 0x01) << 1, i2c_clt1[2]); in es7210_adc10_mute_set()
1314 ucontrol->value.integer.value[0] = (val & 0x02) >> 1; in es7210_adc10_mute_get()
1322 ucontrol->value.integer.value[0]&0x01, i2c_clt1[2]); in es7210_adc11_mute_set()
1331 ucontrol->value.integer.value[0] = val & 0x01; in es7210_adc11_mute_get()
1338 (ucontrol->value.integer.value[0] & 0x01) << 1, i2c_clt1[2]); in es7210_adc12_mute_set()
1347 ucontrol->value.integer.value[0] = (val & 0x02) >> 1; in es7210_adc12_mute_get()
1356 es7210_update_bits(0x43, 0x0F, ucontrol->value.integer.value[0], i2c_clt1[3]); in es7210_micboost13_setting_set()
1365 ucontrol->value.integer.value[0] = val; in es7210_micboost13_setting_get()
1371 es7210_update_bits(0x44, 0x0F, ucontrol->value.integer.value[0], i2c_clt1[3]); in es7210_micboost14_setting_set()
1380 ucontrol->value.integer.value[0] = val; in es7210_micboost14_setting_get()
1386 es7210_update_bits(0x45, 0x0F, ucontrol->value.integer.value[0], i2c_clt1[3]); in es7210_micboost15_setting_set()
1395 ucontrol->value.integer.value[0] = val; in es7210_micboost15_setting_get()
1401 es7210_update_bits(0x46, 0x0F, ucontrol->value.integer.value[0], i2c_clt1[3]); in es7210_micboost16_setting_set()
1410 ucontrol->value.integer.value[0] = val; in es7210_micboost16_setting_get()
1417 ucontrol->value.integer.value[0]&0x01, i2c_clt1[3]); in es7210_adc13_mute_set()
1426 ucontrol->value.integer.value[0] = val & 0x01; in es7210_adc13_mute_get()
1434 (ucontrol->value.integer.value[0] & 0x01) << 1, i2c_clt1[3]); in es7210_adc14_mute_set()
1443 ucontrol->value.integer.value[0] = (val & 0x02) >> 1; in es7210_adc14_mute_get()
1451 ucontrol->value.integer.value[0]&0x01, i2c_clt1[3]); in es7210_adc15_mute_set()
1460 ucontrol->value.integer.value[0] = val & 0x01; in es7210_adc15_mute_get()
1467 (ucontrol->value.integer.value[0] & 0x01) << 1, i2c_clt1[3]); in es7210_adc16_mute_set()
1476 ucontrol->value.integer.value[0] = (val & 0x02) >> 1; in es7210_adc16_mute_get()
1615 while (flag--) { in es7210_store()
1616 es7210_write(reg, value_w, es7210->i2c_client); in es7210_store()
1626 es7210_read(reg, &value_r, es7210->i2c_client); in es7210_store()
1667 printk("begin->>>>>>>>>>%s!\n", __func__); in es7210_i2c_probe()
1669 es7210 = devm_kzalloc(&i2c_client->dev, sizeof(struct es7210_priv), in es7210_i2c_probe()
1672 return -ENOMEM; in es7210_i2c_probe()
1673 es7210->i2c_client = i2c_client; in es7210_i2c_probe()
1674 es7210->tdm_mode = ES7210_WORK_MODE; //to set tdm mode or normal mode in es7210_i2c_probe()
1676 if (i2c_id->driver_data < ADC_DEV_MAXNUM) { in es7210_i2c_probe()
1677 i2c_clt1[i2c_id->driver_data] = i2c_client; in es7210_i2c_probe()
1678 ret = devm_snd_soc_register_component(&i2c_client->dev, &soc_codec_dev_es7210, in es7210_i2c_probe()
1679 es7210_dai[i2c_id->driver_data], 1); in es7210_i2c_probe()
1684 ret = sysfs_create_group(&i2c_client->dev.kobj, &es7210_debug_attr_group); in es7210_i2c_probe()
1694 sysfs_remove_group(&client->dev.kobj, &es7210_debug_attr_group); in es7210_i2c_remove()
1753 MODULE_AUTHOR("David Yang <yangxiaohua@everest-semi.com> / info@everest-semi.com");