[U-Boot] [RFC] [PATCH 0/4] Add support for Freescale's 85xx and P1/P2xxx eSPI controller

Can Aydin
2010-09-28T09:56:48Z

Hi All,

This patch series adds support for the eSPI controller found on the
newer range of Freescale SoCs including the 85xx, P1/P2xx (and I believe
the P4xx) series.

The reason this is an RFC is that unfortunately the hardware on these
chips does not permit indefinite SPI transactions on a given chip
select. A chip select is asserted only when a 'transaction length' has
been passed to the controller. Once the number of characters specified
in the transaction length have been transmitted, the controller decides
that the 'frame' has ended and de-asserts the chip select after a
defined delay. It is not possible to initiate a second transfer without
re-initialising the command register, and hence clearing and
re-asserting a chip select signal.

This patch set addresses the issue by defining a read/write function in
the spi_flash_internal API. Subsequent patches add the freescale eSPI
driver and add support for it in the spansion driver and the P1/P2 board
configuration header.

I'm pretty sure that there are better ways of doing this, especially if
a driver model with support for driver quirks was implemented for
instance. Until then however, I assume having some sort of ability to
use the SPI controller on these boards would be better than not being
able to do anything at all. If anyone has a better solution please feel
free to comment.

Regards,

Can

--
drivers/mtd/spi/spansion.c | 60 ++++++++-
drivers/mtd/spi/spi_flash.c | 38 +++++-
drivers/mtd/spi/spi_flash_internal.h | 9 ++
drivers/spi/Makefile | 1 +
drivers/spi/fsl_espi.c | 251
++++++++++++++++++++++++++++++++++
include/configs/P1_P2_RDB.h | 18 +++
include/fsl_espi.h | 50 +++++++
7 files changed, 419 insertions(+), 8 deletions(-)
mode change 100644 => 100755 drivers/mtd/spi/spansion.c
mode change 100644 => 100755 drivers/mtd/spi/spi_flash.c
mode change 100644 => 100755 drivers/mtd/spi/spi_flash_internal.h
create mode 100755 drivers/spi/fsl_espi.c
create mode 100755 include/fsl_espi.h