Я изучаю деревья устройств Linux, и мы пытаемся начать портировать часть нашего старого кода, чтобы использовать их. У меня небольшие проблемы с узлом контроллера gpio:
gpio1: gpio-controller@c00 {
#gpio-cells = <2>;
compatible = "cavium,octeon-3860-gpio";
reg = <0xc00 0x100>;
gpio-controller;
/* Interrupts are specified by two parts:
* 1) GPIO pin number (0..15)
* 2) Triggering (1 - edge rising
* 2 - edge falling
* 4 - level active high
* 8 - level active low)
*/
interrupt-controller;
interrupt-cells = <2>;
interrupts = <0 24>, <1 25>, <2 26>, <3 27>;
};
Я пытаюсь сопоставить определенные IRQ с контактами GPIO, однако похоже, что он только когда-либо сопоставляет первый ‹0 24> IRQ 24 с контактом gpio 0. Я посмотрел исходный код и не похоже, что он когда-либо будет взаимодействовать прерываний, хотя текстовый файл привязок дерева устройств, кажется, намекает на это (devicetree / bindings / gpio / cavium-octeon-gpio.txt). Кто-нибудь знает, как я могу сопоставить несколько прерываний с разными контактами gpio?