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