как обмениваться информацией, находящейся в узле дерева устройств, между различными драйверами - PullRequest
0 голосов
/ 26 июня 2018

Я пишу драйвер RTC, который будет получать доступ к информации из узла DT с именем RTC. Однако мне также нужно получить доступ к SPI в том же драйвере. База виртуальных адресов для доступа к SPI используется в нескольких драйверах. Как я могу поделиться информацией с узла SPI-DT между несколькими драйверами без каких-либо конфликтов .?

1 Ответ

0 голосов
/ 26 июня 2018

Возможно погружение в мусорную корзину для получения информации в родительских узлах, но вы, вероятно, не хотите этого делать.

Регистры контроллера SPI должны использоваться только драйвером шины SPI. Устройства на этой шине должны полагаться только на spi_read / spi_write или аналогичные (от <linux/spi/spi.h>). Это означает, что вы можете повторно использовать драйвер RTC на другой плате с другим контроллером SPI.

Если для вашего контроллера нет драйвера, начните с его написания. Взгляните на простой, например, drivers/spi/spi-altera.c. ПРИМЕЧАНИЕ : многие драйверы повторно используют функциональные возможности реализации битового взрыва SPI в Linux. Это не означает, что эти контроллеры используют битовый разряд ввода / вывода, это просто особенность именования подсистемы SPI в Linux.

В этом случае устройства, использующие шину SPI, будут дочерними по отношению к узлу устройства контроллера, а их свойства reg обозначают, какой чип выбрать для активации для достижения нужного устройства. Стандартные привязки задокументированы в Documentation/devicetree/bindings/spi/spi-bus.txt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...