路人甲

路人甲

0个粉丝

3

问答

0

专栏

0

资料

路人甲  发布于  2013-01-06 16:28:48
采纳率 0%
3个问答
7599

tw2866 驱动的问题

 
tw2866驱动编译提示错误有三个函数未定义:DECLARE_KCOM_GPIO_I2C ( )   KCOM_GPIO_I2C_INIT( )   KCOM_GPIO_I2C_EXIT (  )  
看了下发现代码中并没有完成这三个函数。好像是用来检测检测gpio i2c模块是否已经注册.
怎么完成这个东西呢?
我来回答
回答10个
时间排序
认可量排序

hilinux

0个粉丝

17

问答

0

专栏

0

资料

hilinux 2013-01-06 20:03:02
认可0
把这些都注释掉

ebaina_

0个粉丝

82

问答

40

专栏

0

资料

ebaina_ 2013-01-06 22:11:37
认可0
这个是申请IIC资源的吧,并进行初始化

路人甲

0个粉丝

3

问答

0

专栏

0

资料

路人甲 2013-01-11 09:38:03
认可0
[quote]hilinux 发表于 2013-1-6 20:03 [url=forum.php?mod=redirect&goto=findpost&pid=2749&ptid=1617][img]static/image/common/back.gif[/img][/url]
把这些都注释掉[/quote]

tw2866驱动是需要gpio to i2c这个模块的吧?注释掉可行?

路人甲

0个粉丝

3

问答

0

专栏

0

资料

路人甲 2013-01-11 09:38:38
认可0
[quote]ebaina 发表于 2013-1-6 22:11 [url=forum.php?mod=redirect&goto=findpost&pid=2753&ptid=1617][img]static/image/common/back.gif[/img][/url]
这个是申请IIC资源的吧,并进行初始化[/quote]

好象是的。

hilinux

0个粉丝

17

问答

0

专栏

0

资料

hilinux 2013-01-21 11:02:23
认可0
[quote]路人甲 发表于 2013-1-11 09:38 [url=forum.php?mod=redirect&goto=findpost&pid=2772&ptid=1617][img]static/image/common/back.gif[/img][/url]
好象是的。[/quote]

请问2866的驱动是解压放在海思的SDK包里吗?

我这里编译都通过了

Makefile改成这样

ifeq ($(PARAM_FILE), )
  3                 PARAM_FILE:=../../Makefile.param
  4                 include $(PARAM_FILE)
  5 endif
  6 LINUX_ROOT = /home/HI3531/linux-3.0.y
  7 obj-m := tw2865.o
  8 tw_2865-y += tw2865.o
  9
10 EXTRA_CFLAGS += -D$(HI_FPGA)
11 #EXTRA_CFLAGS+=-I$(PWD)/../gpio-i2c -I$(PWD)/../gpio-i2c1
  EXTRA_CFLAGS += -I$(PWD)/../gpio_i2c_8b

  default:
          @make -C $(LINUX_ROOT) M=$(PWD) modules
  clean:
          @make -C $(LINUX_ROOT) M=$(PWD) clean


[jjj@node02 tw2865]$ make
ls: cannot access /hiwork/osdrvhi3531.C01: No such file or directory
make[1]: Entering directory `/home/HI3531/linux-3.0.y'
  CC [M]  /home/hisipci/Hi3531_SDK_V1.0.7.3_B010/package/mpp/extdrv_hi3531/tw2865/tw2865.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "gpio_i2c_write" [/home/hisipci/Hi3531_SDK_V1.0.7.3_B010/package/mpp/extdrv_hi3531/tw2865/tw2865.ko] undefined!
WARNING: "gpio_i2c_read" [/home/hisipci/Hi3531_SDK_V1.0.7.3_B010/package/mpp/extdrv_hi3531/tw2865/tw2865.ko] undefined!
  CC      /home/hisipci/Hi3531_SDK_V1.0.7.3_B010/package/mpp/extdrv_hi3531/tw2865/tw2865.mod.o
  LD [M]  /home/hisipci/Hi3531_SDK_V1.0.7.3_B010/package/mpp/extdrv_hi3531/tw2865/tw2865.ko
make[1]: Leaving directory `/home/HI3531/linux-3.0.y'

路人甲

0个粉丝

3

问答

0

专栏

0

资料

路人甲 2013-01-24 16:17:12
认可0
[quote]hilinux 发表于 2013-1-21 11:02 [url=forum.php?mod=redirect&goto=findpost&pid=2820&ptid=1617][img]static/image/common/back.gif[/img][/url]
请问2866的驱动是解压放在海思的SDK包里吗?

我这里编译都通过了
[/quote]

应该不是Makefile的问题。tw2865驱动我这里编译也没问题。我看了2865和2866的驱动代码,tw2865初始化和tw2866有点不同。2866的初始化函数中需要预先判断gpio  i2c  module是否加载,然后才进行初始化。就是在判断gpio i2c 模块加载这里出了错

路人甲

0个粉丝

3

问答

0

专栏

0

资料

路人甲 2013-01-24 16:18:10
认可0
初始化函数代码如下:[code]DECLARE_KCOM_GPIO_I2C();

static int __init tw2866_init(void)
{
    int ret = 0;
   
#if 1
        // debug
        void __iomem *p;

        p = ioremap(0x101e0020, 4);
        int val = *(int *)p;
        printk("reg 0x101e0020 value is 0x%x\n", val);
        iounmap(p);
        return -1;
#endif

    ret = KCOM_GPIO_I2C_INIT();
    if(ret)
    {
        printk("GPIO I2C module is not load.\n");
        return -1;
    }

#if 1
    //register tw2866a_dev
    ret = misc_register(&tw2866a_dev);
    printk("tw2866a driver init start ... \n");
    if (ret)
    {
            KCOM_GPIO_I2C_EXIT();
        printk("\ttw2866a_ERROR: could not register tw2866a devices. \n");
        return -1;
    }
    if (tw2866_device_video_init(tw2866a_I2C_ADDR,AUTOMATICALLY) < 0)
    {
        misc_deregister(&tw2866a_dev);
            KCOM_GPIO_I2C_EXIT();
        printk("\ttw2866a_ERROR: tw2866a driver init fail for device init error!\n");
        return -1;
    }

    printk("tw2866a driver init successful!\n");
[/code]

路人甲

0个粉丝

3

问答

0

专栏

0

资料

路人甲 2013-01-24 16:21:39
认可0
[quote]路人甲 发表于 2013-1-24 16:18 [url=forum.php?mod=redirect&goto=findpost&pid=2835&ptid=1617][img]static/image/common/back.gif[/img][/url]
初始化函数代码如下:[/quote]

代码中第1行,第18行,第38行这三个KCOM相关的函数没有定义。
我在其hdmac驱动中找到类似的kcom函数。中发现KCOM是管理内核模块的。
自己手动完成的也不能通过。
现在有这样的问题:这几个判断gpio i2c module的语句只有2866驱动里面有…………
这个是必要的么?
PS:求大神QQ……

路人甲

0个粉丝

3

问答

0

专栏

0

资料

路人甲 2013-04-11 17:17:20
认可0
KCOM是hisi内核中的一个模块,可以查询其他模块是否加载。现在的内核好象没有这个模块了。注释掉关于这个功能的语句,然后手动预先加在GPIO-I2C模块。可以成功加载tw2866。

david

41个粉丝

368

问答

253

专栏

229

资料

david 2013-04-22 18:38:29
认可0
恭喜恭喜,问题解决。:)
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区