static void jz_board_do_resume(unsigned long *ptr) { unsigned char i; /* Restore GPIO registers */ for(i = 1; i < GPIO_PORT_NUM; i++) { REG_GPIO_PXFUNS(i) = *ptr; REG_GPIO_PXFUNC(i) = ~(*ptr++); REG_GPIO_PXSELS(i) = *ptr; REG_GPIO_PXSELC(i) = ~(*ptr++); REG_GPIO_PXDIRS(i) = *ptr; REG_GPIO_PXDIRC(i) = ~(*ptr++); REG_GPIO_PXPES(i) = *ptr; REG_GPIO_PXPEC(i) = ~(*ptr++); REG_GPIO_PXIMS(i)=*ptr; REG_GPIO_PXIMC(i)=~(*ptr++); REG_GPIO_PXDATS(i)=*ptr; REG_GPIO_PXDATC(i)=~(*ptr++); REG_GPIO_PXTRGS(i)=*ptr; REG_GPIO_PXTRGC(i)=~(*ptr++); } /* Print messages of GPIO registers for debug */ for(i=0;i<GPIO_PORT_NUM;i++) { dprintk("resume dat:%x pin:%x fun:%x sel:%x dir:%x pull:%x msk:%x trg:%x\n", \ REG_GPIO_PXDAT(i),REG_GPIO_PXPIN(i),REG_GPIO_PXFUN(i),REG_GPIO_PXSEL(i), \ REG_GPIO_PXDIR(i),REG_GPIO_PXPE(i),REG_GPIO_PXIM(i),REG_GPIO_PXTRG(i)); } }
void board_restore_gpio(unsigned int *ptr){ int i = 0; for(i = 0; i < GPIO_PORT_NUM; i++) { REG_GPIO_PXFUNS(i) = *ptr; REG_GPIO_PXFUNC(i) = ~(*ptr++); REG_GPIO_PXSELS(i) = *ptr; REG_GPIO_PXSELC(i) = ~(*ptr++); REG_GPIO_PXDIRS(i) = *ptr; REG_GPIO_PXDIRC(i) = ~(*ptr++); REG_GPIO_PXPES(i) = *ptr; REG_GPIO_PXPEC(i) = ~(*ptr++); REG_GPIO_PXIMS(i)=*ptr; REG_GPIO_PXIMC(i)=~(*ptr++); REG_GPIO_PXDATS(i)=*ptr; REG_GPIO_PXDATC(i)=~(*ptr++); REG_GPIO_PXTRGS(i)=*ptr; REG_GPIO_PXTRGC(i)=~(*ptr++); } return; }