void mt_gpio_set_default_chip(void) { GPIO_REGS *pReg = (GPIO_REGS*)(GPIO_BASE); unsigned int idx; u32 val; for (idx = 0; idx < sizeof(pReg->dir)/sizeof(pReg->dir[0]); idx++){ val = gpio_init_dir_data[idx]; GPIO_WR32(&pReg->dir[idx],val); } for (idx = 0; idx < sizeof(pReg->pullen)/sizeof(pReg->pullen[0]); idx++){ val = gpio_init_pullen_data[idx]; GPIO_WR32(&pReg->pullen[idx],val); } for (idx = 0; idx < sizeof(pReg->pullsel)/sizeof(pReg->pullsel[0]); idx++){ val = gpio_init_pullsel_data[idx]; GPIO_WR32(&pReg->pullsel[idx],val); } /*for keypad special register*/ mt_set_gpio_pull_select(GPIO74, GPIO74_PULL); mt_set_gpio_pull_select(GPIO75, GPIO75_PULL); mt_set_gpio_pull_select(GPIO92, GPIO92_PULL); mt_set_gpio_pull_select(GPIO93, GPIO93_PULL); mt_set_gpio_pull_select(GPIO167, GPIO167_PULL); mt_set_gpio_pull_select(GPIO168, GPIO168_PULL); for (idx = 0; idx < sizeof(pReg->dout)/sizeof(pReg->dout[0]); idx++) { val = gpio_init_dout_data[idx]; GPIO_WR32(&pReg->dout[idx],val); } for (idx = 0; idx < sizeof(pReg->mode)/sizeof(pReg->mode[0]); idx++) { val = gpio_init_mode_data[idx]; GPIO_WR32(&pReg->mode[idx],val); } for (idx = 0; idx < sizeof(pReg->smt)/sizeof(pReg->smt[0]); idx++) { val = gpio_init_smt_data[idx]; GPIO_WR32(&pReg->smt[idx],val); } /*for msdc special smt */ mt_set_gpio_smt(GPIO_SMT_GRP25, GPIO_SMT_GROUP_25); mt_set_gpio_smt(GPIO_SMT_GRP26, GPIO_SMT_GROUP_26); mt_set_gpio_smt(GPIO_SMT_GRP27, GPIO_SMT_GROUP_27); mt_set_gpio_smt(GPIO_SMT_GRP28, GPIO_SMT_GROUP_28); mt_set_gpio_smt(GPIO_SMT_GRP29, GPIO_SMT_GROUP_29); mt_set_gpio_smt(GPIO_SMT_GRP30, GPIO_SMT_GROUP_30); mt_set_gpio_smt(GPIO_SMT_GRP31, GPIO_SMT_GROUP_31); mt_set_gpio_smt(GPIO_SMT_GRP32, GPIO_SMT_GROUP_32); mt_set_gpio_smt(GPIO_SMT_GRP33, GPIO_SMT_GROUP_33); //set BSI driving 2ma->4ma: 0x10005B30[7:4]=0x2 GPIO_WR32(&pReg->drv_mode[3].set, 0x20); GPIOVER("mt_gpio_set_default() done\n"); }
static void md_gpio_set(GPIO_PIN pin, GPIO_MODE mode, GPIO_DIR dir, GPIO_OUT out, GPIO_PULL_EN pull_en, GPIO_PULL pull, GPIO_SMT smt) { mt_set_gpio_mode(pin, mode); if (dir != GPIO_DIR_UNSUPPORTED) mt_set_gpio_dir(pin, dir); if (dir == GPIO_DIR_OUT) mt_set_gpio_out(pin, out); if (dir == GPIO_DIR_IN) mt_set_gpio_smt(pin, smt); if (pull_en != GPIO_PULL_EN_UNSUPPORTED) { mt_set_gpio_pull_enable(pin, pull_en); mt_set_gpio_pull_select(pin, pull); } md_gpio_get(pin, "-"); }