Subversion Repositories HelenOS

Rev

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
        }