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 | } |