Rev 4103 | Rev 4148 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4103 | Rev 4119 | ||
|---|---|---|---|
| Line 55... | Line 55... | ||
| 55 | #include <print.h> |
55 | #include <print.h> |
| 56 | #include <sysinfo/sysinfo.h> |
56 | #include <sysinfo/sysinfo.h> |
| 57 | 57 | ||
| 58 | kbd_type_t kbd_type = KBD_UNKNOWN; |
58 | kbd_type_t kbd_type = KBD_UNKNOWN; |
| 59 | 59 | ||
| 60 | #if defined (CONFIG_Z8530) || defined (CONFIG_NS16550) |
60 | #ifdef CONFIG_SUN_KBD |
| 61 | 61 | ||
| 62 | /** Initialize keyboard. |
62 | /** Initialize keyboard. |
| 63 | * |
63 | * |
| 64 | * Traverse OpenFirmware device tree in order to find necessary |
64 | * Traverse OpenFirmware device tree in order to find necessary |
| 65 | * info about the keyboard device. |
65 | * info about the keyboard device. |
| Line 166... | Line 166... | ||
| 166 | case KBD_Z8530: |
166 | case KBD_Z8530: |
| 167 | devno = device_assign_devno(); |
167 | devno = device_assign_devno(); |
| 168 | z8530 = (z8530_t *) hw_map(aligned_addr, offset + size) + |
168 | z8530 = (z8530_t *) hw_map(aligned_addr, offset + size) + |
| 169 | offset; |
169 | offset; |
| 170 | 170 | ||
| 171 | indev_t *kbrdin = z8530_init(z8530, devno, inr, cir, cir_arg); |
171 | indev_t *kbrdin_z8530 = z8530_init(z8530, devno, inr, cir, cir_arg); |
| 172 | if (kbrdin) |
172 | if (kbrdin_z8530) |
| 173 | kbrd_init(kbrdin); |
173 | kbrd_init(kbrdin_z8530); |
| 174 | 174 | ||
| 175 | /* |
175 | /* |
| 176 | * This is the necessary evil until the userspace drivers are |
176 | * This is the necessary evil until the userspace drivers are |
| 177 | * entirely self-sufficient. |
177 | * entirely self-sufficient. |
| 178 | */ |
178 | */ |
| Line 189... | Line 189... | ||
| 189 | case KBD_NS16550: |
189 | case KBD_NS16550: |
| 190 | devno = device_assign_devno(); |
190 | devno = device_assign_devno(); |
| 191 | ns16550 = (ns16550_t *) hw_map(aligned_addr, offset + size) + |
191 | ns16550 = (ns16550_t *) hw_map(aligned_addr, offset + size) + |
| 192 | offset; |
192 | offset; |
| 193 | 193 | ||
| 194 | indev_t *kbrdin = ns16550_init(ns16550, devno, inr, cir, cir_arg); |
194 | indev_t *kbrdin_ns16550 = ns16550_init(ns16550, devno, inr, cir, cir_arg); |
| 195 | if (kbrdin) |
195 | if (kbrdin_ns16550) |
| 196 | kbrd_init(kbrdin); |
196 | kbrd_init(kbrdin_ns16550); |
| 197 | 197 | ||
| 198 | /* |
198 | /* |
| 199 | * This is the necessary evil until the userspace driver is |
199 | * This is the necessary evil until the userspace driver is |
| 200 | * entirely self-sufficient. |
200 | * entirely self-sufficient. |
| 201 | */ |
201 | */ |
| Line 212... | Line 212... | ||
| 212 | printf("Kernel is not compiled with the necessary keyboard " |
212 | printf("Kernel is not compiled with the necessary keyboard " |
| 213 | "driver this machine requires.\n"); |
213 | "driver this machine requires.\n"); |
| 214 | } |
214 | } |
| 215 | } |
215 | } |
| 216 | 216 | ||
| 217 | #endif |
217 | #endif |
| - | 218 | ||
| 218 | /** @} |
219 | /** @} |
| 219 | */ |
220 | */ |