[PATCH 07/11] ST SPEAr: Added source files for SPEAr3xx machine family
Russell King - ARM Linux
linux at arm.linux.org.uk
Thu Mar 11 05:41:03 EST 2010
On Tue, Mar 09, 2010 at 07:46:10AM +0100, Linus Walleij wrote:
> > +struct amba_device uart_device = {
> > + .dev = {
> > + .init_name = "uart",
> > + },
> > + .res = {
> > + .start = SPEAR3XX_ICM1_UART_BASE,
> > + .end = SPEAR3XX_ICM1_UART_BASE + SPEAR3XX_ICM1_UART_SIZE - 1,
> > + .flags = IORESOURCE_MEM,
> > + },
> > + .irq = {IRQ_UART, NO_IRQ},
> > + .periphid = 0x00041011,
> > +};
>
> You're hardcoding the PrimeCell ID to the ARM version, but I suspect
> you have an ST derivate with some additional features. If you look in
> the PL011 driver in drivers/serial/amba-pl011.c you will probably recognize
> the modified PrimeCell IDs for vendor 0x80 (VENDOR_ST) and I think
> you might rather need to patch this file with your new periphid and
> possibly even implement some new extensions (if there are any).
>
> What value is actually in the ID registers of your cell? (Just
> check in some debugger or simply printk() it...)
There is no need to specify the ID when the device provides it - in fact
the code will override you by reading the ID from the device if it finds
it. The only reason to explicitly provide one is for the very early
Primecell devices which didn't implement the ID scheme - such as PL010.
More information about the linux-arm-kernel
mailing list