高级会员
- 积分
- 685
- 金钱
- 685
- 注册时间
- 2019-4-24
- 在线时间
- 43 小时
|
在IMX6ULL开发指南里面说如果需要使用某个GPIO,需要先申请,申请成功之后才能使用。
但是在pinctrl和gpio子系统试验里面,5_gpioled的例程中
在 int led_init(void)里面找到GPIO,就直接使用了,这不是跟前面的冲突了吗?
static int __init led_init(void)
{
int ret = 0;
/* 设置LED所使用的GPIO */
/* 1、获取设备节点:gpioled */
gpioled.nd = of_find_node_by_path("/gpioled");
if(gpioled.nd == NULL) {
printk("gpioled node not find!\r\n");
return -EINVAL;
} else {
printk("gpioled node find!\r\n");
}
/* 2、 获取设备树中的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;
}
printk("led-gpio num = %d\r\n", gpioled.led_gpio);
这里没有用gpio_request()申请IO
/* 3、设置GPIO1_IO03为输出,并且输出高电平,默认关闭LED灯 */
ret = gpio_direction_output(gpioled.led_gpio, 1);
if(ret < 0) {
printk("can't set gpio!\r\n");
}
.....
}
这怎么解释?
|
|