我在sound/soc/codecs中编写音频编解码器。它会编译并调用init函数,但不会调用probe()函数。
我尝试了这种question建议,但没有成功。

我还尝试了切换到sgtl5000.c编解码器,并将其包含在我的boardfile的I2C_BOARD_INFO中,只是为了查看probe()函数是否会调用,而不会。

static struct i2c_board_info mxc_i2c0_board_info[] __initdata = {
    {
            I2C_BOARD_INFO("sgtl5000", 0x14),
    },
};




static const struct i2c_device_id sgtl5000_id[] = {
    {"sgtl5000", 0},
    {},
};

MODULE_DEVICE_TABLE(i2c, sgtl5000_id);

static struct i2c_driver sgtl5000_i2c_driver = {
    .driver = {
               .name = "sgtl5000",
               .owner = THIS_MODULE,
               },
    .probe = sgtl5000_i2c_probe,
    .remove = __devexit_p(sgtl5000_i2c_remove),
    .id_table = sgtl5000_id,
};


我怎样才能解决这个问题?

最佳答案

您是否要在板文件中使用“ i2c_register_board_info”之类的东西来注册i2c_device。(我无法直接对此问题发表评论,因为它需要50个声望才能拥有该特权,因此我唯一的选择就是回答这个问题以分享我的观点)。

关于c - 声音/soc/编解码器i2c驱动程序无法探测,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21042913/

10-11 18:55