[i.MX] imx6的最底层驱动 操作寄存器的函数在哪里

[复制链接]
2247|6
 楼主| l692519765 发表于 2015-12-12 20:30 | 显示全部楼层 |阅读模式
我手里是imx6q板子,厂家给了内核uboot等,我看驱动的时候到了get_gpio_valule()这个函数之后就找不到下一个函数了  这个函被内核arm文件夹下的一个宏代替了 那个宏我死活找不到是替换成了什么,,,请教各位   是不是imx6的GPIO驱动 linux内核官方都写好了 我们不用写,写好了的话 操作寄存器在哪里呢?
Micachl 发表于 2015-12-13 20:41 | 显示全部楼层
这个不太清楚,不过以前玩Linux的时候都是自己写驱动
 楼主| l692519765 发表于 2015-12-14 10:41 | 显示全部楼层
我的计划也是自己写一遍 但是总要知道官方给了哪些可以参考的资料,毕竟人家都是高手,看还是要看的。。。。。。
mini1986 发表于 2015-12-14 16:52 | 显示全部楼层
直接把地址映射出来,读写就可以了......还有就是,board文件里面有些做法可以参考......
gardenhill 发表于 2015-12-14 17:56 | 显示全部楼层
本帖最后由 gardenhill 于 2015-12-14 17:57 编辑

imx 使用的是通用gpio的驱动,自己查查吧.(应该是你加载文件没加全.source insight ??)
gardenhill 发表于 2015-12-15 09:35 | 显示全部楼层
yocto kernel 3.14.28的 gpio有个bug,设置成输出的时候,不能用gpio_get_value得到io口电平,修改gpio-generic.c文件的
static int bgpio_get(struct gpio_chip *gc, unsigned int gpio)
{
        struct bgpio_chip *bgc = to_bgpio_chip(gc);
#ifdef CONFIG_SOC_IMX6
        if(bgc->read_reg(bgc->reg_dir) & bgc->pin2mask(bgc, gpio))
        {
                return (bgc->read_reg(bgc->reg_set) & bgc->pin2mask(bgc, gpio));
        }
#endif
        return (bgc->read_reg(bgc->reg_dat) & bgc->pin2mask(bgc, gpio));
}
即可正常读取了.
aiweixin 发表于 2016-2-27 11:26 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

17

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部