diff options
| author | Tom Rini <trini@ti.com> | 2013-12-10 09:36:23 -0500 | 
|---|---|---|
| committer | Tom Rini <trini@ti.com> | 2013-12-10 09:36:23 -0500 | 
| commit | 65b7fe28a12bbaccc7a0c076f5f9f213150030e7 (patch) | |
| tree | 96be894262501d04c9bb637a837180b7708e49e8 /drivers/spi/spi.c | |
| parent | e1e3de79515b95712a41f52c86a0181530f2fc03 (diff) | |
| parent | ca9a501953ce945da8e76d86a0ddf070a7f729b8 (diff) | |
| download | olio-uboot-2014.01-65b7fe28a12bbaccc7a0c076f5f9f213150030e7.tar.xz olio-uboot-2014.01-65b7fe28a12bbaccc7a0c076f5f9f213150030e7.zip | |
Merge branch 'spi' of git://git.denx.de/u-boot-x86
Diffstat (limited to 'drivers/spi/spi.c')
| -rw-r--r-- | drivers/spi/spi.c | 19 | 
1 files changed, 19 insertions, 0 deletions
| diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index b76a26cef..7ddea9b02 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -5,6 +5,7 @@   */  #include <common.h> +#include <fdtdec.h>  #include <malloc.h>  #include <spi.h> @@ -37,3 +38,21 @@ void *spi_do_alloc_slave(int offset, int size, unsigned int bus,  	return ptr;  } + +#ifdef CONFIG_OF_SPI +struct spi_slave *spi_base_setup_slave_fdt(const void *blob, int busnum, +					   int node) +{ +	int cs, max_hz, mode = 0; + +	cs = fdtdec_get_int(blob, node, "reg", -1); +	max_hz = fdtdec_get_int(blob, node, "spi-max-frequency", 100000); +	if (fdtdec_get_bool(blob, node, "spi-cpol")) +		mode |= SPI_CPOL; +	if (fdtdec_get_bool(blob, node, "spi-cpha")) +		mode |= SPI_CPHA; +	if (fdtdec_get_bool(blob, node, "spi-cs-high")) +		mode |= SPI_CS_HIGH; +	return spi_setup_slave(busnum, cs, max_hz, mode); +} +#endif |