static int read_gpio_probe(struct platform_device *pdv){
int ret;
printk(KERN_EMERG "\tinitialized\n");
//申请GPIO
ret = gpio_request(EXYNOS4_GPC0(3),"SWITCH3");
if(ret < 0){
printk(KERN_EMERG "gpio_request EXYNOS4_GPC0(3)failed!\n");
return ret;
}
else{
//设置为输入模式
s3c_gpio_cfgpin(EXYNOS4_GPC0(3),S3C_GPIO_INPUT);
//设置不上拉不下拉
s3c_gpio_setpull(EXYNOS4_GPC0(3),S3C_GPIO_PULL_NONE);
}
ret = gpio_request(EXYNOS4_GPX0(6),"SWITCH4");
if(ret < 0){
printk(KERN_EMERG "gpio_request EXYNOS4_GPX0(6) failed!\n");
return ret;
}
else{
s3c_gpio_cfgpin(EXYNOS4_GPX0(6),S3C_GPIO_INPUT);
s3c_gpio_setpull(EXYNOS4_GPX0(6),S3C_GPIO_PULL_NONE);
}
misc_register(&read_gpio_dev);
return 0;
}
- GPIO的输入需要哪些函数
申请gpio_request
读寄存器的值gpio_get_value
设置GPIO为输入模式s3c_gpio_cfgpin S3C_GPIO_INPUT
设置上拉下拉 s3c_gpio_setpull S3C_GPIO_PULL_NONE
释放GPIO gpio_free