这两天在调一款触摸屏的驱动,在调试过程中发现,在休眠的时候,所用到的几个GPIO引脚的状态会自动变为低电平,在唤醒后又会回到高电平。但是在代码里并没有显式地去拉低/拉高。很明显这不是我们想要的,如果这样的话,GPIO的状态都无法自己控制,还怎么调呢?
问了下板子的FAE,GPIO的状态在休眠时,是预定义的。代码在
arch/mips/jz4770/boards/gps1/gps1-pm.c
其中gps1是板子类型
29 int gpio_sleep_state_table[][2] = {
30 /* GPIO Group - A */
31 {32 * 0 + 0, GSS_INPUT_NOPULL}, /* NC */
32 {32 * 0 + 1, GSS_INPUT_PULL }, /* ACC_INT2 input pull*/
33 {32 * 0 + 2, GSS_IGNORE }, /* FVDD_EN */
34 {32 * 0 + 3, GSS_INPUT_NOPULL}, /* SCLK */
35 {32 * 0 + 4, GSS_INPUT_NOPULL}, /* NC */
36 {32 * 0 + 5, GSS_INPUT_NOPULL}, /* NC */
37 {32 * 0 + 6, GSS_INPUT_NOPULL}, /* PA6/SDATA */
38 {32 * 0 + 7, GSS_INPUT_NOPULL}, /* NC */
39 {32 * 0 + 8, GSS_INPUT_NOPULL}, /* NC */
40 {32 * 0 +