Dumb PMIC mode and wakeable GPIO with falling edge interrupt

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Dumb PMIC mode and wakeable GPIO with falling edge interrupt

1,439 次查看
falstaff
Senior Contributor I

Hi,

We use i.MX 7Dual with dumb PMIC to control the PMIC. We use the  SNVS_PMIC_ON_REQ signal to turn off the PMIC. This works fine until we use one of the wakeable GPIOs with a falling edge interrupt configured: The falling edge seems to cause a interrupt immediately, and waking up the PMIC again (SNVS_PMIC_ON_REQ goes high). This can be reproduced on Sabre:

  1. Enable interrupt on GPIO1_IO09
    mw.l 0x30200014 0x00000200
  2. Falling edge...
    mw.l 0x3020000c 0x000C0000
  3. Use Dumb PMIC mode to power off the SoC
    mw.l 0x30370038 0x60

At this point I would expect the SoC to stay off, but it immediately turns on again. The reason for that is that the SNVS_PMIC_ON_REQ signals goes back on again (see GPIO9_IRQ_falling_edge.png, that is the measurement on our platform, but it behaves the same on Sabre). We populated a external Pull-Up, but this seems not to alleviate the problem (see GPIO9_IRQ_falling_edge_external_pullup.png).

Is this a known problem?

A work around would be to disable all the interrupt... However, the Linux GPIO driver currently does not support such a work-around.

Best regards,

Stefan

标签 (4)
标记 (3)
0 项奖励
回复
1 回复

1,042 次查看
jamesbone
NXP TechSupport
NXP TechSupport

It seems that you are having a false detect in the Interrupt module,  you can try to do the configuration in this way

  1. Falling Edge .....
    mw.l 0x3020000c 0x000C0000
  2. Enable interrupt on GPIO1_IO09
    mw.l 0x30200014 0x00000200
  3. Use Dumb PMIC mode to power off the SoC
    mw.l 0x30370038 0x60
0 项奖励
回复