struct gpio_desc转换成gpio编号,本文参考linux官方文档https://www.kernel.org/doc/Documentation/gpio/consumer.txt进行编写。头文件需要首先包含头文件#include<linux/gpio/consumer.h>获取&释放使用一下两个函数获取GPIO设备,多个设备时需要附带index参数。
反之亦然: int desc_to_gpio(const gpio_desc *desc) struct gpio_desc *gpio_to_desc(无符号gpio...
spin_lock_irqsave(&gpio_lock, flags);if(base<0) {base= gpiochip_find_base(chip->ngpio);// 这个函数在gpiolib.c中,在gpio_desc[]中分配chip->ngpio个空间(从最后往前分配),返回第一个index if(base<0) { status=base;gotounlock; } chip->base=base; }/*these GPIO numbers must not be m...
SDK中心 软件开发生产线 AI开发生产线 数据治理生产线 数字内容生产线 开发者Programs Huawei Cloud ...
(gpio-conctrller) dts描述 gpio1: gpio@0209c000 { compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio"; reg = <0x0209c000 0x4000>;
文章下方附学习资源,自助领取。 pinctrl 子系统和 gpio 子系统虽然难度不大,但在内核里的使用率非常高,本文争取一次性把相关内容介绍一遍。 pinctrl数据结构使用 struct pinctrl_desc 抽象一个 pin controller…
再来看左边部分,左上方部分为一全局数组,记录各个GPIO的描述符,即对应左下方的gpio_desc结构体,其中gpio_chip指向硬件层的GPIO,flags为一标志位,用来指示当前GPIO是否已经占用,当用gpio_request申请GPIO资源时,flags位就会置位,当调用gpio_free释放GPIO资源时,flags就会清零。label是一个字符串指针,用来作说明。
再来看左边部分,左上方部分为一全局数组,记录各个GPIO的描述符,即对应左下方的gpio_desc结构体,其中gpio_chip指向硬件层的GPIO,flags为一标志位,用来指示当前GPIO是否已经占用,当用gpio_request申请GPIO资源时,flags位就会置位,当调用gpio_free释放GPIO资源时,flags就会清零。label是一个字符串指针,用来作说明。