赣县企业网站建设,机构类网站有哪些,湖南省建设银行网站官网,如何选择建设网站类型1. 首先构建设备树#xff0c;此例中#xff0c;测试两个GPIO管脚#xff0c;一个做输入中断#xff0c;一个做输出 每个GPIO需要分别描述#xff0c;其中#xff0c;label随意#xff0c;pioA后面的数字#xff0c;可以在sama5d2-pinfunc.h文件中找到 这是管脚功能复用…1. 首先构建设备树此例中测试两个GPIO管脚一个做输入中断一个做输出 每个GPIO需要分别描述其中label随意pioA后面的数字可以在sama5d2-pinfunc.h文件中找到 这是管脚功能复用的配置把他们配置成普通的GPIO 2. 使用compatible gpio-test 这个名字构建一个平台总线驱动程序系统会自动调用probe函数 然后我们在probe函数里再构建一个字符设备驱动即可。 3. 在驱动中我们需要操作gpio口比如得到其电平值置电平值申请中断在a5d2的驱动里都需要用到
gpio_desc这个结构体指针那我们如何能得到上面两个gpio的gpio_desc指针呢。通过查看例子驱动发现只要两句
即可。
device_for_each_child_node(dev, child) { gpiod[i] devm_get_gpiod_from_child(dev, NULL, child); i; }
这样就可以得到设备树里描述的两个gpio的gpio_desc指针将它存储在一个指针数组里为后面备用。 4. 那如何操作它呢a5d2对gpio所有的操作都封装在gpiolib.c文件中。
下面介绍几个常用的函数
gpiod_direction_input 设置gpio为输入
gpiod_direction_output 设置gpio为输出
gpiod_set_value 设置gpio输出电平
gpiod_get_value 得到gpio输入电平
gpiod_to_irq 得到gpio的中断编号为申请中断用