完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1、输出引脚
reset-gpios = <&gpio0 GPIO_D1 GPIO_ACTIVE_HIGH>; 以上参数分别对应:引脚的名称,第几组gpio,第几个引脚,工作模式 注:以上配置对应为 GPIO0_D1 2、输入(中断)引脚 irq-gpios = <&gpio1 GPIO_B0 IRQ_TYPE_LEVEL_LOW>; 以上参数分别对应:引脚的名称,第几组gpio,第几个引脚,工作模式 注:以上配置对应为 GPIO1_B0 第二章 dts和驱动代码的实现 1、完整的dts gt9xx@5d { // ---------- 复位对应 GPIO0_D1 reset-gpios = <&gpio0 GPIO_D1 GPIO_ACTIVE_HIGH>; // ---------- 中断引脚 GPIO1_B0 irq-gpios = <&gpio1 GPIO_B0 IRQ_TYPE_LEVEL_LOW>; }; 2、驱动代码 2.1、找到dts中对应的引脚 使用API:of_get_named_gpio获取到引脚的编号。 rst_gpio = of_get_named_gpio(np, "reset-gpios", 0);//获取gpio irq_gpio = of_get_named_gpio(np, "irq-gpios", 0);//获取中断的gpio 2.2、检查引脚状态 使用API:gpio_is_valid检查引脚状态,返回1表示引脚可操作。 if (!gpio_is_valid(rst_gpio))//检查gpio printk( "No valid rst gpio"); if (!gpio_is_valid(irq_gpio)) printk( "No valid irq gpio"); 2.3、释放引脚 if (gpio_is_valid(rst_gpio))//检查引脚可操作 gpio_free(rst_gpio);//释放复位引脚 if (gpio_is_valid(irq_gpio))//检查引脚可操作 gpio_free(irq_gpio);//释放中断引脚 注:获取、检查和释放使用的API都是一样的方法 2.4、gpio设置成输入输出模式 普通gpio引脚的控制 if (gpio_is_valid(rst_gpio)) {//检查引脚是否可用 gpio_direction_output(rst_gpio, 0);//设置成输出低电平 gpio_direction_output(rst_gpio, 1);//设置成输出高电平 gpio_direction_input(rst_gpio);//设置成输入模式 } 中断引脚的控制 if (gpio_is_valid(irq_gpio)){ gpio_direction_output(irq_gpio, 0);//设置成输出低电平 gpio_direction_output(irq_gpio, 1);//设置成输出高电平 } 将中断引脚转成中断模式 if (gpio_is_valid(irq_gpio)){ irq = gpio_to_irq(irq_gpio);//返回值是中断号 ret = request_threaded_irq(irq, NULL,gtp_irq_handler, irq_flags | IRQF_ONESHOT,name,ts);//申请中断 } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
533 浏览 0 评论
803 浏览 1 评论
700 浏览 1 评论
1926 浏览 1 评论
3171 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 16:03 , Processed in 0.696728 second(s), Total 71, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号