Мне нелегко получить модуль pca955x, правильно работающий с чипом pca9552. Модуль никогда не запускает функцию зонда.Модуль Linux не соответствует корректным данным платформы
мои данные платформы
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 для подбора/чтения и переключения светодиодов. Но linux не инициализирует драйвер, когда устройство найдено.
Его понимание того, что имя драйвера должно совпадать с именем данных платформы в информации о доске. У меня есть драйвер клавиатуры, который находится в том же файле mxc_i2c1_board_info, который работает отлично.
Где бы я разместил идентификатор, https://www.kernel.org/doc/Documentation/i2c/instantiating-devices действительно не имеет ничего на id как часть информации о доске – Kevin