天嵌 ARM开发社区

 找回密码
 注册
查看: 7380|回复: 7

【GPIO口的使用咨询】

[复制链接]
jackiewen2012 发表于 2014-4-22 11:44:22 | 显示全部楼层 |阅读模式
1.扩展GPIO口如何使用,是否要写驱动?

2.IO资源和硬件原理图是如何对应的,iomux之类的文件么,路径在哪里?

3.IO如何使用,比如在board里如何配置,是否需要request、in/out-put、set_value?听说直接调用GPIO_LED这个结构体定义?

4.直接调用GPIO_LED会自动生成sys文件接口么(不用自己调用ATTR),生成的文件节点路径在哪儿?

5.E9的android开发环境下如何单独编译kernel?
TQ-ZQL 发表于 2014-4-22 14:17:16 | 显示全部楼层
本帖最后由 TQ-ZQL 于 2014-4-23 16:38 编辑

假如我们要使用扩展口的第11脚EIM_D18。
先在arch/arm/plat-mxc/include/mach/iomux-mx6q.h中找有EIM_18,
可以找到MX6Q_PAD_EIM_D18__xxx。因为要作为gpio,所以使用MX6Q_PAD_EIM_D18__GPIO_3_18这个配置,
将它加入board-mx6q_sabresd.h中。
static iomux_v3_cfg_t mx6q_sabresd_pads[] = {
....
MX6Q_PAD_EIM_D18__GPIO_3_18
....
}
#define SABRESD_GPIO_CTRL          IMX_GPIO_NR(3, 18)
static struct gpio_led imx6q_gpio_leds[] =
{
        GPIO_LED(SABRESD_CHARGE_NOW, "chg_now_led", 0, 1,"charger-charging"),
        GPIO_LED(SABRESD_GPIO_CTRL, "gpio_xxx", 0, 1,"xxx"),
};
重新编译内核,烧写,只写0或1到/
sys/class/leds/gpio_xxx/brightness
这个节点就能控制高低了


如果无法控制,软件上一般脚的是配置问题,可以在mx6q_sabresd_pads找PAD_EIM_D18,看在MX6Q_PAD_EIM_D18__GPIO_3_18的后面有没有被其它脚给重新初始化成了别的功能。
hotcancer 发表于 2014-4-22 15:36:40 | 显示全部楼层
TQ-ZQL 发表于 2014-4-22 14:17
假如我们要使用扩展口的第11脚EIM_D18。
先在arch/arm/plat-mxc/include/mach/iomux-mx6q.h中找有EIM_18, ...

这个解释的很好啊!
 楼主| jackiewen2012 发表于 2014-4-23 16:50:08 | 显示全部楼层
TQ-ZQL 发表于 2014-4-22 14:17
假如我们要使用扩展口的第11脚EIM_D18。
先在arch/arm/plat-mxc/include/mach/iomux-mx6q.h中找有EIM_18, ...

重写咨询一下,这是例子
root@android:/sys/class/leds # ls                                             
chg_now_led
gpio_3_18
root@android:/sys/class/leds # cat gpio_3_18/brightness                        
0
root@android:/sys/class/leds # echo 1 > gpio_3_18/brightness
root@android:/sys/class/leds # cat gpio_3_18/brightness                        
1
root@android:/sys/class/leds # echo 0 > gpio_3_18/brightness                  
root@android:/sys/class/leds # cat gpio_3_18/brightness

生成了接口,sys文件也有,写1、0控制的时候电压都没有变化(均是3.3v)

除了量电压,有没有别的方式,打印IO口的状态来判断配置是否okay?
贵司平台关于io口的配置有没有说明?
TQ-ZQL 发表于 2014-4-24 09:59:29 | 显示全部楼层
在板级初始化里将你那脚用iorequest的方法输出一下波看行不行,如果不行,肯定是配置出了问题。哪里又调用了。
hotcancer 发表于 2014-4-30 11:30:05 | 显示全部楼层
其实就是两个系统函数

        gpio_request();
        gpio_direction_output();或者 gpio_direction_input();
pineworld 发表于 2014-7-31 14:53:44 | 显示全部楼层
TQ-ZQL 发表于 2014-4-22 14:17
假如我们要使用扩展口的第11脚EIM_D18。
先在arch/arm/plat-mxc/include/mach/iomux-mx6q.h中找有EIM_18, ...

请问我这里会报这样的错误:
error: 'SABRESD_CAP_TCH_INT0' undeclared (first use in this function)


请问是否没添加头文件?
victoire 发表于 2014-8-11 17:04:08 | 显示全部楼层
将GPIO口作为非矩阵键盘输入,需要怎么定义,需要修改哪几个文件?ANDROID下如何调用?有没例子?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-20 09:37 , Processed in 1.046875 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表