Chris Holgate chris@zynaptic.com
Fri Dec 19 13:34:00 GMT 2008

Martin Laabs wrote:
>> I have written a generic driver for the ARM PrimeCell PL022 (which is
>> the IP block used for the LPC SSP peripheral), but I moved over to using
>> the STM32 before polishing it up for release.  If you're interested in
>> picking it up I can let you have it.
> This would be very kind of you. Maybe I can add an SPI packages
> (for supporing the eCos SPI framework) ontop of this package.

I have uploaded the files to the following location:


The driver compiles, runs and has been pretty thoroughly stress tested
on my LPC2148 dev board using a fairly recent eCos CVS snapshot.  It
implements all of the required eCos SPI framework behaviour apart from
polled operation.

However, some more thought needs to be given as to how this should be
added to the build tree.  The PL022 is a generic IP core which turns up
on the NXP devices and in a lot of custom ARM-based ASICs.  I think it
may also have been used in some of the Cirrus chips, but I'm not sure.

When I wrote the driver, I did it as a generic PL022 driver (in the
pl022 directory) which has no device specific code in it.  At the
moment, this is called CYGPKG_DEVS_SPI_ARM_PL022.  Then there is a
'wrapper' package which contains code specific to the LPC214x devices
such as chip select management using GPIOs.  This is currently called

The first things that need attention are the CDL files, where I just
used the minimum to get it working - with all the configurable options
that should be in CDL #defined in the header files instead.

The second thing that you'll need to look at if you're not using an
LPC214x chip is modifying the wrapper file to support your device.

Finally, if it's going to make it into the main tree, support for polled
operation will be required.

Oh - you might want to add some copyright notices too - the standard
eCos ones will do :-)


Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

More information about the Ecos-discuss mailing list