.wake_host_irq = { // BT_HOST_WAKE, for bt wakeup host when it is in deep sleep
.gpio = {
.io = RK30_PIN6_PA7, // set io to INVALID_GPIO for disable it
+ .enable = GPIO_LOW, // set GPIO_LOW for falling, set 0 for rising
.iomux = {
.name = NULL,
},
},
- .is_falling = 1, // trigger type, set 1 for falling, set 0 for rising
},
.rts_gpio = { // UART_RTS, enable or disable BT's data coming
if (gpio_is_valid(irq->gpio.io))
{
- ret = gpio_pull_updown(irq->gpio.io, irq->is_falling?GPIOPullUp:GPIOPullDown);
+ ret = gpio_pull_updown(irq->gpio.io, (irq->gpio.enable==GPIO_LOW)?GPIOPullUp:GPIOPullDown);
if (ret) goto fail2;
- DBG("Request irq for bt wakeup host\n");
+ LOG("Request irq for bt wakeup host\n");
irq->irq = gpio_to_irq(irq->gpio.io);
sprintf(irq->name, "%s_irq", irq->gpio.name);
ret = request_irq(irq->irq,
rfkill_rk_wake_host_irq,
- irq->is_falling?IRQF_TRIGGER_FALLING:IRQF_TRIGGER_RISING,
+ (irq->gpio.enable==GPIO_LOW)?IRQF_TRIGGER_FALLING:IRQF_TRIGGER_RISING,
irq->name,
rfkill);
if (ret) goto fail2;
+ LOG("** disable irq\n");
disable_irq(irq->irq);
ret = enable_irq_wake(irq->irq);
if (ret) goto fail3;
rfkill_rk_sleep_bt_internal(rfkill, sleep);
+#ifdef CONFIG_BT_AUTOSLEEP
if (sleep==BT_WAKEUP)
{
// ÖØÐÂÉèÖÃdelay work
schedule_delayed_work(&rfkill->bt_sleep_delay_work,
msecs_to_jiffies(BT_WAKEUP_TIMEOUT));
}
+#endif
}
EXPORT_SYMBOL(rfkill_rk_sleep_bt);
{
// ½ûÓõô BT_WAKE_HOST IRQ£¬È·±£ÔÚϵͳ»½ÐѺ󲻻áÒòBTµÄ²Ù×÷
// ¶ø¶à´Î´¥·¢¸ÃÖжÏ
- DBG("** disable bt wakeup host\n");
+ LOG("** disable irq\n");
disable_irq(wake_host_irq->irq);
}