打印
[i.MX]

imx6的最底层驱动 操作寄存器的函数在哪里

[复制链接]
1914|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文件里面有些做法可以参考......

使用特权

评论回复
5
gardenhill| | 2015-12-14 17:56 | 只看该作者
本帖最后由 gardenhill 于 2015-12-14 17:57 编辑

imx 使用的是通用gpio的驱动,自己查查吧.(应该是你加载文件没加全.source insight ??)

使用特权

评论回复
6
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));
}
即可正常读取了.

使用特权

评论回复
7
aiweixin| | 2016-2-27 11:26 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

17

帖子

0

粉丝