[英]sound/soc/codec i2c driver won't probe
我正在用sound/soc/codecs
编写音频编sound/soc/codecs
。 它会编译并调用init函数,但不会调用probe()
函数。 我尝试了这样的问题建议,但没有成功。
我还尝试了切换到sgtl5000.c
编解码器,并将其包含在我的I2C_BOARD_INFO
的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个声望才能拥有该特权,所以我唯一的选择就是回答这个问题以分享我的观点)。
找到了问题。 我正在使用'sabresd'boardfile。 从该代码段mx6_sabresd_board_init
被重写的第一个元素mxc_i2c0_board_info
:
if (board_is_mx6_reva()) {
strcpy(mxc_i2c0_board_info[0].type, "wm8958");
mxc_i2c0_board_info[0].platform_data = &wm8958_config_data;
} else {
strcpy(mxc_i2c0_board_info[0].type, "wm8962");
mxc_i2c0_board_info[0].platform_data = &wm8962_config_data;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.