NUC980使用EINT PE10唤醒系统,PE10无法再作为GPIO使用

Nuvoton_N329 |浏览63次
收藏|2024/02/02 10:41

满意回答

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;

}


nuvoton2022

其他回答(0)
0人关注该问题
+1
 加载中...