summaryrefslogtreecommitdiff
path: root/include
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 /include
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 'include')
-rw-r--r--include/configs/exynos5250-dt.h1
-rw-r--r--include/configs/sandbox.h10
-rw-r--r--include/spi.h23
-rw-r--r--include/spi_flash.h13
4 files changed, 41 insertions, 6 deletions
diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h
index 0155322..1e9c1e3 100644
--- a/include/configs/exynos5250-dt.h
+++ b/include/configs/exynos5250-dt.h
@@ -276,6 +276,7 @@
#define CONFIG_SF_DEFAULT_MODE SPI_MODE_0
#define CONFIG_SF_DEFAULT_SPEED 50000000
#define EXYNOS5_SPI_NUM_CONTROLLERS 5
+#define CONFIG_OF_SPI
#endif
#ifdef CONFIG_ENV_IS_IN_SPI_FLASH
diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
index a4edc62..7e78a23 100644
--- a/include/configs/sandbox.h
+++ b/include/configs/sandbox.h
@@ -71,6 +71,16 @@
#define CONFIG_ENV_SIZE 8192
#define CONFIG_ENV_IS_NOWHERE
+/* SPI */
+#define CONFIG_SANDBOX_SPI
+#define CONFIG_CMD_SF
+#define CONFIG_CMD_SF_TEST
+#define CONFIG_CMD_SPI
+#define CONFIG_SPI_FLASH
+#define CONFIG_SPI_FLASH_SANDBOX
+#define CONFIG_SPI_FLASH_STMICRO
+#define CONFIG_SPI_FLASH_WINBOND
+
/* Memory things - we don't really want a memory test */
#define CONFIG_SYS_LOAD_ADDR 0x00000000
#define CONFIG_SYS_MEMTEST_START 0x00100000
diff --git a/include/spi.h b/include/spi.h
index e2563c9..aba7922 100644
--- a/include/spi.h
+++ b/include/spi.h
@@ -259,13 +259,24 @@ static inline int spi_w8r8(struct spi_slave *slave, unsigned char byte)
* spi_free_slave() to free it later.
*
* @param blob: Device tree blob
- * @param node: SPI peripheral node to use
- * @param cs: Chip select to use
- * @param max_hz: Maximum SCK rate in Hz (0 for default)
- * @param mode: Clock polarity, clock phase and other parameters
+ * @param slave_node: Slave node to use
+ * @param spi_node: SPI peripheral node to use
* @return pointer to new spi_slave structure
*/
-struct spi_slave *spi_setup_slave_fdt(const void *blob, int node,
- unsigned int cs, unsigned int max_hz, unsigned int mode);
+struct spi_slave *spi_setup_slave_fdt(const void *blob, int slave_node,
+ int spi_node);
+
+/**
+ * spi_base_setup_slave_fdt() - helper function to set up a SPI slace
+ *
+ * This decodes SPI properties from the slave node to determine the
+ * chip select and SPI parameters.
+ *
+ * @blob: Device tree blob
+ * @busnum: Bus number to use
+ * @node: Device tree node for the SPI bus
+ */
+struct spi_slave *spi_base_setup_slave_fdt(const void *blob, int busnum,
+ int node);
#endif /* _SPI_H_ */
diff --git a/include/spi_flash.h b/include/spi_flash.h
index 25ca8f1..afc3a58 100644
--- a/include/spi_flash.h
+++ b/include/spi_flash.h
@@ -67,6 +67,19 @@ struct spi_flash {
struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs,
unsigned int max_hz, unsigned int spi_mode);
+
+/**
+ * Set up a new SPI flash from an fdt node
+ *
+ * @param blob Device tree blob
+ * @param slave_node Pointer to this SPI slave node in the device tree
+ * @param spi_node Cached pointer to the SPI interface this node belongs
+ * to
+ * @return 0 if ok, -1 on error
+ */
+struct spi_flash *spi_flash_probe_fdt(const void *blob, int slave_node,
+ int spi_node);
+
void spi_flash_free(struct spi_flash *flash);
static inline int spi_flash_read(struct spi_flash *flash, u32 offset,