[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V2 21/33] xen/arm: Use device tree API in pl011 UART driver
On 05/08/2013 04:17 PM, Ian Campbell wrote: > On Wed, 2013-05-08 at 03:33 +0100, Julien Grall wrote: >> @@ -227,32 +239,56 @@ static struct uart_driver __read_mostly pl011_driver = >> { >> .tx_ready = pl011_tx_ready, >> .putc = pl011_putc, >> .getc = pl011_getc, >> - .irq = pl011_irq >> + .irq = pl011_irq, >> + .dt_irq_get = pl011_dt_irq, >> }; >> >> -/* TODO: Parse UART config from device-tree or command-line */ >> - >> -void __init pl011_init(int index, unsigned long register_base_address) >> +/* TODO: Parse UART config from the command line */ >> +static int __init pl011_uart_init(struct dt_device_node *dev, >> + const void *data) >> { >> + const struct serial_arm_defaults *defaults = data; >> struct pl011 *uart; >> + int res; >> >> - if ( (index < 0) || (index > 1) ) >> - return; >> + if ( (defaults->index < 0) || (defaults->index > 1) ) >> + return -EINVAL; >> >> - uart = &pl011_com[index]; >> + uart = &pl011_com[defaults->index]; >> >> uart->clock_hz = 0x16e3600; >> uart->baud = 38400; >> uart->data_bits = 8; >> uart->parity = PARITY_NONE; >> uart->stop_bits = 1; >> - uart->irq = 37; /* TODO Need to find this from devicetree */ >> - uart->regs = (uint32_t *) register_base_address; >> + uart->regs = (uint32_t *) defaults->register_base_address; > > Should this not come from struct dt_device_node? > > Perhaps the driver needs to be instantiating its own FIXMAP mapping > instead of doing it in common code? In fact can we not get rid of the > fixmap for the runtime (not early) console and use the ioremap stuff > which Stefano just enabled with his vmap patches, or the early_ioremap > stuff if necessary. Right. I will use ioremap in the next patch series. > That does then call into question the whole serial_arm_defaults thing. > Perhaps index should just be the order in which they are registered (and > at the moment it is effectively hardcoded to 0 anyway) I'm thinking about using serial_arm_defaults for baud rate,... For the moment the different values are hardcoded. {arm,dt}_init_uart will parse the dtuart parameters on the command line and then fill serial_arm_defaults. -- Julien _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |