리눅스 (초보자 수준)를 실행하는 SoC 용 간단한 GPIO 드라이버를 개발 중입니다. IRQ 번호가 데이터 시트의 번호와 다르기 때문에 문제가 있습니다.커널 IRQ 도메인 목록
효과적인 IRQ 관리자가 IRQ 도메인을 만들 수 있다는 것을 알게되었습니다. 그러나
unsigned int irq_find_mapping (struct irq_domain * domain, irq_hw_number_t hwirq)에는 도메인 구조가 필요합니다. 내 플레이트에 사용할 수있는 도메인을 어떻게 나열 할 수 있습니까? 감사합니다. irq_domain_mapping
name mapped linear-max direct-max devtree_node gpio-dwapb 29 29 0 /soc/[email protected]/gpio-controller ... 99 0x00019 none
파일 : 여기
파일입니다/proc 디렉토리 /가 99 ... 25 edge gpiolib
그러나 DTS 파일이 dwapb 매니저와 197에서 중단을 매핑 중단
interrupts = <0x00000000 0x000000a5 0x00000004>
'cat/sys/kernel/debug/irq_domain_mapping'. 커널 구성에 * CONFIG_IRQ_DOMAIN_DEBUG = y *가 있는지 확인하십시오. – 0andriy
나는 내 질문을 편집했습니다. DTS 파일에서 197로 매핑되지만 리눅스에서는 99로 설정됩니다. – SOFuser
3 개의 파일 (/ proc/interrupts, irq_domain_mapping 및 문제의 코드가있는 DTS)을 모두 수집하면 더 좋을 것입니다. 일부 인터넷 공유 (pastebin like) w/** full ** 내용. – 0andriy