X-Git-Url: https://git.kernelconcepts.de/?p=karo-tx-uboot.git;a=blobdiff_plain;f=drivers%2Fspi%2Fspi.c;h=7ddea9b026a969b4207792f1cfe9e39240e7fc48;hp=b76a26cef053fea6528098db03172f113d87b007;hb=0efc02499f9131bd7e1689ebb8d626ef12387de4;hpb=7b3efc66996b6686ad393b706c323990afa31930;ds=sidebyside diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index b76a26cef0..7ddea9b026 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -5,6 +5,7 @@ */ #include +#include #include #include @@ -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