[U-Boot] [PATCH v2 2/2] ppc4xx: Add SPI helper routines for the 440EPX

This patch adds helper routines needed in support of the 440EPx SPI driver.
Signed-off-by: Steven A. Falco sfalco@harris.com ---
Regarding Wolfgang's comments:
The style I saw in the existing code is to have these three functions in a board-specific file. That way, the routines can exclude any chip selects that are not applicable to a specific hardware platform. Also, the chip-selects could be on a GPIO expander, in which case the activate/deactivate routines might have to deal with the GPIO expander device.
So, following the existing style, I think these routines should not be part of the generic driver. Otherwise, we could get into the situation where many ifdefs would be needed in the generic driver to handle the board-specific details.
board/amcc/sequoia/sequoia.c | 20 ++++++++++++++++++++ include/configs/sequoia.h | 4 ++++ 2 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/board/amcc/sequoia/sequoia.c b/board/amcc/sequoia/sequoia.c index d6668e2..cd08a77 100644 --- a/board/amcc/sequoia/sequoia.c +++ b/board/amcc/sequoia/sequoia.c @@ -26,6 +26,7 @@ #include <libfdt.h> #include <fdt_support.h> #include <ppc4xx.h> +#include <spi.h> #include <asm/gpio.h> #include <asm/processor.h> #include <asm/io.h> @@ -513,3 +514,22 @@ int post_hotkeys_pressed(void) return 0; /* No hotkeys supported */ } #endif /* CONFIG_POST */ + +#if defined(CONFIG_PPC440EPX_SPI) +int spi_cs_is_valid(unsigned int bus, unsigned int cs) +{ + return bus == 0 && cs >= 0 && cs < 64; +} + +void spi_cs_activate(struct spi_slave *slave) +{ + /* Assumes chip-selects are active-low. */ + gpio_write_bit(slave->cs, 0); +} + +void spi_cs_deactivate(struct spi_slave *slave) +{ + gpio_write_bit(slave->cs, 1); +} +#endif /* CONFIG_PPC440EPX_SPI */ + diff --git a/include/configs/sequoia.h b/include/configs/sequoia.h index 9321bdc..551be98 100644 --- a/include/configs/sequoia.h +++ b/include/configs/sequoia.h @@ -236,6 +236,10 @@ #define CONFIG_SYS_DTT_LOW_TEMP -30 #define CONFIG_SYS_DTT_HYSTERESIS 3
+/* Define these if you are using the SPI port. */ +#undef CONFIG_HARD_SPI +#undef CONFIG_PPC440EPX_SPI + /* * Default environment variables */

On Monday 08 December 2008, Steven A. Falco wrote:
This patch adds helper routines needed in support of the 440EPx SPI driver.
Please find a comment below.
<snip>
diff --git a/board/amcc/sequoia/sequoia.c b/board/amcc/sequoia/sequoia.c index d6668e2..cd08a77 100644 --- a/board/amcc/sequoia/sequoia.c +++ b/board/amcc/sequoia/sequoia.c @@ -26,6 +26,7 @@ #include <libfdt.h> #include <fdt_support.h> #include <ppc4xx.h> +#include <spi.h> #include <asm/gpio.h> #include <asm/processor.h> #include <asm/io.h> @@ -513,3 +514,22 @@ int post_hotkeys_pressed(void) return 0; /* No hotkeys supported */ } #endif /* CONFIG_POST */
+#if defined(CONFIG_PPC440EPX_SPI)
As mentioned in my other mail, please use CONFIG_PPC4xx_SPI here.
Thanks.
Best regards, Stefan
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de =====================================================================
participants (2)
-
Stefan Roese
-
Steven A. Falco