中级会员
 
- 积分
- 436
- 金钱
- 436
- 注册时间
- 2015-3-27
- 在线时间
- 127 小时
|
1金钱
如图文档说明说明。实际使用中LED实验和Key实验对比: 获取设备树中的gpio属性,得到LED所使用的LED编号 */ gpioled.led_gpio = of_get_named_gpio(gpioled.nd, "led-gpio", 0);
if(gpioled.led_gpio < 0) {
printk("can't get led-gpio");
return -EINVAL;
}
/* 提取GPIO */
for (i = 0; i < KEY_NUM; i++) {
keyinputdev.irqkeydesc.gpio = of_get_named_gpio(keyinputdev.nd ,"key-gpio", i);
if (keyinputdev.irqkeydesc.gpio < 0) {
printk("can't get key%d\r\n", i);
}
}
/* 初始化key所使用的IO,并且设置成中断模式 */
for (i = 0; i < KEY_NUM; i++) {
memset(keyinputdev.irqkeydesc.name, 0, sizeof(name)); /* 缓冲区清零 */
sprintf(keyinputdev.irqkeydesc.name, "KEY%d", i); /* 组合名字 */
gpio_request(keyinputdev.irqkeydesc.gpio, name);
gpio_direction_input(keyinputdev.irqkeydesc.gpio);
keyinputdev.irqkeydesc.irqnum = irq_of_parse_and_map(keyinputdev.nd, i);
}
在LED实验中并没有申请,而在key实验中进行了申请。因此有疑问
|
最佳答案
查看完整内容[请看2#楼]
led实验忘记加上gpio_request,但是原子在设备树中删除了跟这个GPIO有冲突的所有其他使用,所以不会有影响的。这里就是原子的教程说的一定要“检查pin是否被其他外设所使用,如果有则删除它”
|