Rev 1909 | Rev 1912 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1909 | Rev 1911 | ||
|---|---|---|---|
| Line 97... | Line 97... | ||
| 97 | if (!prop || !prop->value) |
97 | if (!prop || !prop->value) |
| 98 | panic("Can't find \"reg\" property.\n"); |
98 | panic("Can't find \"reg\" property.\n"); |
| 99 | 99 | ||
| 100 | uintptr_t pa; |
100 | uintptr_t pa; |
| 101 | size_t size; |
101 | size_t size; |
| 102 | int ino; |
102 | int inr; |
| 103 | 103 | ||
| 104 | switch (kbd_type) { |
104 | switch (kbd_type) { |
| 105 | case KBD_Z8530: |
105 | case KBD_Z8530: |
| 106 | size = ((ofw_fhc_reg_t *) prop->value)->size; |
106 | size = ((ofw_fhc_reg_t *) prop->value)->size; |
| 107 | if (!ofw_fhc_apply_ranges(node->parent, ((ofw_fhc_reg_t *) prop->value) , &pa)) { |
107 | if (!ofw_fhc_apply_ranges(node->parent, ((ofw_fhc_reg_t *) prop->value) , &pa)) { |
| 108 | printf("Failed to determine keyboard address.\n"); |
108 | printf("Failed to determine keyboard address.\n"); |
| 109 | return; |
109 | return; |
| 110 | } |
110 | } |
| 111 | if (!ofw_fhc_map_interrupts(node->parent, ((ofw_fhc_reg_t *) prop->value), interrupts, &ino)) { |
111 | if (!ofw_fhc_map_interrupts(node->parent, ((ofw_fhc_reg_t *) prop->value), interrupts, &inr)) { |
| 112 | printf("Failed to determine keyboard interrupts.\n"); |
112 | printf("Failed to determine keyboard interrupts.\n"); |
| 113 | return; |
113 | return; |
| 114 | } |
114 | } |
| 115 | break; |
115 | break; |
| 116 | case KBD_NS16550: |
116 | case KBD_NS16550: |
| 117 | size = ((ofw_ebus_reg_t *) prop->value)->size; |
117 | size = ((ofw_ebus_reg_t *) prop->value)->size; |
| 118 | if (!ofw_ebus_apply_ranges(node->parent, ((ofw_ebus_reg_t *) prop->value) , &pa)) { |
118 | if (!ofw_ebus_apply_ranges(node->parent, ((ofw_ebus_reg_t *) prop->value) , &pa)) { |
| 119 | printf("Failed to determine keyboard address.\n"); |
119 | printf("Failed to determine keyboard address.\n"); |
| 120 | return; |
120 | return; |
| 121 | } |
121 | } |
| 122 | if (!ofw_ebus_map_interrupts(node->parent, ((ofw_ebus_reg_t *) prop->value), interrupts, &ino)) { |
122 | if (!ofw_ebus_map_interrupts(node->parent, ((ofw_ebus_reg_t *) prop->value), interrupts, &inr)) { |
| 123 | printf("Failed to determine keyboard interrupts.\n"); |
123 | printf("Failed to determine keyboard interrupts.\n"); |
| 124 | return; |
124 | return; |
| 125 | } |
125 | } |
| 126 | break; |
126 | break; |
| 127 | default: |
127 | default: |