XXX

 
<<<<<<< HEAD #if 0//def CONFIG_SND_SOC_DEBUSSY_MODULE /* zfl * mode: 00b : Intercom Headset * mode: 01b : Receiver * mode: 10b : Speaker * mode: 11b : Bypass * mode: 4: Suspend * mode: 5: Resume */ void aw87xxx_set_ig1600_mode (struct aw87xxx *aw87xxx, int mode) { #if 0//def CONFIG_SND_SOC_DEBUSSY_MODULE AW_DEV_LOGI(aw87xxx->dev, "*** Skip for Updating !!! *** set mode = %d\n", mode); return; #else AW_DEV_LOGI(aw87xxx->dev, "set mode = %d\n", mode); #endif switch (mode) { case 0: // DMR Intercom Headset if (gpio_is_valid(aw87xxx->aw_dev.ig_mode_p8_dai3_rxdata_gpio)) { gpio_set_value(aw87xxx->aw_dev.ig_mode_p8_dai3_rxdata_gpio, 0); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_mode_p8_dai3_rxdata_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.ig_mode_p5_dai3_bclk_gpio)) { gpio_set_value(aw87xxx->aw_dev.ig_mode_p5_dai3_bclk_gpio, 0); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_mode_p5_dai3_bclk_gpio set failed"); } break; case 1: // Receiver if (gpio_is_valid(aw87xxx->aw_dev.ig_mode_p8_dai3_rxdata_gpio)) { gpio_set_value(aw87xxx->aw_dev.ig_mode_p8_dai3_rxdata_gpio, 0); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_mode_p8_dai3_rxdata_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.ig_mode_p5_dai3_bclk_gpio)) { gpio_set_value(aw87xxx->aw_dev.ig_mode_p5_dai3_bclk_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_mode_p5_dai3_bclk_gpio set failed"); } break; case 2: // Speaker if (gpio_is_valid(aw87xxx->aw_dev.ig_mode_p8_dai3_rxdata_gpio)) { gpio_set_value(aw87xxx->aw_dev.ig_mode_p8_dai3_rxdata_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_mode_p8_dai3_rxdata_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.ig_mode_p5_dai3_bclk_gpio)) { gpio_set_value(aw87xxx->aw_dev.ig_mode_p5_dai3_bclk_gpio, 0); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_mode_p5_dai3_bclk_gpio set failed"); } break; case 3: // Bypass if (gpio_is_valid(aw87xxx->aw_dev.ig_mode_p8_dai3_rxdata_gpio)) { gpio_set_value(aw87xxx->aw_dev.ig_mode_p8_dai3_rxdata_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_mode_p8_dai3_rxdata_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.ig_mode_p5_dai3_bclk_gpio)) { gpio_set_value(aw87xxx->aw_dev.ig_mode_p5_dai3_bclk_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_mode_p5_dai3_bclk_gpio set failed"); } break; case 4: // Suspend if (gpio_is_valid(aw87xxx->aw_dev.ig_rst_gpio)) { gpio_set_value(aw87xxx->aw_dev.ig_rst_gpio, 0); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_rst_gpio set failed"); } #if 0 if (gpio_is_valid(aw87xxx->aw_dev.ig_3V3_en_gpio)) { //xiong gpio_set_value(aw87xxx->aw_dev.ig_3V3_en_gpio, 0); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_3V3_en_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.ig_gpio_nr_en_gpio)) { gpio_set_value(aw87xxx->aw_dev.ig_gpio_nr_en_gpio, 0); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_gpio_nr_en_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.ig_ldo_en_gpio)) { gpio_set_value(aw87xxx->aw_dev.ig_ldo_en_gpio, 0); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_ldo_en_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.mic_sen_gpio)) { gpio_set_value(aw87xxx->aw_dev.mic_sen_gpio, 0); } else { AW_DEV_LOGE(aw87xxx->dev, "mic_sen_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.ig_nr_i2c_en)) { gpio_set_value(aw87xxx->aw_dev.ig_nr_i2c_en, 0); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_nr_i2c_en set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.ig_mode_p8_dai3_rxdata_gpio)) { gpio_set_value(aw87xxx->aw_dev.ig_mode_p8_dai3_rxdata_gpio, 0); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_mode_p8_dai3_rxdata_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.ig_mode_p5_dai3_bclk_gpio)) { gpio_set_value(aw87xxx->aw_dev.ig_mode_p5_dai3_bclk_gpio, 0); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_mode_p5_dai3_bclk_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.aec_s5_gpio)) { gpio_set_value(aw87xxx->aw_dev.aec_s5_gpio, 0); } else { AW_DEV_LOGE(aw87xxx->dev, "aec_s5_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.aec_s3_gpio)) { gpio_set_value(aw87xxx->aw_dev.aec_s3_gpio, 0); } else { AW_DEV_LOGE(aw87xxx->dev, "aec_s3_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.aec_s4_gpio)) { gpio_set_value(aw87xxx->aw_dev.aec_s4_gpio, 0); } else { AW_DEV_LOGE(aw87xxx->dev, "aec_s4_gpio set failed"); } #endif break; case 5: // Resume if (gpio_is_valid(aw87xxx->aw_dev.ig_rst_gpio)) { gpio_set_value(aw87xxx->aw_dev.ig_rst_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_rst_gpio set failed"); } #if 0 if (gpio_is_valid(aw87xxx->aw_dev.ig_ldo_en_gpio)) { //xiong gpio_set_value(aw87xxx->aw_dev.ig_ldo_en_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_ldo_en_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.ig_gpio_nr_en_gpio)) { gpio_set_value(aw87xxx->aw_dev.ig_gpio_nr_en_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_gpio_nr_en_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.ig_3V3_en_gpio)) { gpio_set_value(aw87xxx->aw_dev.ig_3V3_en_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_3V3_en_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.mic_sen_gpio)) { gpio_set_value(aw87xxx->aw_dev.mic_sen_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "mic_sen_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.ig_nr_i2c_en)) { gpio_set_value(aw87xxx->aw_dev.ig_nr_i2c_en, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "ig_nr_i2c_en set failed"); } #endif break; default: AW_DEV_LOGE(aw87xxx->dev, "Not support mode!"); break; } } // Mic Path HandFree void aw87xxx_set_mic_path_receiver (struct aw87xxx *aw87xxx) { AW_DEV_LOGI(aw87xxx->dev, "Enter\n"); if (gpio_is_valid(aw87xxx->aw_dev.mic_sen_gpio)) { gpio_set_value(aw87xxx->aw_dev.mic_sen_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "mic_sen_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.aec_s5_gpio)) { gpio_set_value(aw87xxx->aw_dev.aec_s5_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "aec_s5_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.aec_s3_gpio)) { gpio_set_value(aw87xxx->aw_dev.aec_s3_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "aec_s3_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.aec_s4_gpio)) { gpio_set_value(aw87xxx->aw_dev.aec_s4_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "aec_s4_gpio set failed"); } } void aw87xxx_set_mic_path_handfree (struct aw87xxx *aw87xxx) { AW_DEV_LOGI(aw87xxx->dev, "Enter\n"); if (gpio_is_valid(aw87xxx->aw_dev.mic_sen_gpio)) { gpio_set_value(aw87xxx->aw_dev.mic_sen_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "mic_sen_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.aec_s5_gpio)) { gpio_set_value(aw87xxx->aw_dev.aec_s5_gpio, 0); } else { AW_DEV_LOGE(aw87xxx->dev, "aec_s5_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.aec_s3_gpio)) { gpio_set_value(aw87xxx->aw_dev.aec_s3_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "aec_s3_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.aec_s4_gpio)) { gpio_set_value(aw87xxx->aw_dev.aec_s4_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "aec_s4_gpio set failed"); } } void aw87xxx_set_mic_path_headset (struct aw87xxx *aw87xxx) { AW_DEV_LOGI(aw87xxx->dev, "Enter\n"); if (gpio_is_valid(aw87xxx->aw_dev.mic_sen_gpio)) { gpio_set_value(aw87xxx->aw_dev.mic_sen_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "mic_sen_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.aec_s5_gpio)) { gpio_set_value(aw87xxx->aw_dev.aec_s5_gpio, 1); } else { AW_DEV_LOGE(aw87xxx->dev, "aec_s5_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.aec_s3_gpio)) { AW_DEV_LOGE(aw87xxx->dev, "aec_s3_gpio %d", gpio_get_value(aw87xxx->aw_dev.aec_s3_gpio)); gpio_set_value(aw87xxx->aw_dev.aec_s3_gpio, 0); AW_DEV_LOGE(aw87xxx->dev, "aec_s3_gpio %d", gpio_get_value(aw87xxx->aw_dev.aec_s3_gpio)); } else { AW_DEV_LOGE(aw87xxx->dev, "aec_s3_gpio set failed"); } if (gpio_is_valid(aw87xxx->aw_dev.aec_s4_gpio)) { AW_DEV_LOGE(aw87xxx->dev, "aec_s4_gpio %d", gpio_get_value(aw87xxx->aw_dev.aec_s4_gpio)); gpio_set_value(aw87xxx->aw_dev.aec_s4_gpio, 0); AW_DEV_LOGE(aw87xxx->dev, "aec_s4_gpio %d", gpio_get_value(aw87xxx->aw_dev.aec_s4_gpio)); } else { AW_DEV_LOGE(aw87xxx->dev, "aec_s4_gpio set failed"); } } int aw87xxx_set_noise_mic_mode(int dev_index, int mode) { struct list_head *pos = NULL; struct aw87xxx *aw87xxx = NULL; list_for_each(pos, &g_aw87xxx_list) { aw87xxx = list_entry(pos, struct aw87xxx, list); AW_DEV_LOGI(aw87xxx->dev, "list aw87xxx->dev_index = %d", aw87xxx->dev_index); // Only get gpios from dev0 if (0 == aw87xxx->dev_index) { AW_DEV_LOGI(aw87xxx->dev, "set dev_index = %d, mode = %d", dev_index, mode); switch (dev_index) { case 0: // Main Smart PA Speaker and Receiver switch (mode) { case 0: // DMR Intercom Headset aw87xxx_set_ig1600_mode(aw87xxx, 0); aw87xxx_set_mic_path_receiver(aw87xxx); break; case 1: // Receiver aw87xxx_set_ig1600_mode(aw87xxx, 1); aw87xxx_set_mic_path_receiver(aw87xxx); break; case 2: // Speaker aw87xxx_set_ig1600_mode(aw87xxx, 2); aw87xxx_set_mic_path_handfree(aw87xxx); break; case 3: // Bypass aw87xxx_set_ig1600_mode(aw87xxx, 3); aw87xxx_set_mic_path_receiver(aw87xxx); break; case 4: // Suspend aw87xxx_set_ig1600_mode(aw87xxx, 4); break; case 5: // Resume aw87xxx_set_ig1600_mode(aw87xxx, 5); break; default: AW_DEV_LOGE(aw87xxx->dev, "Not support mode!"); return -EINVAL; break; } return 0; break; case 1: // Sub Smart PA for Headset switch (mode) { case 0: case 1: case 2: AW_DEV_LOGI(aw87xxx->dev, "Default Receiver mode!"); // Receiver aw87xxx_set_ig1600_mode(aw87xxx, 1); aw87xxx_set_mic_path_headset(aw87xxx); break; case 3: // Bypass aw87xxx_set_ig1600_mode(aw87xxx, 3); aw87xxx_set_mic_path_receiver(aw87xxx); break; case 4: // Suspend aw87xxx_set_ig1600_mode(aw87xxx, 4); break; case 5: // Resume aw87xxx_set_ig1600_mode(aw87xxx, 5); break; default: AW_DEV_LOGE(aw87xxx->dev, "Not support mode!"); return -EINVAL; break; } return 0; break; default: AW_DEV_LOGE(aw87xxx->dev, "Not support mode!"); return -EINVAL; break; } return 0; } } AW_DEV_LOGE(aw87xxx->dev, "Not found device!"); return -ENODEV; } EXPORT_SYMBOL(aw87xxx_set_noise_mic_mode); #endif ======= >>>>>>> origin/master
最新发布
06-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值