| Zakładka z wyszukiwarką danych komponentów |
|
UM0851 Arkusz danych(PDF) 35 Page - STMicroelectronics |
|
|
|||||||||||||||||||||||||||||
UM0851 Arkusz danych(HTML) 35 Page - STMicroelectronics |
|
35 / 245 page ![]() UM0851 Platform section Doc ID 16604 Rev 2 35/245 High level IRQ flow handlers The generic layer provides a set of pre-defined IRQ-flow methods: ● handle_level_irq(): provides a generic implementation for level-triggered interrupts ● handle_edge_irq(): provides a generic implementation for edge-triggered interrupts ● handle_simple_irq(): provides a generic implementation for simple interrupts. The simple flow handler does not call any handler/chip primitives ● handle_percpu_irq(): provides a generic implementation for per CPU interrupts. Per CPU interrupts are only available on SMP and the handler provides a simplified version without locking. The interrupt flow handlers (either predefined or architecture-specific) are assigned to specific interrupts by the architecture either during the boot up or during the device initialization. In the SPEAr architecture, at boot up time, the architecture specific code sets up the handle_level_irq flow method as the default for all the VIC interrupts. This is done in <arch/arm/mach-spearxxx/irq.c>. Below is a part of the code captured from the SPEAr300 architecture-related initialization code for VIC. void __init spear3xx_init_irq(void) { unsigned int i; do_init_irq(1); for (i = IRQ_VIC_START; i <= IRQ_VIC_END; i++) { set_irq_chip(i, &vic_chip); set_irq_handler(i, handle_level_irq); set_irq_flags(i, IRQF_VALID | IRQF_PROBE); } } Chip level hardware encapsulation The chip level hardware descriptor structure structs irq_chip contains all the direct chip relevant functions, which can be utilized by the IRQ flow implementations. ● ack() ● mask_ack() - optional, recommended for performance ● mask() ● unmask() ● retrigger() - optional ● set_type() - optional ● set_wake() - optional These primitives mean exactly what their name says: ack means ACK, masking means masking of an IRQ line, etc. It is up to the flow handler(s) to use these basic units of low- level functionality. struct irq_chip is a hardware interrupt chip descriptor described below: struct irq_chip { const char*name; unsigned int(*startup)(unsigned int irq); void (*shutdown)(unsigned int irq); void (*enable)(unsigned int irq); void (*disable)(unsigned int irq); |
|
Link URL |
| Czy Alldatasheet okazała się pomocna? [ DONATE ] |
O Alldatasheet | Reklama | Kontakt | Polityka prywatności | Link do karty katalogowej | Linki | Lista producentów All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |