Rev 4284 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4284 | Rev 4311 | ||
|---|---|---|---|
| Line 37... | Line 37... | ||
| 37 | #include <kbd.h> |
37 | #include <kbd.h> |
| 38 | #include <kbd_port.h> |
38 | #include <kbd_port.h> |
| 39 | #include <sun.h> |
39 | #include <sun.h> |
| 40 | #include <sysinfo.h> |
40 | #include <sysinfo.h> |
| 41 | 41 | ||
| 42 | typedef enum { |
- | |
| 43 | KBD_UNKNOWN, |
- | |
| 44 | KBD_Z8530, |
- | |
| 45 | KBD_NS16550, |
- | |
| 46 | KBD_SGCN |
- | |
| 47 | } kbd_type_t; |
- | |
| 48 | - | ||
| 49 | /** Sun keyboard virtual port driver. |
42 | /** Sun keyboard virtual port driver. |
| 50 | * |
43 | * |
| 51 | * This is a virtual port driver which can use |
44 | * This is a virtual port driver which can use |
| 52 | * both ns16550_port_init and z8530_port_init |
45 | * both ns16550_port_init and z8530_port_init |
| 53 | * according to the information passed from the |
46 | * according to the information passed from the |
| 54 | * kernel. This is just a temporal hack. |
47 | * kernel. This is just a temporal hack. |
| 55 | * |
48 | * |
| 56 | */ |
49 | */ |
| 57 | int kbd_port_init(void) |
50 | int kbd_port_init(void) |
| 58 | { |
51 | { |
| 59 | if (sysinfo_value("kbd.type") == KBD_Z8530) |
52 | if (sysinfo_value("kbd.type.z8530")) { |
| 60 | return z8530_port_init(); |
53 | if (z8530_port_init() == 0) |
| - | 54 | return 0; |
|
| - | 55 | } |
|
| - | 56 | ||
| 61 | else if (sysinfo_value("kbd.type") == KBD_NS16550) |
57 | if (sysinfo_value("kbd.type.ns16550")) { |
| 62 | return ns16550_port_init(); |
58 | if (ns16550_port_init() == 0) |
| - | 59 | return 0; |
|
| - | 60 | } |
|
| 63 | 61 | ||
| 64 | return -1; |
62 | return -1; |
| 65 | } |
63 | } |
| 66 | 64 | ||
| 67 | /** @} |
65 | /** @} |