LPC313x support - how to do it right?
Zoltan Gyarmati
mr.zoltan.gyarmati at gmail.com
Tue Feb 5 17:08:44 EST 2013
Hi,
in the last days i managed to rework and split up to more or less
logical units the patch provided by NXP (see here:
http://ics.nxp.com/support/software/lpc313x.bsp.linux/) for the LPC313x
platform to work with linux 3.7. Hence the original patch was against
2.6.33, it doesn't have any device tree bindings, and anyway needs a
lot of cleanup, but at this point it works. I'm willing to add the
LPC313x support to the mainline kernel (well, if the community doesn't
advice against:), but i'm not totally sure about the workflow i'm
supposed to follow, so here are my first questions (which probably will
be followed by others later on):
1. Do i think right that to get it into the mainline, it needs to
support device trees?
2. If so (and i think yes), is there any tutorial regarding to the
porting old machine support code and drivers to use device trees? (i
checked the kernel documentation and some other machine support code, so
i have some idea, but there are lot of unclear details of course...)
3. Regarding to the drivers, my biggest concern is the serial driver:
the hw is close to the traditional 8250, but the NXP driver uses DMA
access to handle it, which results a lot of changes in the
drivers/tty/serial/8250/8250.c (see in the linked kernel tree below).
What is the best strategy to follow in such a case? Adding this
modifications to the original 8250 and define config macros to handle
the differences(which will be kinda messy...), or create separated
driver code (which will duplicate some code from the original 8250
driver...)
The patchset is available in this Gitorious repo:
https://gitorious.org/linux-3-7-gnublin/linux-3-7-gnublin/commits/gnublin-support
in the gnublin-support branch.
Currently it provides support for the serial port, the i2c bus, usb host
and gadget, and mmc.
Thx in advance
--
br,
Zoltan Gyarmati
mail: mr.zoltan.gyarmati at gmail.com
freenode nick: zgyarmati
More information about the Kernelnewbies
mailing list