Я читал о SPI и о том, как создавать драйверы ядра, но я все еще не уверен, как все это работает.
Например:
static struct spi_driver ds1305_driver = {
.driver.name = "rtc-ds1343",
.driver.owner = THIS_MODULE,
.probe = ds1343_probe,
.remove = __devexit_p(ds1343_remove),
/* REVISIT add suspend/resume */
};
Если я правильно понимаю, вам следует добавить spi_board_info в файл платы (старые системы) или в дерево устройств, что затем позволит SPI узнать, как взаимодействовать с реальным устройством.
Глядя на другие реализации, кажется, что это действительно просто позволяет ядру знать, какой чип выбрать, скорость передачи данных и т. Д. Базовая информация SPI.
Вопросов:
Затем, когда система загружается, драйвер ядра отправит часы на устройство и прочитает имя устройства?
Стандартизировано ли это, что все устройства имеют свои имена, написанные в каком-то месте, или я просто ошибаюсь в этом?
Ответственен ли общий драйвер SPI за поиск этой информации на устройстве (в моем случае mxc_spi-0)?
Наконец, если он считывает имя устройства, прокручивает ли он доступные драйверы и сопоставляет их с этим spi_driver.driver.name?
Я действительно не понимаю в деталях.
Спасибо!