diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/configs/exynos5250-dt.h | 1 | ||||
| -rw-r--r-- | include/configs/sandbox.h | 10 | ||||
| -rw-r--r-- | include/spi.h | 23 | ||||
| -rw-r--r-- | include/spi_flash.h | 13 | 
4 files changed, 41 insertions, 6 deletions
| diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h index 0155322a3..1e9c1e311 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 a4edc624b..7e78a231d 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 e2563c99f..aba792244 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 25ca8f177..afc3a5809 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, |