2014-02-24 4 views
0

Мне нелегко получить модуль 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, который работает отлично.

ответ

1

Вы пытаетесь использовать имя драйвера в качестве идентификатора устройства, поддерживаемые идентификаторы приведены в водителе .id_table, в вашем случае:

static const struct i2c_device_id pca955x_id[] = { 
    { "pca9550", pca9550 }, 
    { "pca9551", pca9551 }, 
    { "pca9552", pca9552 }, 
    { "pca9553", pca9553 }, 
    { } 
}; 

Так что в вашем случае, обновление информации доски следующим образом:

static struct i2c_board_info mxc_i2c1_board_info[] __initdata = { 
    { 
      I2C_BOARD_INFO("pca9552", 0x61), 
      .platform_data = &pca552_data, 
    }, 
} 

Должно заставлять водителя прощупать устройство.

+0

Где бы я разместил идентификатор, https://www.kernel.org/doc/Documentation/i2c/instantiating-devices действительно не имеет ничего на id как часть информации о доске – Kevin

Смежные вопросы