Subject: Re: Using Linux 2.6.19 with Xilinx ML405

From: Peter Korsgaard <[email-masked]>
Date: Wed, 04 Apr 2007 15:26:04 +0200

>>>>> "PM" == Peter Mendham <[email-masked]> writes:

Hi,

PM> Brilliant!  Thanks.  The code your patch produces expects there to
PM> be an 8250 compatible UART around.  What happens if I only have a
PM> UARTlite?  What do I need to fill in to a platform_device
PM> structure for a UARTlite?

Something like:

static struct resource myboarduartlite_resources[] = {
	[0] = {
		.start  = 0xa1000003,
		.end    = 0xa1000012,
		.flags  = IORESOURCE_MEM,
	},
	[1] = {
		.start	= 2,
		.end	= 2,
		.flags	= IORESOURCE_IRQ,
	},
};

static struct platform_device myboard_uartlite = {
	.name			= "uartlite",
	.id			= 0,
	.num_resources		= ARRAY_SIZE(myboarduartlite_resources),
	.resource		= myboarduartlite_resources,
};

static struct platform_device *myboard_devices[] __initdata = {
	..
	&myboard_uartlite,
        ..
};

static int __init
myboard_platform_add_devices(void)
{
	return platform_add_devices(myboard_devices,
                ARRAY_SIZE(myboard_devices));

}
arch_initcall(myboard_platform_add_devices);

Notice the +3 for the base address as the registers are accessed using
8bit I/O.

PM> I have just moved to 2.6.20 kernel in the hope of using the
PM> mainline uartlite driver - was this a stupid thing to do?

Not if you ask me ;)

PM> Do you know if I can use it for early serial in the same way as an
PM> 8250?

Unfortunately not. I started working on some patches for this some
months ago, but got stalled doing other stuff. I doubt it will get
integrated before the move to arch/powerpc.

-- 
Bye, Peter Korsgaard