Beispiel #1
0
static int bcm4329_rfkill_resume(struct platform_device *pdev)
{  
    DBG("%s\n",__FUNCTION__);     
    btWakeupHostLock();
    resetBtHostSleepTimer();
    return 0;
}
static irqreturn_t bcm4329_wake_host_irq(int irq, void *dev)
{
    DBG("%s\n",__FUNCTION__);

    btWakeupHostLock();
    resetBtHostSleepTimer();
	return IRQ_HANDLED;
}
static int bcm4329_rfkill_resume(struct platform_device *pdev)
{  
    DBG("%s\n",__FUNCTION__);    
	
    btWakeupHostLock();
    resetBtHostSleepTimer();

	gpio_set_value(UART_RTS, GPIO_LOW);
	IOMUX_UART_RTS;
	
    return 0;
}
static int bcm4329_set_block(void *data, bool blocked)
{
    	DBG("%s---blocked :%d\n", __FUNCTION__, blocked);

        IOMUX_BT_GPIO_POWER;
        IOMUX_BT_GPIO_RESET;

    	if (false == blocked) {
       		gpio_set_value(BT_GPIO_POWER, GPIO_HIGH);  /* bt power on */
            
              gpio_set_value(BT_GPIO_RESET, GPIO_LOW);
              mdelay(20);
    		gpio_set_value(BT_GPIO_RESET, GPIO_HIGH);  /* bt reset deactive*/
    		mdelay(20);
        
#if BT_WAKE_HOST_SUPPORT     
            btWakeupHostLock();
#endif         
        	pr_info("bt turn on power\n");
    	}
    	else {
#if BT_WAKE_HOST_SUPPORT     
            btWakeupHostUnlock();
#endif
    		if (!rk29sdk_wifi_power_state) {
    			gpio_set_value(BT_GPIO_POWER, GPIO_LOW);  /* bt power off */
        		mdelay(20);	
        		pr_info("bt shut off power\n");
    		}else {
    			pr_info("bt shouldn't shut off power, wifi is using it!\n");
    		}

    		gpio_set_value(BT_GPIO_RESET, GPIO_LOW);  /* bt reset active*/
    		mdelay(20);
    	}

    	rk29sdk_bt_power_state = !blocked;
    	return 0;
}
Beispiel #5
0
static irqreturn_t bcm4329_wake_host_irq(int irq, void *dev)
{
    btWakeupHostLock();
    resetBtHostSleepTimer();
	return IRQ_HANDLED;
}