#ifdef CONFIG_PM
static int bcm4329_rfkill_suspend(struct platform_device *pdev, pm_message_t state)
-{
- DBG("%s\n",__FUNCTION__);
+{
+ DBG("%s\n",__FUNCTION__);
+
+ rk29_mux_api_set(GPIO2A7_UART2RTSN_NAME, GPIO2L_GPIO2A7);
+ gpio_request(RK29_PIN2_PA7, "uart2_rts");
+ gpio_direction_output(RK29_PIN2_PA7, 0);
+ gpio_set_value(RK29_PIN2_PA7, GPIO_HIGH);
+
return 0;
}
static int bcm4329_rfkill_resume(struct platform_device *pdev)
{
- DBG("%s\n",__FUNCTION__);
+ DBG("%s\n",__FUNCTION__);
+
btWakeupHostLock();
resetBtHostSleepTimer();
+
+ gpio_set_value(RK29_PIN2_PA7, GPIO_LOW);
+ rk29_mux_api_set(GPIO2A7_UART2RTSN_NAME, GPIO2L_UART2_RTS_N);
+
return 0;
}
#else
static irqreturn_t bcm4329_wake_host_irq(int irq, void *dev)
{
+ DBG("%s\n",__FUNCTION__);
+
btWakeupHostLock();
resetBtHostSleepTimer();
return IRQ_HANDLED;
static int bcm4329_rfkill_suspend(struct platform_device *pdev, pm_message_t state)
{
DBG("%s\n",__FUNCTION__);
+
+ rk29_mux_api_set(GPIO2A7_UART2RTSN_NAME, GPIO2L_GPIO2A7);
+ gpio_request(RK29_PIN2_PA7, "uart2_rts");
+ gpio_direction_output(RK29_PIN2_PA7, 0);
+ gpio_set_value(RK29_PIN2_PA7, GPIO_HIGH);
+
return 0;
}
static int bcm4329_rfkill_resume(struct platform_device *pdev)
{
DBG("%s\n",__FUNCTION__);
+
btWakeupHostLock();
resetBtHostSleepTimer();
+
+ gpio_set_value(RK29_PIN2_PA7, GPIO_LOW);
+ rk29_mux_api_set(GPIO2A7_UART2RTSN_NAME, GPIO2L_UART2_RTS_N);
+
return 0;
}
#else
static irqreturn_t bcm4329_wake_host_irq(int irq, void *dev)
{
+ DBG("%s\n",__FUNCTION__);
+
btWakeupHostLock();
resetBtHostSleepTimer();
return IRQ_HANDLED;