void MHL_On(bool on) { MHL_DEV_INFO("[SKY_MHL] USB path change : %d\n", on); if (on == 1) { //if(gpio_get_value(MHL_EN)) // USB_SWITCH Check // MHL_DEV_INFO("[MHL] MHL_EN : already 1\n"); //else { // gpio_direction_output(MHL_EN, GPIO_HIGH_VALUE); // switch-MHL sii9244_cfg_power(1); //} } else { //if(!gpio_get_value(MHL_EN)) // MHL_DEV_INFO("[MHL] MHL_EN : already 0\n"); //else { sii9244_cfg_power(0); // gpio_direction_output(MHL_EN, GPIO_LOW_VALUE); // switch-USB //} } }
void MHL_On(bool on) { #ifdef MHL_DEBUG printk("[SKY_MHL] USB path change : %d\n", on); #endif if (on == 1) { //if(gpio_get_value(MHL_EN)) // USB_SWITCH Check // printk("[MHL] MHL_EN : already 1\n"); //else { // gpio_set_value(MHL_EN, GPIO_HIGH_VALUE); // switch-MHL sii9244_cfg_power(1); //} } else { //if(!gpio_get_value(MHL_EN)) // printk("[MHL] MHL_EN : already 0\n"); //else { #ifdef PANTECH_HDMI_AUDIO_CHANGE_FIX pantech_audio_disable(); #endif sii9244_cfg_power(0); // gpio_set_value(MHL_EN, GPIO_LOW_VALUE); // switch-USB //} } }
void is_mhl_cable(struct work_struct *work) { struct pm8xxx_adc_chan_result result; int rc=0; int try_max=0; do { rc = pm8xxx_adc_mpp_config_read(PM8XXX_AMUX_MPP_3, ADC_MPP_1_AMUX6, &result); try_max++; }while(rc && try_max<20); #ifdef MHL_DEBUG printk("%s: cable_mv %lld\n ", __func__, result.physical); #endif #if ((BOARD_VER>=TP10 && BOARD_VER<TP20) && (defined(CONFIG_MACH_MSM8960_EF45K) || defined(CONFIG_MACH_MSM8960_EF46L) || defined(CONFIG_MACH_MSM8960_EF47S))) if (!MHL_Get_Cable_State() && (mhlsii9244_adc_value > 15000 && mhlsii9244_adc_value< 50000)) #elif (BOARD_VER>=TP20 && (defined(CONFIG_MACH_MSM8960_EF45K) || defined(CONFIG_MACH_MSM8960_EF46L) || defined(CONFIG_MACH_MSM8960_EF47S))) if (!MHL_Get_Cable_State() && (mhlsii9244_adc_value> 22000 &&mhlsii9244_adc_value < 50000)) #else /*(defined(CONFIG_MACH_MSM8960_VEGAPVW) || defined(CONFIG_MACH_MSM8960_VEGAPKDDI))*/ if (!MHL_Get_Cable_State() && (mhlsii9244_adc_valuel< 300000)) #endif { sii9244_cfg_power(0); pantech_hdmi_cable_detect(1); schedule_delayed_work(&sii9244_cable_connect_work.work, msecs_to_jiffies(100)); mhlsii9244_adc_value = 0; } #if ((BOARD_VER>=TP10 && BOARD_VER<TP20) && (defined(CONFIG_MACH_MSM8960_EF45K) || defined(CONFIG_MACH_MSM8960_EF46L) || defined(CONFIG_MACH_MSM8960_EF47S))) else if (MHL_Get_Cable_State() && (result.physical < 15000 || result.physical > 50000)) #elif (BOARD_VER>=TP20 && (defined(CONFIG_MACH_MSM8960_EF45K) || defined(CONFIG_MACH_MSM8960_EF46L) || defined(CONFIG_MACH_MSM8960_EF47S))) else if (MHL_Get_Cable_State() && (result.physical < 22000 || result.physical > 50000)) #else /*(defined(CONFIG_MACH_MSM8960_VEGAPVW) || defined(CONFIG_MACH_MSM8960_VEGAPKDDI))*/ else if (MHL_Get_Cable_State() && (result.physical > 300000)) #endif { if ( get_mhl_status()== MHL_RSEN_LOW) { pantech_hdmi_cable_detect(0); MHL_On(0); // mhl_power_ctrl(0); MHL_En_Control(0) ;// switch-MHL MHL_Set_Cable_State(MHL_CABLE_DISCONNCET); #ifdef MHL_DEBUG printk(KERN_ERR "[SKY_MHL]%s MHL cable disConnect \n",__func__); #endif sii9244_cfg_power_init(); } } #if (BOARD_VER>=TP20 && (defined(CONFIG_MACH_MSM8960_EF45K) || defined(CONFIG_MACH_MSM8960_EF46L) || defined(CONFIG_MACH_MSM8960_EF47S))) if (!MHL_Get_Cable_State() && (mhlsii9244_adc_value<22000)) { if (is_mhl_mode()) { sii9244_cfg_power(0); pantech_hdmi_cable_detect(1); schedule_delayed_work(&sii9244_cable_connect_work.work, msecs_to_jiffies(100)); mhlsii9244_adc_value = 0; set_flag_mhl_mode(0); } } #endif return ; }