2024/02/02 10:52
添加如下代码:可将PE10作为GPIO来唤醒系统,且PE10在非power down时候依然保有sysfs的GPIO功能
在nuc980_gpio_probe()中调用GPE10_init()
if(pdev->id == 0)
{
printk("%s - pdev = %s\n", __func__, pdev->name);
....
GPE10_init();
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//GPIO wake up
static irqreturn_t PE10IntHandler(int irq, void *dev_id){
printk("@PE10IntHandler irq %d\n",irq);
return IRQ_HANDLED;
}
static int GPE10_init(void)
{
int irqno;
int err;
irqno=IRQ_GPIO_START+NUC980_PE10;
if ((err = request_irq(irqno,PE10IntHandler,IRQF_TRIGGER_RISING|IRQF_TRIGGER_FALLING|IRQF_NO_SUSPEND,"NUC980_PE10",NULL)) != 0)
{
printk("register NUC980_PE10 irq failed %d\n",err);
}
__raw_writel((1<<3) | __raw_readl(REG_WKUPSER0),REG_WKUPSER0);
enable_irq_wake(irqno);
return 0;
}