需求:引脚MMC2_CMD(输出模式7:gpio2_0)输出高低电平实现看门狗喂狗。
在uboot中:
int ctc_init_mmc2cmd_gpio(void){
int ret=0;
int gpio=64;//MMC2_CMD==gpio2_0 64
ret=gpio_request(gpio,"mmc2_cmd");
if(ret){
printf("can't request gpio %d :ret=%d\n",gpio,ret);
return -1;
}
ret=gpio_direction_output(gpio,1);
return ret;
}
void ctc_hw_watchdog_keepalive(void)
{
static int ticker=0;
if(ticker++%2==0){
gpio_direction_output(64,0);//MMC2_CMD==gpio2_0 64 LOW
}
else{
gpio_direction_output(64,1);//HIGH
}
if(ticker>=6000){
ticker=0;
}
}
在uboot 中mux.c中
static struct module_pin_mux mmc2_pin_mux[]={
{OFFSET(gpmc_csn3),(MODE(7)|RXACTIVE |PULLUDDIS)},
{-1}
};
void set_mux_conf_regs(void)
{
....
configure_module_pin_mux(mmc2_pin_mux);//s50 2022/04/07
}
当前get_ticks中调用ctc_hw_watchdog_keepalive()未能实现gpio输出高低电平跳变,请问uboot操作gpio除了request,direction_output外还需要进行哪些操作?
|