Здравствуйте!
Имеется CAN-BUS модуль MCP2515, подключается по SPI. Собрал ядро с поддержкой CAN-BUS и модуль
mcp251xВсе модуля (
can, can-dev, can-bcm, can-gw, mcp251x ) загружаются без ошибок, но интерфейс
can0 в системе не появляется. ( Подключение MCP2515 по мотивам
здесь и
здесь).
В комментариях исходника mcp251x.c сказано о ручной инициализации устройства
Your platform definition file should specify something like:
*
* static struct mcp251x_platform_data mcp251x_info = {
* .oscillator_frequency = 8000000,
* .board_specific_setup = &mcp251x_setup,
* .power_enable = mcp251x_power_enable,
* .transceiver_enable = NULL,
* };
*
* static struct spi_board_info spi_board_info[] = {
* {
* .modalias = "mcp2510",
* // or "mcp2515" depending on your controller
* .platform_data = &mcp251x_info,
* .irq = IRQ_EINT13,
* .max_speed_hz = 2*1000*1000,
* .chip_select = 2,
* },
* };
*
* Please see mcp251x.h for a description of the fields in
* struct mcp251x_platform_data.
*
Если я вставляю этот код в
mcp251x.c, ядро не собирается
drivers/net/can/mcp251x.c:1221:30: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
.board_specific_setup = &mcp251x_setup,
^
drivers/net/can/mcp251x.c:1221:30: note: (near initialization for ‘mcp251x_info.board_specific_setup’)
drivers/net/can/mcp251x.c:1222:22: error: ‘mcp251x_power_enable’ undeclared here (not in a function)
.power_enable = mcp251x_power_enable,
^
drivers/net/can/mcp251x.c:1230:21: error: ‘IRQ_EINT1’ undeclared here (not in a function)
.irq = IRQ_EINT1, /* PA01 */
^
drivers/net/can/mcp251x.c:1226:30: warning: ‘spi_board_info’ defined but not used [-Wunused-variable]
static struct spi_board_info spi_board_info[] = {
^
scripts/Makefile.build:313: recipe for target 'drivers/net/can/mcp251x.o' failed
make[3]: *** [drivers/net/can/mcp251x.o] Error 1
scripts/Makefile.build:443: recipe for target 'drivers/net/can' failed
make[2]: *** [drivers/net/can] Error 2
scripts/Makefile.build:443: recipe for target 'drivers/net' failed
make[1]: *** [drivers/net] Error 2
make[1]: *** Waiting for unfinished jobs....
Подскажите решение.