/* that function will returns : 1) return : Host gpio interrupt number per customer platform 2) irq_flags_ptr : Type of Host interrupt as Level or Edge NOTE : Customer should check his platform definitions and hist Host Interrupt spec to figure out the proper setting for his platform. BRCM provides just reference settings as example. */ int dhd_customer_oob_irq_map(unsigned long *irq_flags_ptr) { int host_oob_irq = 0; #if defined(CUSTOM_OOB_GPIO_NUM) if (dhd_oob_gpio_num < 0) { dhd_oob_gpio_num = CUSTOM_OOB_GPIO_NUM; } #endif if (dhd_oob_gpio_num < 0) { WL_ERROR(("%s: ERROR customer specific Host GPIO is NOT defined \n", __FUNCTION__)); return (dhd_oob_gpio_num); } WL_ERROR(("%s: customer specific Host GPIO number is (%d), flag=0x%X\n", __FUNCTION__, dhd_oob_gpio_num, (unsigned int)*irq_flags_ptr)); #ifdef CONFIG_MACH_SAMSUNG_P3 host_oob_irq = gpio_to_irq(dhd_oob_gpio_num); #elif defined(SYSLSI_SPECIFIC) host_oob_irq = dhd_oob_gpio_num; #elif defined(CONFIG_WIFI_CONTROL_FUNC) host_oob_irq = wifi_get_irq_number(irq_flags_ptr); #endif return (host_oob_irq); }
/* This function will return: * 1) return : Host gpio interrupt number per customer platform * 2) irq_flags_ptr : Type of Host interrupt as Level or Edge * * NOTE : * Customer should check his platform definitions * and his Host Interrupt spec * to figure out the proper setting for his platform. * Broadcom provides just reference settings as example. * */ int dhd_customer_oob_irq_map(unsigned long *irq_flags_ptr) { int host_oob_irq = 0; #if defined(CUSTOMER_HW2) || defined(CUSTOMER_HW_SAMSUNG) host_oob_irq = wifi_get_irq_number(irq_flags_ptr); #else #if defined(CUSTOM_OOB_GPIO_NUM) if (dhd_oob_gpio_num < 0) { dhd_oob_gpio_num = CUSTOM_OOB_GPIO_NUM; } #endif /* CUSTOMER_OOB_GPIO_NUM */ if (dhd_oob_gpio_num < 0) { WL_ERROR(("%s: ERROR customer specific Host GPIO is NOT defined \n", __FUNCTION__)); return (dhd_oob_gpio_num); } WL_ERROR(("%s: customer specific Host GPIO number is (%d)\n", __FUNCTION__, dhd_oob_gpio_num)); #if defined CUSTOMER_HW host_oob_irq = MSM_GPIO_TO_INT(dhd_oob_gpio_num); #elif defined CUSTOMER_HW3 gpio_request(dhd_oob_gpio_num, "oob irq"); host_oob_irq = gpio_to_irq(dhd_oob_gpio_num); gpio_direction_input(dhd_oob_gpio_num); #endif /* CUSTOMER_HW */ #endif /* CUSTOMER_HW2 || CUSTOMER_HW_SAMSUNG */ return (host_oob_irq); }
/* This function will return: * 1) return : Host gpio interrupt number per customer platform * 2) irq_flags_ptr : Type of Host interrupt as Level or Edge * * NOTE : * Customer should check his platform definitions * and his Host Interrupt spec * to figure out the proper setting for his platform. * Broadcom provides just reference settings as example. * */ int dhd_customer_oob_irq_map(unsigned long *irq_flags_ptr) { int host_oob_irq = 0; #if defined(CUSTOMER_HW4) host_oob_irq = wifi_get_irq_number(irq_flags_ptr); #else #if defined(CUSTOM_OOB_GPIO_NUM) if (dhd_oob_gpio_num < 0) { dhd_oob_gpio_num = CUSTOM_OOB_GPIO_NUM; } #endif /* CUSTOMER_OOB_GPIO_NUM */ if (dhd_oob_gpio_num < 0) { WL_ERROR(("%s: ERROR customer specific Host GPIO is NOT defined \n", __FUNCTION__)); return (dhd_oob_gpio_num); } WL_ERROR(("%s: customer specific Host GPIO number is (%d)\n", __FUNCTION__, dhd_oob_gpio_num)); #endif return (host_oob_irq); }
int dhd_customer_oob_irq_map(unsigned long *irq_flags_ptr) { int host_oob_irq; #ifdef CUSTOMER_HW2 host_oob_irq = wifi_get_irq_number(irq_flags_ptr); #else #if defined(CUSTOM_OOB_GPIO_NUM) if (dhd_oob_gpio_num < 0) { dhd_oob_gpio_num = CUSTOM_OOB_GPIO_NUM; } #endif *irq_flags_ptr = IRQF_TRIGGER_FALLING; if (dhd_oob_gpio_num < 0) { WL_ERROR(("%s: ERROR customer specific Host GPIO is NOT defined \n", __FUNCTION__)); return (dhd_oob_gpio_num); } WL_ERROR(("%s: customer specific Host GPIO number is (%d)\n", __FUNCTION__, dhd_oob_gpio_num)); host_oob_irq = sdioh_mmc_irq(dhd_oob_gpio_num); #endif return (host_oob_irq); }
/* that function will returns : 1) return : Host gpio interrupt number per customer platform 2) irq_flags_ptr : Type of Host interrupt as Level or Edge NOTE : Customer should check his platform definitions and hist Host Interrupt spec to figure out the proper setting for his platform. BRCM provides just reference settings as example. */ int dhd_customer_oob_irq_map(unsigned long *irq_flags_ptr) { int host_oob_irq = 0; printf("%s:%d\n",__FUNCTION__,__LINE__); host_oob_irq = wifi_get_irq_number(irq_flags_ptr); WL_ERROR(("%s: customer specific Host GPIO number is (%d)\n", __FUNCTION__, host_oob_irq)); return (host_oob_irq); }
/* This function will return: * 1) return : Host gpio interrupt number per customer platform * 2) irq_flags_ptr : Type of Host interrupt as Level or Edge * * NOTE : * Customer should check his platform definitions * and his Host Interrupt spec * to figure out the proper setting for his platform. * Broadcom provides just reference settings as example. * */ int dhd_customer_oob_irq_map(unsigned long *irq_flags_ptr) { int host_oob_irq = 0; #ifdef CONFIG_WIFI_CONTROL_EXPORT host_oob_irq = bcm_wlan_get_irq(); #endif /* CONFIG_WIFI_CONTROL_EXPORT */ #ifdef CONFIG_WIFI_CONTROL_FUNC host_oob_irq = wifi_get_irq_number(irq_flags_ptr); #endif /* CONFIG_WIFI_CONTROL_FUNC */ return (host_oob_irq); }
/* This function will return: * 1) return : Host gpio interrupt number per customer platform * 2) irq_flags_ptr : Type of Host interrupt as Level or Edge * * NOTE : * Customer should check his platform definitions * and his Host Interrupt spec * to figure out the proper setting for his platform. * Broadcom provides just reference settings as example. * */ int dhd_customer_oob_irq_map(unsigned long *irq_flags_ptr) { int host_oob_irq = 0; int ret; #if defined(CUSTOMER_HW2) host_oob_irq = wifi_get_irq_number(irq_flags_ptr); #elif defined(NUFRONT_OOB) printk("GPIO(WL_HOST_WAKE_UP) = %d\n", 0); ret = gpio_request(0, "WL_HOST_WAKEUP"); /* use wakeup domain GPIO3 LOW_BAT_INIT instead */ //ret = gpio_request(3, "WL_HOST_WAKEUP"); if(ret < 0) printk(KERN_ERR "request WL_HOST_WAKEUP failed\n"); host_oob_irq = gpio_to_irq(0); gpio_direction_input(0); printk("host_oob_irq: %d \r\n", host_oob_irq); // host_oob_irq = bcm_wlan_get_oob_irq(); #else #if defined(CUSTOM_OOB_GPIO_NUM) if (dhd_oob_gpio_num < 0) { dhd_oob_gpio_num = CUSTOM_OOB_GPIO_NUM; } #endif /* CUSTOMER_OOB_GPIO_NUM */ if (dhd_oob_gpio_num < 0) { WL_ERROR(("%s: ERROR customer specific Host GPIO is NOT defined \n", __FUNCTION__)); return (dhd_oob_gpio_num); } WL_ERROR(("%s: customer specific Host GPIO number is (%d)\n", __FUNCTION__, dhd_oob_gpio_num)); #if defined CUSTOMER_HW host_oob_irq = MSM_GPIO_TO_INT(dhd_oob_gpio_num); #elif defined CUSTOMER_HW3 gpio_request(dhd_oob_gpio_num, "oob irq"); host_oob_irq = gpio_to_irq(dhd_oob_gpio_num); gpio_direction_input(dhd_oob_gpio_num); #endif /* CUSTOMER_HW */ #endif return (host_oob_irq); }
/* This function will return: * 1) return : Host gpio interrupt number per customer platform * 2) irq_flags_ptr : Type of Host interrupt as Level or Edge * * NOTE : * Customer should check his platform definitions * and his Host Interrupt spec * to figure out the proper setting for his platform. * Broadcom provides just reference settings as example. * */ int dhd_customer_oob_irq_map(unsigned long *irq_flags_ptr) { int host_oob_irq = 0; #if defined(CUSTOMER_HW2) host_oob_irq = wifi_get_irq_number(irq_flags_ptr); #if defined(BOARD_INTEL) if (!wifi_irq_is_fastirq()) { if (gpio_request(host_oob_irq, "bcm43xx_irq") < 0) { WL_ERROR(("%s: Error on gpio_request bcm43xx_irq: %d\n", __func__, host_oob_irq)); return 1; } if (gpio_direction_input(host_oob_irq) < 0) { WL_ERROR(("%s: Error on gpio_direction_input\n", __func__)); return 1; } if (gpio_set_debounce(host_oob_irq, 0) < 0) WL_ERROR(("%s: Error on gpio_set_debounce\n", __func__)); host_oob_irq = gpio_to_irq(host_oob_irq); } #endif /* BOARD_INTEL */ #else #if defined(CUSTOM_OOB_GPIO_NUM) if (dhd_oob_gpio_num < 0) { dhd_oob_gpio_num = CUSTOM_OOB_GPIO_NUM; } #endif /* CUSTOMER_OOB_GPIO_NUM */ if (dhd_oob_gpio_num < 0) { WL_ERROR(("%s: ERROR customer specific Host GPIO is NOT defined \n", __FUNCTION__)); return (dhd_oob_gpio_num); } WL_ERROR(("%s: customer specific Host GPIO number is (%d)\n", __FUNCTION__, dhd_oob_gpio_num)); #if defined CUSTOMER_HW host_oob_irq = MSM_GPIO_TO_INT(dhd_oob_gpio_num); #elif defined CUSTOMER_HW3 gpio_request(dhd_oob_gpio_num, "oob irq"); host_oob_irq = gpio_to_irq(dhd_oob_gpio_num); gpio_direction_input(dhd_oob_gpio_num); #endif /* CUSTOMER_HW */ #endif return (host_oob_irq); }
int dhd_customer_oob_irq_map(unsigned long *irq_flags_ptr) { int host_oob_irq = 0; //&*&*&*JohWan1 mod BCM4329 OOB support #if 0 #ifdef CUSTOMER_HW2 host_oob_irq = wifi_get_irq_number(irq_flags_ptr); #else /* for NOT CUSTOMER_HW2 */ #if defined(CUSTOM_OOB_GPIO_NUM) if (dhd_oob_gpio_num < 0) { dhd_oob_gpio_num = CUSTOM_OOB_GPIO_NUM; } #endif if (dhd_oob_gpio_num < 0) { WL_ERROR(("%s: ERROR customer specific Host GPIO is NOT defined \n", __FUNCTION__)); return (dhd_oob_gpio_num); } WL_ERROR(("%s: customer specific Host GPIO number is (%d)\n", __FUNCTION__, dhd_oob_gpio_num)); #if defined CUSTOMER_HW host_oob_irq = MSM_GPIO_TO_INT(dhd_oob_gpio_num); #elif defined CUSTOMER_HW3 gpio_request(dhd_oob_gpio_num, "oob irq"); host_oob_irq = gpio_to_irq(dhd_oob_gpio_num); gpio_direction_input(dhd_oob_gpio_num); #endif /* CUSTOMER_HW */ #endif /* CUSTOMER_HW2 */ #else //if 0 { //BOARD_ID_EVT3 gpio_direction_input(CUSTOM_OOB_GPIO_NUM); host_oob_irq = OMAP_GPIO_IRQ(CUSTOM_OOB_GPIO_NUM); printk("dhd_customer_oob_irq_map irg = %d \n",host_oob_irq); } #endif //if 0 //&*&*&*JohWan2 mod BCM4329 OOB support return (host_oob_irq); }
int dhd_customer_oob_irq_unmap(void) { #if defined(CUSTOMER_HW2) || defined(CUSTOMER_HW4) int host_oob_irq = 0; long unsigned int irq_flags_ptr; host_oob_irq = wifi_get_irq_number(&irq_flags_ptr); if (host_oob_irq < 0) WL_ERROR(("%s: wifi_get_irq_number returned %d\n", __func__, host_oob_irq)); else { if (gpio_set_debounce(host_oob_irq, 1) < 0) WL_ERROR(("%s: Error on gpio_set_debounce\n", __func__)); gpio_free(host_oob_irq); } #endif return 0; }
/* This function will return: * 1) return : Host gpio interrupt number per customer platform * 2) irq_flags_ptr : Type of Host interrupt as Level or Edge * * NOTE : * Customer should check his platform definitions * and his Host Interrupt spec * to figure out the proper setting for his platform. * Broadcom provides just reference settings as example. * */ int dhd_customer_oob_irq_map(unsigned long *irq_flags_ptr) { int host_oob_irq = 0; #ifdef CUSTOMER_HW2 host_oob_irq = wifi_get_irq_number(irq_flags_ptr); #elif defined(HARDKERNEL_OOB) printk("GPIO(WL_HOST_WAKE) = EXYNOS4_GPX0(7) = %d\n", EXYNOS4_GPX0(7)); host_oob_irq = gpio_to_irq(EXYNOS4_GPX0(7)); gpio_direction_input(EXYNOS4_GPX0(7)); printk("host_oob_irq: %d \r\n", host_oob_irq); #else #if defined(CUSTOM_OOB_GPIO_NUM) if (dhd_oob_gpio_num < 0) { dhd_oob_gpio_num = CUSTOM_OOB_GPIO_NUM; } #endif /* CUSTOMER_HW2 */ if (dhd_oob_gpio_num < 0) { WL_ERROR(("%s: ERROR customer specific Host GPIO is NOT defined \n", __FUNCTION__)); return (dhd_oob_gpio_num); } WL_ERROR(("%s: customer specific Host GPIO number is (%d)\n", __FUNCTION__, dhd_oob_gpio_num)); #if defined CUSTOMER_HW host_oob_irq = MSM_GPIO_TO_INT(dhd_oob_gpio_num); #elif defined CUSTOMER_HW3 gpio_request(dhd_oob_gpio_num, "oob irq"); host_oob_irq = gpio_to_irq(dhd_oob_gpio_num); gpio_direction_input(dhd_oob_gpio_num); #endif /* CUSTOMER_HW */ #endif /* CUSTOMER_HW2 */ return (host_oob_irq); }
/* This function will return: * 1) return : Host gpio interrupt number per customer platform * 2) irq_flags_ptr : Type of Host interrupt as Level or Edge * * NOTE : * Customer should check his platform definitions * and his Host Interrupt spec * to figure out the proper setting for his platform. * Broadcom provides just reference settings as example. * */ int dhd_customer_oob_irq_map(unsigned long *irq_flags_ptr) { int host_oob_irq = 0; #ifdef CUSTOMER_HW2 host_oob_irq = wifi_get_irq_number(irq_flags_ptr); #else #if defined(CUSTOM_OOB_GPIO_NUM) if (dhd_oob_gpio_num < 0) { dhd_oob_gpio_num = CUSTOM_OOB_GPIO_NUM; } #endif /* CUSTOMER_HW2 */ dhd_oob_gpio_num = 1*32 + 24; if (dhd_oob_gpio_num < 0) { WL_ERROR(("%s: ERROR customer specific Host GPIO is NOT defined \n", __FUNCTION__)); return (dhd_oob_gpio_num); } WL_ERROR(("%s: customer specific Host GPIO number is (%d)\n", __FUNCTION__, dhd_oob_gpio_num)); #if defined CUSTOMER_HW host_oob_irq = MSM_GPIO_TO_INT(dhd_oob_gpio_num); #elif defined CUSTOMER_HW3 gpio_request(dhd_oob_gpio_num, "oob irq"); host_oob_irq = gpio_to_irq(dhd_oob_gpio_num); gpio_direction_input(dhd_oob_gpio_num); #endif /* CUSTOMER_HW */ #endif /* CUSTOMER_HW2 */ gpio_request(dhd_oob_gpio_num, "wl-host-wake"); host_oob_irq = gpio_to_irq(dhd_oob_gpio_num); gpio_direction_input(dhd_oob_gpio_num); printk(KERN_ERR"fxz-%s: called [%d]\n", __func__, host_oob_irq); return (host_oob_irq); }
/* This function will return: * 1) return : Host gpio interrupt number per customer platform * 2) irq_flags_ptr : Type of Host interrupt as Level or Edge * * NOTE : * Customer should check his platform definitions * and his Host Interrupt spec * to figure out the proper setting for his platform. * Broadcom provides just reference settings as example. * */ int dhd_customer_oob_irq_map(unsigned long *irq_flags_ptr) { int host_oob_irq = 0; #if (defined(CUSTOMER_HW2) || defined(CUSTOMER_HW4)) && !defined(PLATFORM_MPS) printk(KERN_ERR "irq 0011\n"); host_oob_irq = wifi_get_irq_number(irq_flags_ptr); #else printk(KERN_ERR "irq 0022\n"); #if defined(CUSTOM_OOB_GPIO_NUM) if (dhd_oob_gpio_num < 0) { dhd_oob_gpio_num = CUSTOM_OOB_GPIO_NUM; } #endif /* CUSTOMER_OOB_GPIO_NUM */ if (dhd_oob_gpio_num < 0) { WL_ERROR(("%s: ERROR customer specific Host GPIO is NOT defined \n", __FUNCTION__)); return (dhd_oob_gpio_num); } WL_ERROR(("%s: customer specific Host GPIO number is (%d)\n", __FUNCTION__, dhd_oob_gpio_num)); #if defined CUSTOMER_HW printk(KERN_ERR "irq 0044\n", irq); host_oob_irq = MSM_GPIO_TO_INT(dhd_oob_gpio_num); #elif defined CUSTOMER_HW3 || defined(PLATFORM_MPS) printk(KERN_ERR "irq 0055\n", irq); gpio_request(dhd_oob_gpio_num, "oob irq"); host_oob_irq = gpio_to_irq(dhd_oob_gpio_num); gpio_direction_input(dhd_oob_gpio_num); #endif /* CUSTOMER_HW */ #endif /* CUSTOMER_HW2 || CUSTOMER_HW4 */ return (host_oob_irq); }