Subversion Repositories HelenOS

Rev

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: