2. Ядро Linux

2.1. Номера прерываний в DeviceTree

В руководстве пользователя на микросхему прерывания всех типов нумеруются сквозным образом:

  • 0-15 — SGI,

  • 16-31 — PPI,

  • 32-127 — SPI.

В Linux для каждого типа прерывания используется своя нумерация, начиная с нуля. Т.о. номер прерывания из РП преобразуется в описание в DeviceTree следующим образом:

N

Описание в DeviceTree

0-15

Не используется

16-31

<GIC_PPI (N-16) IRQ_TYPE_LEVEL_LOW>

32-127

<GIC_SPI (N-32) IRQ_TYPE_LEVEL_HIGH>

2.2. Драйверы pinctrl

API драйверов предназначен для управления контактными площадками MCom-03, мультиплексированием выводов GPIO согласно стандартному описанию в файле pinctl.rst.

Устройство управления конфигурированием/мультиплексированием выводов должно быть описано в DeviceTree в виде узла, содержащего дочерние узлы с описанием возможных конфигураций выводов. Другие устройства могут ссылаться на эти узлы согласно стандартному описанию в pinctrl-bindings.txt.

Поддержка управления пинами MCom-03 реализована набором драйверов pinctrl:

2.2.1. Драйверы 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

2.2.2. Драйвер 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.3. Драйвер управления сбросами устройств reset-mcom03

Драйвер reset-mcom03 управляет снятием/установкой сброса устройств в подсистемах SDR, MEDIA, HSPERIPH.

Ограничения драйвера:

  1. В подсистеме 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.4. Драйвер mr75202

Драйвер mr75202 используется для управления и получения значений сенсоров блока PTV. Драйвер реализует стандартное API hwmon. Исходный код драйвера хранится в файле drivers/hwmon/mr75202.c. Спецификация формата описания блока и пример описания доступны в файле Documentation/devicetree/bindings/hwmon/moortec,mr75202.yaml