Ich entwickle einen einfachen GPIO-Treiber für ein SoC läuft Linux (Anfänger Ebene), Ich habe Probleme, weil IRQ-Nummern unterscheiden sich von denen in den Datenblättern.Kernel IRQ Domain-Liste
Ich habe gelernt, dass effektive IRQ-Manager IRQ-Domänen erstellen kann. Die
unsigned int irq_find_mapping (struct irq_domain * Domäne, irq_hw_number_t hwirq) benötigt eine Domänenstruktur. Wie kann ich die für meine Plattform verfügbare Domain auflisten? Danke.
Hier sind einige Inhalte Dateien
Datei: irq_domain_mapping
name mapped linear-max direct-max devtree_node gpio-dwapb 29 29 0 /soc/[email protected]/gpio-controller ... 99 0x00019 none
file:/proc/
unterbricht 99 ... 25 edge gpiolib
jedoch DTS-Datei die Unterbrechung bei 197 mit dwapb Manager Karten
interrupts = <0x00000000 0x000000a5 0x00000004>
'cat/sys/kernel/debug/irq_domain_mapping'. Stellen Sie sicher, dass Sie * CONFIG_IRQ_DOMAIN_DEBUG = y * in der Kernel-Konfiguration haben. – 0andriy
Ich habe meine Frage bearbeitet, die Unterbrechung ist 197 in DTS-Datei zugeordnet, ist aber auf 99 in Linux – SOFuser
Es wäre besser, wenn Sie alle 3 Dateien (/ proc/interrupts, irq_domain_mapping und DTS mit Code in Frage) auf etwas Internetanteil (pastebin like) w/** full ** Inhalt. – 0andriy