*((volatile int*)irqs[i]) = 0;
}
- uart_setup(uart);
uart_enable_fifo(uart, UART_FIFO8);
llist_append(&com_ports, &uart->local_ports);
- struct serial_dev* sdev = serial_create();
+ struct serial_dev* sdev = serial_create(&def->class);
sdev->backend = uart;
sdev->write = uart_general_tx;
sdev->exec_cmd = uart_general_exec_cmd;
uart->sdev = sdev;
+ uart_setup(uart);
+ uart_setie(uart);
uart = NULL;
}
}
static struct device_def uart_pmio_def = {
- .class = DEVCLASS(DEVIF_SOC, DEVFN_CHAR, DEV_SERIAL, 0),
+ .class = DEVCLASS(DEVIF_SOC, DEVFN_CHAR, DEV_UART16550),
.name = "16550 Generic UART (I/O)",
.init = upiom_init
};