【发布时间】:2014-02-24 19:49:38
【问题描述】:
我很难让 pca955x 模块与我的 pca9552 芯片正常工作。该模块从不实际运行探测功能。
我的平台数据
struct led_platform_data pca552_data = {
.num_leds = 7,
};
static struct i2c_board_info mxc_i2c1_board_info[] __initdata = {
{
I2C_BOARD_INFO("leds-pca955x", 0x61),
.platform_data = &pca552_data,
},
}
在我的初始化中调用
i2c_register_board_info(1, mxc_i2c1_board_info,
ARRAY_SIZE(mxc_i2c1_board_info));
模块数据
static struct i2c_driver pca955x_driver = {
.driver = {
.name = "leds-pca955x",
.owner = THIS_MODULE,
},
.probe = pca955x_probe,
.remove = __devexit_p(pca955x_remove),
.id_table = pca955x_id,
};
我在内核中构建了模块。我知道那里有一个设备,因为我可以使用 i2c 工具来戳/读取和切换 LED。但是linux在找到设备时并没有初始化驱动程序。
据我了解,驱动程序名称应与板信息中的平台数据名称匹配。我有一个键盘驱动程序,它位于同一个 mxc_i2c1_board_info 中,运行良好。
【问题讨论】:
标签: linux-kernel linux-device-driver embedded-linux