summaryrefslogtreecommitdiff
path: root/drivers/spi/spi.c
diff options
context:
space:
mode:
authorTom Rini <trini@ti.com>2013-12-10 09:36:23 -0500
committerTom Rini <trini@ti.com>2013-12-10 09:36:23 -0500
commit65b7fe28a12bbaccc7a0c076f5f9f213150030e7 (patch)
tree96be894262501d04c9bb637a837180b7708e49e8 /drivers/spi/spi.c
parente1e3de79515b95712a41f52c86a0181530f2fc03 (diff)
parentca9a501953ce945da8e76d86a0ddf070a7f729b8 (diff)
downloadu-boot-imx-65b7fe28a12bbaccc7a0c076f5f9f213150030e7.zip
u-boot-imx-65b7fe28a12bbaccc7a0c076f5f9f213150030e7.tar.gz
u-boot-imx-65b7fe28a12bbaccc7a0c076f5f9f213150030e7.tar.bz2
Merge branch 'spi' of git://git.denx.de/u-boot-x86
Diffstat (limited to 'drivers/spi/spi.c')
-rw-r--r--drivers/spi/spi.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index b76a26c..7ddea9b 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