Rev 1919 | Rev 1921 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1919 | Rev 1920 | ||
|---|---|---|---|
| Line 38... | Line 38... | ||
| 38 | #include <genarch/kbd/z8530.h> |
38 | #include <genarch/kbd/z8530.h> |
| 39 | #endif |
39 | #endif |
| 40 | #ifdef CONFIG_NS16550 |
40 | #ifdef CONFIG_NS16550 |
| 41 | #include <genarch/kbd/ns16550.h> |
41 | #include <genarch/kbd/ns16550.h> |
| 42 | #endif |
42 | #endif |
| - | 43 | #include <ddi/device.h> |
|
| 43 | #include <irq.h> |
44 | #include <ddi/irq.h> |
| 44 | #include <arch/mm/page.h> |
45 | #include <arch/mm/page.h> |
| 45 | #include <arch/types.h> |
46 | #include <arch/types.h> |
| 46 | #include <typedefs.h> |
47 | #include <typedefs.h> |
| 47 | #include <align.h> |
48 | #include <align.h> |
| 48 | #include <func.h> |
49 | #include <func.h> |
| Line 115... | Line 116... | ||
| 115 | if (!ofw_fhc_map_interrupt(node->parent, ((ofw_fhc_reg_t *) prop->value), interrupts, &inr)) { |
116 | if (!ofw_fhc_map_interrupt(node->parent, ((ofw_fhc_reg_t *) prop->value), interrupts, &inr)) { |
| 116 | printf("Failed to determine keyboard interrupt.\n"); |
117 | printf("Failed to determine keyboard interrupt.\n"); |
| 117 | return; |
118 | return; |
| 118 | } else { |
119 | } else { |
| 119 | kbd_irq.inr = inr; |
120 | kbd_irq.inr = inr; |
| 120 | kbd_irq.devno = 0; /* FIXME: assign unique devno */ |
121 | kbd_irq.devno = device_assign_devno(); |
| 121 | kbd_irq.trigger = IRQ_TRIGGER_LEVEL; |
122 | kbd_irq.trigger = IRQ_TRIGGER_LEVEL; |
| 122 | kbd_irq.claim = z8530_claim; |
123 | kbd_irq.claim = z8530_claim; |
| 123 | kbd_irq.handler = z8530_irq_handler; |
124 | kbd_irq.handler = z8530_irq_handler; |
| 124 | irq_register(&kbd_irq); |
125 | irq_register(&kbd_irq); |
| 125 | } |
126 | } |
| Line 134... | Line 135... | ||
| 134 | if (!ofw_ebus_map_interrupt(node->parent, ((ofw_ebus_reg_t *) prop->value), interrupts, &inr)) { |
135 | if (!ofw_ebus_map_interrupt(node->parent, ((ofw_ebus_reg_t *) prop->value), interrupts, &inr)) { |
| 135 | printf("Failed to determine keyboard interrupt.\n"); |
136 | printf("Failed to determine keyboard interrupt.\n"); |
| 136 | return; |
137 | return; |
| 137 | } else { |
138 | } else { |
| 138 | kbd_irq.inr = inr; |
139 | kbd_irq.inr = inr; |
| 139 | kbd_irq.devno = 0; /* FIXME: assign unique devno */ |
140 | kbd_irq.devno = device_assign_devno(); |
| 140 | kbd_irq.trigger = IRQ_TRIGGER_LEVEL; |
141 | kbd_irq.trigger = IRQ_TRIGGER_LEVEL; |
| 141 | kbd_irq.claim = ns16550_claim; |
142 | kbd_irq.claim = ns16550_claim; |
| 142 | kbd_irq.handler = ns16550_irq_handler; |
143 | kbd_irq.handler = ns16550_irq_handler; |
| 143 | irq_register(&kbd_irq); |
144 | irq_register(&kbd_irq); |
| 144 | } |
145 | } |