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

Can Aydin can.aydin at locatacorp.com
Tue Sep 28 11:56:48 CEST 2010



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





More information about the U-Boot mailing list