2. Ядро Linux
2.1. Поддержка ELV-MC03-SMARC r1.1
Ядро поддерживает следующие интерфейсы и компоненты модуля:
HDMI, поддерживается только видео (также см. Поддержка HDMI),
eMMC (SDMMC0),
I2C0,
I2C1,
I2C2,
I2C3,
GBE0,
GBE1,
MIPI DSI,
PCIe A 4x (PCIe1),
SATA (SATA-контроллер подключен к контроллеру PCIe0 MCom-03),
SDIO (SDMMC1),
Serial I2C EEPROM (I2C2),
SER0,
SER1 (UART0),
SER2,
SER3,
USB0, USB1, USB2, USB4, USB5 поддерживается USB 2.0 (USB1 с поддержкой хаба),
USB3 поддерживается USB 3.0 (USB0).
Примечание:
Наименования интерфейсов приведены в соответствии со спецификацией SMARC 2.1.
В скобках указаны контроллеры MCom-03.
2.2. Поддержка ELV-SMARC-CB r1.0
Ядро поддерживает следующие интерфейсы и компоненты модуля:
Eth0, Eth1,
USB 2.0 Type-A x2 (подключен к выводам USB0, USB1 SMARC-модуля),
HDMI, поддерживается только видео (также см. Поддержка HDMI),
microSD (подключен к SDIO SMARC-модуля),
USB 3.0 Type-A x2 (подключен к USB3 SMARC-модуля через USB hub 3.0),
PCIe x16 (подключено только 4 лейна к SMARC-модуля),
SATA,
ID EEPROM (I2C_PM SMARC-модуля).
2.3. Поддержка ROCK Pi N10
Ядро поддерживает следующие интерфейсы и компоненты модуля:
Ethernet,
HDMI, поддерживается только видео (также см. Поддержка HDMI),
I2C0,
I2C1,
I2C2,
I2C3,
DSI (дисплеи Raspberry Pi 7" DSI, Raspberry Pi Waveshare 4.3" DSI),
microSD (подключен к SDIO SMARC-модуля),
PCIe M.2 (подключен к PCIe_A 4x SMARC-модуля),
UART2 (подключен к SER1 SMARC-модуля),
USB 2.0 (2 порта),
USB 3.0 (1 порт).
2.4. Номера прерываний в DeviceTree
В руководстве пользователя на микросхему прерывания всех типов нумеруются сквозным образом:
0-15 — SGI,
16-31 — PPI,
32-127 — SPI.
В Linux для каждого типа прерывания используется своя нумерация, начиная с нуля. Т.о. номер прерывания из РП преобразуется в описание в DeviceTree следующим образом:
N |
Описание в DeviceTree |
---|---|
0-15 |
Не используется |
16-31 |
|
32-127 |
|
2.5. Драйверы pinctrl
API драйверов предназначен для управления контактными площадками MCom-03, мультиплексированием выводов GPIO согласно стандартному описанию в файле pinctl.rst.
Устройство управления конфигурированием/мультиплексированием выводов должно быть описано в DeviceTree в виде узла, содержащего дочерние узлы с описанием возможных конфигураций выводов. Другие устройства могут ссылаться на эти узлы согласно стандартному описанию в pinctrl-bindings.txt.
Поддержка управления пинами MCom-03 реализована набором драйверов pinctrl:
Драйверы pinctrl-mcom03-*:
pinctrl-mcom03-hsperiph: управление пинами подсистемы HSPERIPH, поддерживается pinconf API;
pinctrl-mcom03-lsperiph: управление пинами подсистем LSPERIPH0/1, поддерживается pinconf API.
Исходный код драйверов хранится в директории drivers/pinctrl/elvees
.
Описания bindings драйверов pinctrl-mcom03-* и примеры использования см.
Documentation/devicetree/bindings/pinctrl/elvees,mcom03-*.yaml
Драйвер gpio-dwapb-pinctrl
Драйвер gpio-dwapb-pinctrl является расширением стандартного драйвера dwapb-gpio. К функциям
стандартного драйвера добавлена возможность мультиплексирования пинов, подробнее
см. Documentation/devictree/bindings/pinctrl/snps-dwapb-gpio.txt
.
Примечание
В debugfs наблюдается особенность при работе с GPIO-прерываниями: GPIO-подсистема показывает, что пин занят прерыванием, но PINCTRL показывает его свободным. Это происходит из-за того, что драйверы регистрируют прерывания в обход GPIO/PINCTRL-подсистем, но с ручной установкой флага FLAG_USED_AS_IRQ.
2.6. Драйвер управления сбросами устройств reset-mcom03
Драйвер reset-mcom03 управляет снятием/установкой сброса устройств в подсистемах SDR, MEDIA, HSPERIPH.
Ограничения драйвера:
В подсистеме SDR поддерживаются только устройства PCIe0/1, DSP0/1.
Исходный код драйверов хранится в директории drivers/reset
.
Описание общих свойств контроллера сбросов см.``Documentation/devicetree/bindings/reset/reset.txt``
Описания DTS bindings драйвера reset-mcom03 и примеры использования см.
Documentation/devicetree/bindings/reset/elvees,mcom03-reset.yaml
2.7. Драйвер mr75202
Драйвер mr75202 используется для управления и получения значений сенсоров блока PTV. Драйвер
реализует стандартное API hwmon. Исходный код драйвера хранится в файле
drivers/hwmon/mr75202.c
. Спецификация формата описания блока и пример описания доступны в файле
Documentation/devicetree/bindings/hwmon/moortec,mr75202.yaml