Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/uart/uart_cpu_fdt.c
Show First 20 Lines • Show All 70 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
int | int | ||||
uart_cpu_getdev(int devtype, struct uart_devinfo *di) | uart_cpu_getdev(int devtype, struct uart_devinfo *di) | ||||
{ | { | ||||
struct uart_class *class; | struct uart_class *class; | ||||
bus_space_tag_t bst; | bus_space_tag_t bst; | ||||
bus_space_handle_t bsh; | bus_space_handle_t bsh; | ||||
u_int shift, rclk; | u_int shift, iowidth, rclk; | ||||
int br, err; | int br, err; | ||||
/* Allow overriding the FDT using the environment. */ | /* Allow overriding the FDT using the environment. */ | ||||
class = &uart_ns8250_class; | class = &uart_ns8250_class; | ||||
err = uart_getenv(devtype, di, class); | err = uart_getenv(devtype, di, class); | ||||
if (!err) | if (!err) | ||||
return (0); | return (0); | ||||
if (devtype != UART_DEV_CONSOLE) | if (devtype != UART_DEV_CONSOLE) | ||||
return (ENXIO); | return (ENXIO); | ||||
err = uart_cpu_fdt_probe(&class, &bst, &bsh, &br, &rclk, &shift); | err = uart_cpu_fdt_probe(&class, &bst, &bsh, &br, &rclk, &shift, &iowidth); | ||||
if (err != 0) | if (err != 0) | ||||
return (err); | return (err); | ||||
/* | /* | ||||
* Finalize configuration. | * Finalize configuration. | ||||
*/ | */ | ||||
di->bas.chan = 0; | di->bas.chan = 0; | ||||
di->bas.regshft = shift; | di->bas.regshft = shift; | ||||
di->bas.regiowidth = iowidth; | |||||
di->baudrate = br; | di->baudrate = br; | ||||
di->bas.rclk = rclk; | di->bas.rclk = rclk; | ||||
di->ops = uart_getops(class); | di->ops = uart_getops(class); | ||||
di->databits = 8; | di->databits = 8; | ||||
di->stopbits = 1; | di->stopbits = 1; | ||||
di->parity = UART_PARITY_NONE; | di->parity = UART_PARITY_NONE; | ||||
di->bas.bst = bst; | di->bas.bst = bst; | ||||
di->bas.bsh = bsh; | di->bas.bsh = bsh; | ||||
uart_bus_space_mem = di->bas.bst; | uart_bus_space_mem = di->bas.bst; | ||||
uart_bus_space_io = NULL; | uart_bus_space_io = NULL; | ||||
return (err); | return (err); | ||||
} | } |