/* Customer function to control hw specific wlan gpios */ void dhd_customer_gpio_wlan_ctrl(int onoff) { switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); #ifdef FIH_HW bcm4330_wifi_suspend(); //FIH-ADD+ #endif #ifdef CUSTOMER_HW bcm_wlan_power_off(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 wifi_set_power(0, 0); #endif //WL_ERROR(("=========== WLAN placed in RESET ========\n")); break; case WLAN_RESET_ON: WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); #ifdef FIH_HW bcm4330_wifi_resume(); //FIH-ADD+ #endif #ifdef CUSTOMER_HW bcm_wlan_power_on(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 wifi_set_power(1, 0); #endif //WL_ERROR(("=========== WLAN going back to live ========\n")); break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); #ifdef FIH_HW wifi_power(0); //FIH-ADD+ #endif #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif /* CUSTOMER_HW */ break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); #ifdef FIH_HW wifi_power(1); //FIH-ADD+ #endif #ifdef CUSTOMER_HW bcm_wlan_power_on(1); /* Lets customer power to get stable */ OSL_DELAY(200); #endif /* CUSTOMER_HW */ break; } }
/* Customer function to control hw specific wlan gpios */ void dhd_customer_gpio_wlan_ctrl(int onoff) { switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); #if defined(CONFIG_LGE_BCM432X_PATCH) gpio_set_value(CONFIG_BCM4329_GPIO_WL_RESET, 0); #endif #ifdef CUSTOMER_HW bcm_wlan_power_off(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 wifi_set_power(0, 0); #endif WL_ERROR(("=========== WLAN placed in RESET ========\n")); break; case WLAN_RESET_ON: WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); #if defined(CONFIG_LGE_BCM432X_PATCH) gpio_set_value(CONFIG_BCM4329_GPIO_WL_RESET, 1); mdelay(150); //mingi #endif #ifdef CUSTOMER_HW bcm_wlan_power_on(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 wifi_set_power(1, 0); #endif WL_ERROR(("=========== WLAN going back to live ========\n")); break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif /* CUSTOMER_HW */ break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(1); #endif /* CUSTOMER_HW */ /* Lets customer power to get stable */ OSL_DELAY(500); break; } }
/* Customer function to control hw specific wlan gpios */ void dhd_customer_gpio_wlan_ctrl(int onoff) { switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); #if defined (CUSTOMER_HW_SAMSUNG) wlan_setup_power(POWER_OFF, 2); #elif defined(CUSTOMER_HW) bcm_wlan_power_off(2); #elif defined(CUSTOMER_HW2) wifi_set_power(0, 0); #endif WL_ERROR(("=========== WLAN placed in RESET ========\n")); break; case WLAN_RESET_ON: WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); #if defined(CUSTOMER_HW_SAMSUNG) wlan_setup_power(POWER_ON, 2); #elif defined(CUSTOMER_HW) bcm_wlan_power_on(2); #elif defined(CUSTOMER_HW2) wifi_set_power(1, 0); #endif WL_ERROR(("=========== WLAN going back to live ========\n")); break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); #if defined(CUSTOMER_HW_SAMSUNG) wlan_setup_power(POWER_OFF, 1); #elif defined(CUSTOMER_HW) bcm_wlan_power_off(1); #endif /* CUSTOMER_HW || CUSTOMER_HW_SAMSUNG */ break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); #if defined(CUSTOMER_HW_SAMSUNG) wlan_setup_power(POWER_ON, 1); #elif defined(CUSTOMER_HW) bcm_wlan_power_on(1); /* Lets customer power to get stable */ OSL_DELAY(50); #endif /* CUSTOMER_HW || CUSTOMER_HW_SAMSUNG */ break; } }
/* Customer function to control hw specific wlan gpios */ void dhd_customer_gpio_wlan_ctrl(int onoff) { switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 wifi_set_power(0, 0); #endif WL_ERROR(("=========== WLAN placed in RESET ========\n")); break; case WLAN_RESET_ON: WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 wifi_set_power(1, 0); #endif WL_ERROR(("=========== WLAN going back to live ========\n")); break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif /* CUSTOMER_HW */ remove_proc_entry("q_wlan", NULL); q_wlan_flag = 0; break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); entry = create_proc_read_entry("q_wlan", 0, NULL, q_proc_call, NULL); if (!entry) printk("cl: unable to create proc file.\n"); #ifdef CUSTOMER_HW bcm_wlan_power_on(1); #endif /* Lets customer power to get stable */ OSL_DELAY(50); break; } }
/* Customer function to control hw specific wlan gpios */ void dhd_customer_gpio_wlan_ctrl(int onoff) { switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(2); #endif /* CUSTOMER_HW */ #if defined(CUSTOMER_HW2) wifi_set_power(0, 0); #endif mdelay(100); WL_ERROR(("=========== WLAN placed in RESET ========\n")); break; case WLAN_RESET_ON: WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(2); #endif /* CUSTOMER_HW */ #if defined(CUSTOMER_HW2) wifi_set_power(1, 0); #endif mdelay(100); WL_ERROR(("=========== WLAN going back to live ========\n")); break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif /* CUSTOMER_HW */ WL_ERROR(("=========== WLAN placed in POWER OFF ========\n")); break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(1); #endif /* CUSTOMER_HW */ /* Lets customer power to get stable */ mdelay(100); WL_ERROR(("=========== WLAN placed in POWER ON ========\n")); break; } }
/* Customer function to control hw specific wlan gpios */ void dhd_customer_gpio_wlan_ctrl(int onoff) { switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to assert WLAN RESET\n", __FUNCTION__)); #ifdef CONFIG_WIFI_CONTROL_EXPORT bcm_wlan_power_off(2); #endif /* CUSTOMER_HW */ #ifdef CONFIG_WIFI_CONTROL_FUNC wifi_set_power(0, 0); #endif WL_ERROR(("=========== WLAN placed in RESET ========\n")); break; case WLAN_RESET_ON: WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); #ifdef CONFIG_WIFI_CONTROL_EXPORT bcm_wlan_power_on(2); #endif /* CUSTOMER_HW */ #ifdef CONFIG_WIFI_CONTROL_FUNC wifi_set_power(1, 0); #endif WL_ERROR(("=========== WLAN going back to live ========\n")); break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); #ifdef CONFIG_WIFI_CONTROL_EXPORT bcm_wlan_power_off(1); #endif /* CONFIG_WIFI_CONTROL_EXPORT */ // In case if we use platform device removal of the device turns off the power break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); #ifdef CONFIG_WIFI_CONTROL_EXPORT bcm_wlan_power_on(1); #endif /* CONFIG_WIFI_CONTROL_EXPORT */ // In case if we use platform device it will be done in add function /* Lets customer power to get stable */ // OSL_DELAY(500); break; } }
static ssize_t bcm_ap6181_manual_set(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { int ret = 0; /* rlt8723bs default state is power on */ static int init_state = 1; if (strncmp(buf, "0", 1) == 0) { if (!init_state) goto out; ret = bcm_wlan_power_off(NORMAL); init_state = 0; } else if (strncmp(buf, "1", 1) == 0) { if (init_state) goto out; ret = bcm_wlan_power_on(NORMAL); init_state = 1; } else ret = -1; if (ret) pr_warn("===>%s bcm_ap6181 power ctl fail\n", __func__); out: return count; }
void dhd_customer_gpio_wlan_ctrl(int onoff) { switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(2); #endif #ifdef CUSTOMER_HW2 wifi_set_power(0, 0); #endif WL_ERROR(("=========== WLAN placed in RESET ========\n")); break; case WLAN_RESET_ON: WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(2); #endif #ifdef CUSTOMER_HW2 wifi_set_power(1, 0); #endif WL_ERROR(("=========== WLAN going back to live ========\n")); break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(1); OSL_DELAY(200); #endif break; } }
void dhd_customer_gpio_wlan_ctrl(int onoff) { switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(2); #endif #if 1 #if defined(CONFIG_MACH_EVT0) || defined(CONFIG_MACH_EVT0_1) ||defined( CONFIG_MACH_EVB) gpio_set_value(78,0); #elif defined CONFIG_MACH_EVT1 gpio_set_value(76,0); #else gpio_set_value(76,0); #endif mdelay(100); #if defined(CONFIG_MACH_EVT0) || defined(CONFIG_MACH_EVT0_1) ||defined( CONFIG_MACH_EVB) gpio_set_value(78,1); #elif defined CONFIG_MACH_EVT1 gpio_set_value(76,1); #else gpio_set_value(76,1); #endif mdelay(100); #if defined(CONFIG_MACH_EVT0) || defined(CONFIG_MACH_EVT0_1) ||defined( CONFIG_MACH_EVB) gpio_set_value(78,0); #elif defined CONFIG_MACH_EVT1 gpio_set_value(76,0); #else gpio_set_value(76,0); #endif mdelay(100); #if defined(CONFIG_MACH_EVT0) || defined(CONFIG_MACH_EVT0_1) || defined(CONFIG_MACH_EVT1) gpio_set_value(147,0); #elif defined CONFIG_MACH_EVB gpio_set_value(142,0); #else gpio_set_value(147,0); #endif #endif WL_ERROR(("=========== WLAN placed in RESET ========\n")); break; case WLAN_RESET_ON: WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(2); #endif #if 1 gpio_tlmm_config(GPIO_CFG(62,1,GPIO_OUTPUT,GPIO_NO_PULL,GPIO_8MA),GPIO_ENABLE); gpio_tlmm_config(GPIO_CFG(63,1,GPIO_OUTPUT,GPIO_PULL_UP,GPIO_8MA),GPIO_ENABLE); gpio_tlmm_config(GPIO_CFG(64,1,GPIO_OUTPUT,GPIO_PULL_UP,GPIO_4MA),GPIO_ENABLE); gpio_tlmm_config(GPIO_CFG(65,1,GPIO_OUTPUT,GPIO_PULL_UP,GPIO_4MA),GPIO_ENABLE); gpio_tlmm_config(GPIO_CFG(66,1,GPIO_OUTPUT,GPIO_PULL_UP,GPIO_4MA),GPIO_ENABLE); gpio_tlmm_config(GPIO_CFG(67,1,GPIO_OUTPUT,GPIO_PULL_UP,GPIO_4MA),GPIO_ENABLE); gpio_tlmm_config(GPIO_CFG(94,0,GPIO_INPUT,GPIO_NO_PULL,GPIO_4MA),GPIO_ENABLE); #if defined(CONFIG_MACH_EVT0) || defined(CONFIG_MACH_EVT0_1) || defined(CONFIG_MACH_EVT1) gpio_tlmm_config(GPIO_CFG(147,0,GPIO_OUTPUT,GPIO_PULL_DOWN,GPIO_2MA),GPIO_ENABLE); #elif defined CONFIG_MACH_EVB gpio_tlmm_config(GPIO_CFG(142,0,GPIO_OUTPUT,GPIO_PULL_DOWN,GPIO_2MA),GPIO_ENABLE); #else gpio_tlmm_config(GPIO_CFG(147,0,GPIO_OUTPUT,GPIO_PULL_DOWN,GPIO_2MA),GPIO_ENABLE); #endif #if defined(CONFIG_MACH_EVT0) || defined(CONFIG_MACH_EVT0_1) ||defined( CONFIG_MACH_EVB) gpio_tlmm_config(GPIO_CFG(78,0,GPIO_OUTPUT,GPIO_PULL_DOWN,GPIO_2MA),GPIO_ENABLE); #elif defined CONFIG_MACH_EVT1 gpio_tlmm_config(GPIO_CFG(76,0,GPIO_OUTPUT,GPIO_PULL_DOWN,GPIO_2MA),GPIO_ENABLE); #else gpio_tlmm_config(GPIO_CFG(76,0,GPIO_OUTPUT,GPIO_PULL_DOWN,GPIO_2MA),GPIO_ENABLE); #endif #if !(defined(CONFIG_MACH_EVB)) gpio_tlmm_config(GPIO_CFG(30,0,GPIO_OUTPUT,GPIO_PULL_DOWN,GPIO_2MA),GPIO_ENABLE); #endif #if defined(CONFIG_MACH_EVT0) || defined(CONFIG_MACH_EVT0_1) || defined(CONFIG_MACH_EVT1) gpio_set_value(147,1); #elif defined CONFIG_MACH_EVB gpio_set_value(142,1); #else gpio_set_value(147,1); #endif mdelay(100); #if defined(CONFIG_MACH_EVT0) || defined(CONFIG_MACH_EVT0_1) ||defined( CONFIG_MACH_EVB) gpio_set_value(78,1); #elif defined CONFIG_MACH_EVT1 gpio_set_value(76,1); #else gpio_set_value(76,1); #endif PM_LOG_EVENT(PM_LOG_ON,PM_LOG_WIFI); #if !(defined(CONFIG_MACH_EVB)) if(gpio_get_value(29)==0) { gpio_set_value(27,1); printk("WLAN init: bt pulse start **************\n"); mdelay(100); gpio_set_value(27,0); printk("WLAN init: bt pulse done ***************\n"); } #endif #if !(defined(CONFIG_MACH_EVB)) gpio_set_value(30,1); mdelay(100); #endif #endif WL_ERROR(("=========== WLAN going back to live ========\n")); break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(1); #endif OSL_DELAY(500); break; } }
/* Customer function to control hw specific wlan gpios */ void dhd_customer_gpio_wlan_ctrl(int onoff) { switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 wifi_set_power(0, 0); #endif WL_ERROR(("=========== WLAN placed in RESET ========\n")); #if !defined(CONFIG_WIFI_CONTROL_FUNC) gpio_tlmm_config(GPIO_CFG(CONFIG_BCMDHD_GPIO_WL_RESET, 0, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE); gpio_set_value(CONFIG_BCMDHD_GPIO_WL_RESET, 0); mdelay(200); disable_irq(gpio_to_irq(CONFIG_BCMDHD_GPIO_WL_RESET)); mdelay(200); #endif break; case WLAN_RESET_ON: WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 wifi_set_power(1, 0); #endif WL_ERROR(("=========== WLAN going back to live ========\n")); #if !defined(CONFIG_WIFI_CONTROL_FUNC) gpio_tlmm_config(GPIO_CFG(CONFIG_BCMDHD_GPIO_WL_RESET, 0, GPIO_CFG_OUTPUT, GPIO_CFG_NO_PULL, GPIO_CFG_2MA), GPIO_CFG_ENABLE); gpio_set_value(CONFIG_BCMDHD_GPIO_WL_RESET, 1); mdelay(200); enable_irq(gpio_to_irq(CONFIG_BCMDHD_GPIO_WL_RESET)); mdelay(200); #endif break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif /* CUSTOMER_HW */ break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(1); /* Lets customer power to get stable */ OSL_DELAY(200); #endif /* CUSTOMER_HW */ break; } }
/* Customer function to control hw specific wlan gpios */ void dhd_customer_gpio_wlan_ctrl(int onoff) { switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(2); #endif /* CUSTOMER_HW */ #ifdef CONFIG_MACH_MAHIMAHI wifi_set_power(0, 0); #elif defined(CUSTOMER_HW_PT) gpio_set_value(dhd_wl_reset_gpio, 0); printk("WLAN_RESET_OFF[%d]\n", gpio_get_value(dhd_wl_reset_gpio)); #endif WL_ERROR(("=========== WLAN placed in RESET ========\n")); break; case WLAN_RESET_ON: WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(2); #endif /* CUSTOMER_HW */ #ifdef CONFIG_MACH_MAHIMAHI wifi_set_power(1, 0); #elif defined(CUSTOMER_HW_PT) gpio_set_value(dhd_wl_reset_gpio, 1); printk("WLAN_RESET_ON[%d]\n", gpio_get_value(dhd_wl_reset_gpio)); #endif WL_ERROR(("=========== WLAN going back to live ========\n")); break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif /* CUSTOMER_HW */ #if defined(CUSTOMER_HW_PT) && !defined(CONFIG_MACH_MAHIMAHI) gpio_set_value(dhd_wl_reset_gpio, 0); printk("WLAN_POWER_OFF[%d]\n", gpio_get_value(dhd_wl_reset_gpio)); #endif break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(1); #endif /* CUSTOMER_HW */ #if defined(CUSTOMER_HW_PT) && !defined(CONFIG_MACH_MAHIMAHI) gpio_set_value(dhd_wl_reset_gpio, 1); printk("WLAN_POWER_ON[%d]\n", gpio_get_value(dhd_wl_reset_gpio)); #endif /* Lets customer power to get stable */ OSL_DELAY(200); break; } }
/* Customer function to control hw specific wlan gpios */ void dhd_customer_gpio_wlan_ctrl(int onoff) { switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 wifi_set_power(0, 0); #endif #ifdef CONFIG_LCT_AE770 gpio_set_value(116, 0); //116 wifi pwd for ae770 //21 //123 is for aw70 project #else gpio_set_value(21, 0); //123 is for aw70 project #endif WL_ERROR(("=========== WLAN placed in RESET ========\n")); break; case WLAN_RESET_ON: WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 wifi_set_power(1, 0); #endif #ifdef CONFIG_LCT_AE770 gpio_set_value(116, 1); //116 wifi pwd for ae770 //21 //123 is for aw70 project #else gpio_set_value(21, 1); //123 is for aw70 project #endif OSL_DELAY(200); WL_ERROR(("=========== WLAN going back to live ========\n")); break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif /* CUSTOMER_HW */ #ifdef CONFIG_LCT_AE770 gpio_set_value(116, 0); //116 wifi pwd for ae770 //21 //123 is for aw70 project //wifi_detect_change(1); #else gpio_set_value(21, 0); //123 is for aw70 project wifi_detect_change(1); #endif break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(1); #endif /* CUSTOMER_HW */ #ifdef CONFIG_LCT_AE770 gpio_set_value(116, 1); //116 wifi pwd for ae770 //21 //123 is for aw70 project #else gpio_set_value(21, 1); //123 is for aw70 project #endif /* Lets customer power to get stable */ OSL_DELAY(200); wifi_detect_change(1); break; } }
/* Customer function to control hw specific wlan gpios */ void dhd_customer_gpio_wlan_ctrl(int onoff) { int ret; switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 //wifi_set_power(0, 0); // wifi_set_reset(0, 0); #endif WL_ERROR(("=========== WLAN placed in RESET ========\n")); ret = IW8101_wlan_power_off(RESET); if(ret < 0){ printk("IW8101_wlan_power_off reset failed"); } break; case WLAN_RESET_ON: WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 //wifi_set_power(1, 0); //wifi_set_reset(1, 0); #endif WL_ERROR(("=========== WLAN going back to live ========\n")); ret = IW8101_wlan_power_on(RESET); if(ret < 0){ printk("IW8101_wlan_power_on reset failed"); } break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif /* CUSTOMER_HW */ ret = IW8101_wlan_power_off(NORMAL); if(ret < 0){ printk("IW8101_wlan_power_off failed"); } break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(1); /* Lets customer power to get stable */ OSL_DELAY(200); #endif /* CUSTOMER_HW */ ret = IW8101_wlan_power_on(NORMAL); if(ret < 0){ printk("IW8101_wlan_power_on failed"); } OSL_DELAY(300); break; } }
/* Customer function to control hw specific wlan gpios */ void dhd_customer_gpio_wlan_ctrl(int onoff) { switch (onoff) { case WLAN_RESET_OFF: { WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); mmc_pm_gpio_ctrl("bcm40181_shdn", 0); mmc_pm_gpio_ctrl("bcm40181_vcc_en", 0); mmc_pm_gpio_ctrl("bcm40181_vdd_en", 0); printk("[bcm40181]: bcm40181_shdn=>0 !!\n"); #ifdef CUSTOMER_HW bcm_wlan_power_off(2); #endif /* CUSTOMER_HW */ #ifdef CONFIG_MACH_MAHIMAHI wifi_set_power(0, 0); #endif WL_ERROR(("=========== WLAN placed in RESET ========\n")); } break; case WLAN_RESET_ON: { WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); mmc_pm_gpio_ctrl("bcm40181_vcc_en", 1); udelay(100); mmc_pm_gpio_ctrl("bcm40181_shdn", 1); udelay(50); mmc_pm_gpio_ctrl("bcm40181_vdd_en", 1); printk("[bcm40181]: bcm40181_shdn=>1 !!\n"); #ifdef CUSTOMER_HW bcm_wlan_power_on(2); #endif /* CUSTOMER_HW */ #ifdef CONFIG_MACH_MAHIMAHI wifi_set_power(1, 0); #endif WL_ERROR(("=========== WLAN going back to live ========\n")); } break; case WLAN_POWER_OFF: { WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); mmc_pm_gpio_ctrl("bcm40181_shdn", 0); mmc_pm_gpio_ctrl("bcm40181_vcc_en", 0); mmc_pm_gpio_ctrl("bcm40181_vdd_en", 0); sunximmc_rescan_card(3, 0); #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif /* CUSTOMER_HW */ } break; case WLAN_POWER_ON: { WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); mmc_pm_gpio_ctrl("bcm40181_vcc_en", 1); udelay(100); mmc_pm_gpio_ctrl("bcm40181_shdn", 1); udelay(50); mmc_pm_gpio_ctrl("bcm40181_vdd_en", 1); #ifdef CUSTOMER_HW bcm_wlan_power_on(1); #endif /* CUSTOMER_HW */ /* Lets customer power to get stable */ OSL_DELAY(200); sunximmc_rescan_card(3, 1); } break; } }
void dhd_customer_gpio_wlan_ctrl(int onoff) #endif { switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(2); #endif WL_ERROR(("=========== WLAN placed in RESET ========\n")); #if defined(CONFIG_LGE_BCM432X_PATCH) if (gpio_get_value(CONFIG_BCM4325_GPIO_WL_RESET)) { if(irq_detect_ctrl) disable_irq(gpio_to_irq(CONFIG_BCM4325_GPIO_WL_RESET)); gpio_set_value(CONFIG_BCM4325_GPIO_WL_RESET, 0); } #endif break; case WLAN_RESET_ON: WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(2); #endif WL_ERROR(("=========== WLAN going back to live ========\n")); #if defined(CONFIG_LGE_BCM432X_PATCH) if (!gpio_get_value(CONFIG_BCM4325_GPIO_WL_RESET)) { gpio_set_value(CONFIG_BCM4325_GPIO_WL_RESET, 1); if(irq_detect_ctrl) enable_irq(gpio_to_irq(CONFIG_BCM4325_GPIO_WL_RESET)); } #endif break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif #if defined(CONFIG_LGE_BCM432X_PATCH) #ifdef CONFIG_BCM4325_GPIO_WL_REGON if (!gpio_get_value(CONFIG_BCM4325_GPIO_BT_RESET)) { gpio_set_value(CONFIG_BCM4325_GPIO_WL_REGON, 0); } #endif #endif break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(1); #endif #if defined(CONFIG_LGE_BCM432X_PATCH) #ifdef CONFIG_BCM4325_GPIO_WL_REGON if (!gpio_get_value(CONFIG_BCM4325_GPIO_WL_REGON)) { gpio_set_value(CONFIG_BCM4325_GPIO_WL_REGON, 1); mdelay(150); } #endif #else OSL_DELAY(500); #endif break; } }
/* Customer function to control hw specific wlan gpios */ void dhd_customer_gpio_wlan_ctrl(int onoff) { #if defined CUSTOMER_ALLWINNER && defined CONFIG_SW_MMC_POWER_CONTROL unsigned int mod_sel = mmc_pm_get_mod_type(); #endif switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); /* winner's power control */ #if defined CUSTOMER_ALLWINNER && defined CONFIG_SW_MMC_POWER_CONTROL switch (mod_sel) { case 2: /* usi bm01a */ mmc_pm_gpio_ctrl("usi_bm01a_wl_rst", 0); mmc_pm_gpio_ctrl("usi_bm01a_wl_regon", 0); break; case 5: /* swb b23 */ mmc_pm_gpio_ctrl("swbb23_wl_shdn", 0); break; default: printk("[bcm4329]: no wifi module matched !!\n"); } #endif #ifdef CUSTOMER_HW bcm_wlan_power_off(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 wifi_set_power(0, 0); #endif WL_ERROR(("=========== WLAN placed in RESET ========\n")); break; case WLAN_RESET_ON: WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); /* winner's power control */ #if defined CUSTOMER_ALLWINNER && defined CONFIG_SW_MMC_POWER_CONTROL switch (mod_sel) { case 2: /* usi bm01a */ mmc_pm_gpio_ctrl("usi_bm01a_wl_regon", 1); mmc_pm_gpio_ctrl("usi_bm01a_wl_rst", 1); break; case 5: /* swb b23 */ mmc_pm_gpio_ctrl("swbb23_wl_shdn", 1); break; default: printk("[bcm4329]: no wifi module matched !!\n"); } #endif #ifdef CUSTOMER_HW bcm_wlan_power_on(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 wifi_set_power(1, 0); #endif WL_ERROR(("=========== WLAN going back to live ========\n")); OSL_DELAY(10000); break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); /* winner's power control */ #if defined CUSTOMER_ALLWINNER && defined CONFIG_SW_MMC_POWER_CONTROL switch (mod_sel) { case 2: /* usi bm01a */ mmc_pm_gpio_ctrl("usi_bm01a_wl_rst", 0); mmc_pm_gpio_ctrl("usi_bm01a_wl_regon", 0); break; case 5: /* swb b23 */ mmc_pm_gpio_ctrl("swbb23_wl_shdn", 0); break; default: printk("[bcm4329]: no wifi module matched !!\n"); } sw_mmc_rescan_card(3, 0); #endif #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif /* CUSTOMER_HW */ break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); /* winner's power control */ #if defined CUSTOMER_ALLWINNER && defined CONFIG_SW_MMC_POWER_CONTROL switch (mod_sel) { case 2: /* usi bm01a */ mmc_pm_gpio_ctrl("usi_bm01a_wl_regon", 1); mmc_pm_gpio_ctrl("usi_bm01a_wl_rst", 1); break; case 5: /* swb b23 */ mmc_pm_gpio_ctrl("swbb23_wl_shdn", 1); break; default: printk("[bcm4329]: no wifi module matched !!\n"); } #endif #ifdef CUSTOMER_HW bcm_wlan_power_on(1); #endif /* CUSTOMER_HW */ /* Lets customer power to get stable */ OSL_DELAY(200); #if defined CUSTOMER_ALLWINNER && defined CONFIG_SW_MMC_POWER_CONTROL sw_mmc_rescan_card(3, 1); #endif break; } }
/* Customer function to control hw specific wlan gpios */ void dhd_customer_gpio_wlan_ctrl(int onoff) { #if defined CONFIG_MMC_SUNXI_POWER_CONTROL unsigned int mod_sel = mmc_pm_get_mod_type(); if (mod_sel != 6) { printk("Config Error: not for huawei mw269x sdio wifi module\n"); } #endif switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); #if defined CONFIG_MMC_SUNXI_POWER_CONTROL mmc_pm_gpio_ctrl("hw_mw269x_wl_enb", 0); #endif #ifdef CUSTOMER_HW bcm_wlan_power_off(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 wifi_set_power(0, 0); #endif WL_ERROR(("=========== WLAN placed in RESET ========\n")); break; case WLAN_RESET_ON: WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); #if defined CONFIG_MMC_SUNXI_POWER_CONTROL mmc_pm_gpio_ctrl("hw_mw269x_wl_enb", 1); #endif #ifdef CUSTOMER_HW bcm_wlan_power_on(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 wifi_set_power(1, 0); #endif WL_ERROR(("=========== WLAN going back to live ========\n")); OSL_DELAY(10000); break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); #if defined CONFIG_MMC_SUNXI_POWER_CONTROL mmc_pm_gpio_ctrl("hw_mw269x_wl_enb", 0); sunximmc_rescan_card(SDIOID, 0); #endif #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif /* CUSTOMER_HW */ break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); #if defined CONFIG_MMC_SUNXI_POWER_CONTROL mmc_pm_gpio_ctrl("hw_mw269x_wl_enb", 1); #endif #ifdef CUSTOMER_HW bcm_wlan_power_on(1); #endif /* CUSTOMER_HW */ /* Lets customer power to get stable */ OSL_DELAY(200); #if defined CONFIG_MMC_SUNXI_POWER_CONTROL sunximmc_rescan_card(SDIOID, 1); #endif /* CUSTOMER_HW */ break; } }
/* Customer function to control hw specific wlan gpios */ void dhd_customer_gpio_wlan_ctrl(int onoff) { switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); #if defined(CONFIG_LGE_BCM432X_PATCH) if (get_hw_rev() <= REV_1_2) { disable_irq(gpio_to_irq(TEGRA_GPIO_PQ5)); //by sjpark 11-03-10 gpio_set_value(TEGRA_GPIO_PQ5, 0); interrupt_en_flag = 1; //by sjpark 11-03-11 } else { disable_irq(gpio_to_irq(TEGRA_GPIO_PU2)); //by sjpark 11-03-10 gpio_set_value(TEGRA_GPIO_PU2, 0); interrupt_en_flag = 1; //by sjpark 11-03-11 } #endif #ifdef CUSTOMER_HW bcm_wlan_power_off(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 wifi_set_power(0, 0); #endif WL_ERROR(("=========== WLAN placed in RESET ========\n")); break; case WLAN_RESET_ON: WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); #if defined(CONFIG_LGE_BCM432X_PATCH) if (get_hw_rev() <= REV_1_2) gpio_set_value(TEGRA_GPIO_PQ5, 1); else gpio_set_value(TEGRA_GPIO_PU2, 1); mdelay(150); #endif #ifdef CUSTOMER_HW bcm_wlan_power_on(2); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW2 wifi_set_power(1, 0); #endif WL_ERROR(("=========== WLAN going back to live ========\n")); break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); #if defined(CONFIG_LGE_BCM432X_PATCH) if (get_hw_rev() <= REV_1_2) { gpio_set_value(TEGRA_GPIO_PQ5, 0); if(interrupt_en_flag == 1){ printk("[sj-debug] POWER OFF : enable irq.\n"); enable_irq(gpio_to_irq(TEGRA_GPIO_PQ5)); //by sjpark 11-03-10 interrupt_en_flag = 0; //by sjpark 11-03-11 } } else { gpio_set_value(TEGRA_GPIO_PU2, 0); if(interrupt_en_flag == 1){ printk("[sj-debug] POWER OFF : enable irq.\n"); enable_irq(gpio_to_irq(TEGRA_GPIO_PU2)); //by sjpark 11-03-10 interrupt_en_flag = 0; //by sjpark 11-03-11 } } mdelay(150); /* always turn on 32k clock */ // clk_disable(wifi_32k_clk); #endif #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif /* CUSTOMER_HW */ break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); #if defined(CONFIG_LGE_BCM432X_PATCH) /* Always turn on 32k clock wifi_32k_clk = clk_get_sys(NULL, "blink"); if (IS_ERR(wifi_32k_clk)) { pr_err("%s: unable to get blink clock\n", __func__); //return PTR_ERR(wifi_32k_clk); } clk_enable(wifi_32k_clk); printk("[Wi-Fi] wifi_32k_clk is enabled\n"); */ if (get_hw_rev() <= REV_1_2) { gpio_set_value(TEGRA_GPIO_PQ5, 1); } else { gpio_set_value(TEGRA_GPIO_PU2, 1); } mdelay(150); #endif #ifdef CUSTOMER_HW bcm_wlan_power_on(1); #endif /* CUSTOMER_HW */ /* Lets customer power to get stable */ OSL_DELAY(200); break; } }
/* Customer function to control hw specific wlan gpios */ void dhd_customer_gpio_wlan_ctrl(int onoff) { switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(2); #endif /* CUSTOMER_HW */ #if defined(CUSTOMER_HW2) wifi_set_power(0, WIFI_TURNOFF_DELAY); #endif #ifdef CUSTOMER_HW_AMLOGIC //extern_wifi_set_enable(0); #endif /* CUSTOMER_HW_AMLOGIC */ WL_ERROR(("=========== WLAN placed in RESET ========\n")); break; case WLAN_RESET_ON: WL_TRACE(("%s: call customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(2); OSL_DELAY(200); #endif /* CUSTOMER_HW */ #if defined(CUSTOMER_HW2) wifi_set_power(1, 200); #endif #ifdef CUSTOMER_HW_AMLOGIC extern_wifi_set_enable(0); mdelay(200); extern_wifi_set_enable(1); mdelay(200); sdio_reinit(); #endif /* CUSTOMER_HW_AMLOGIC */ mdelay(100); WL_ERROR(("=========== WLAN going back to live ========\n")); break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW_AMLOGIC extern_wifi_set_enable(0); #endif /* CUSTOMER_HW_AMLOGIC */ WL_ERROR(("=========== WLAN placed in POWER OFF ========\n")); break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(1); #endif /* CUSTOMER_HW */ #ifdef CUSTOMER_HW_AMLOGIC extern_wifi_set_enable(0); mdelay(200); extern_wifi_set_enable(1); mdelay(200); sdio_reinit(); #endif /* CUSTOMER_HW_AMLOGIC */ /* Lets customer power to get stable */ OSL_DELAY(200); WL_ERROR(("=========== WLAN placed in POWER ON ========\n")); break; } }
/* Customer function to control hw specific wlan gpios */ void dhd_customer_gpio_wlan_ctrl(int onoff) { switch (onoff) { case WLAN_RESET_OFF: WL_TRACE(("%s: call customer specific GPIO to insert WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(2); #endif /* CUSTOMER_HW */ #ifdef CONFIG_MACH_MAHIMAHI wifi_set_power(0, 0); #endif WL_ERROR(("=========== WLAN placed in RESET ========\n")); /* LGE_CHANGE_S [[email protected]] 2009-05-14, support start/stop */ #if defined(CONFIG_LGE_BCM432X_PATCH) && defined(CONFIG_ARCH_MSM) if (gpio_get_value(CONFIG_BCM4330_GPIO_WL_RESET)) { disable_irq(gpio_to_irq(CONFIG_BCM4330_GPIO_WL_RESET)); gpio_set_value(CONFIG_BCM4330_GPIO_WL_RESET, 0); } #endif /* defined(CONFIG_LGE_BCM432X_PATCH) && defined(CONFIG_ARCH_MSM) */ /* LGE_CHANGE_E [[email protected]] 2009-05-14, support start/stop */ break; case WLAN_RESET_ON: WL_TRACE(("%s: callc customer specific GPIO to remove WLAN RESET\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(2); #endif /* CUSTOMER_HW */ #ifdef CONFIG_MACH_MAHIMAHI wifi_set_power(1, 0); #endif WL_ERROR(("=========== WLAN going back to live ========\n")); /* LGE_CHANGE_S [[email protected]] 2009-05-14, support start/stop */ #if defined(CONFIG_LGE_BCM432X_PATCH) && defined(CONFIG_ARCH_MSM) if (!gpio_get_value(CONFIG_BCM4330_GPIO_WL_RESET)) { gpio_set_value(CONFIG_BCM4330_GPIO_WL_RESET, 1); mdelay(150); enable_irq(gpio_to_irq(CONFIG_BCM4330_GPIO_WL_RESET)); } #endif /* defined(CONFIG_LGE_BCM432X_PATCH) && defined(CONFIG_ARCH_MSM) */ /* LGE_CHANGE_E [[email protected]] 2009-05-14, support start/stop */ break; case WLAN_POWER_OFF: WL_TRACE(("%s: call customer specific GPIO to turn off WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_off(1); #endif /* CUSTOMER_HW */ /* LGE_CHANGE_S [[email protected]] 2009-03-05, for gpio set in dhd_linux */ #if defined(CONFIG_LGE_BCM432X_PATCH) && defined(CONFIG_ARCH_MSM) //gpio_tlmm_config(GPIO_CFG(CONFIG_BCM4330_GPIO_WL_RESET, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), GPIO_ENABLE); if (!gpio_get_value(CONFIG_BCM4330_GPIO_WL_RESET)) { gpio_set_value(CONFIG_BCM4330_GPIO_WL_RESET, 1); enable_irq(gpio_to_irq(CONFIG_BCM4330_GPIO_WL_RESET)); } gpio_set_value(CONFIG_BCM4330_GPIO_WL_RESET, 0); //gpio_tlmm_config(GPIO_CFG(CONFIG_BCM4330_GPIO_WL_RESET, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA), GPIO_ENABLE); #endif /* defined(CONFIG_LGE_BCM432X_PATCH) && defined(CONFIG_ARCH_MSM) */ /* LGE_CHANGE_E [[email protected]] 2009-03-05, for gpio set in dhd_linux */ break; case WLAN_POWER_ON: WL_TRACE(("%s: call customer specific GPIO to turn on WL_REG_ON\n", __FUNCTION__)); #ifdef CUSTOMER_HW bcm_wlan_power_on(1); #endif /* CUSTOMER_HW */ /* LGE_CHANGE_S [[email protected]] 2009-03-05, for gpio set in dhd_linux */ #if defined(CONFIG_LGE_BCM432X_PATCH) && defined(CONFIG_ARCH_MSM) gpio_set_value(CONFIG_BCM4330_GPIO_WL_RESET, 1); #endif /* defined(CONFIG_LGE_BCM432X_PATCH) && defined(CONFIG_ARCH_MSM) */ /* LGE_CHANGE_E [[email protected]] 2009-03-05, for gpio set in dhd_linux */ /* Lets customer power to get stable */ OSL_DELAY(200); break; } }