Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/uart/uart_cpu_arm64.c
Show First 20 Lines • Show All 149 Lines • ▼ Show 20 Lines | |||||
#endif | #endif | ||||
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_handle_t bsh; | bus_space_handle_t bsh; | ||||
bus_space_tag_t bst; | bus_space_tag_t bst; | ||||
u_int rclk, shift; | u_int rclk, shift, iowidth; | ||||
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 == 0) | if (err == 0) | ||||
return (0); | return (0); | ||||
if (devtype != UART_DEV_CONSOLE) | if (devtype != UART_DEV_CONSOLE) | ||||
return (ENXIO); | return (ENXIO); | ||||
err = ENXIO; | err = ENXIO; | ||||
#ifdef DEV_ACPI | #ifdef DEV_ACPI | ||||
err = uart_cpu_acpi_probe(&class, &bst, &bsh, &br, &rclk, &shift); | err = uart_cpu_acpi_probe(&class, &bst, &bsh, &br, &rclk, &shift); | ||||
#endif | #endif | ||||
#ifdef FDT | #ifdef FDT | ||||
if (err != 0) { | if (err != 0) { | ||||
err = uart_cpu_fdt_probe(&class, &bst, &bsh, &br, &rclk, | err = uart_cpu_fdt_probe(&class, &bst, &bsh, &br, &rclk, | ||||
&shift); | &shift, &iowidth); | ||||
} | } | ||||
#endif | #endif | ||||
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 (0); | return (0); | ||||
} | } |