diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig index 56e7debd3edca56f0e32eec3ea6f493166b510c5..058949a6a945efc575e2f2774c4908561554d13d 100644 --- a/configs/sandbox_defconfig +++ b/configs/sandbox_defconfig @@ -20,3 +20,4 @@ CONFIG_BOOTSTAGE_REPORT=y CONFIG_SANDBOX_GPIO=y CONFIG_SYS_VSNPRINTF=y CONFIG_SYS_I2C_SANDBOX=y +CONFIG_SANDBOX_SPI=y diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig index 7ae2727cf7eeff5205250f16fad1ec9061b0106b..c4c112c5aec7442f9cd10ea20840d638d4fa7eea 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig @@ -10,3 +10,28 @@ config DM_SPI as 'parent data' to every slave on each bus. Slaves typically use driver-private data instead of extending the spi_slave structure. + +config SANDBOX_SPI + bool "Sandbox SPI driver" + depends on SANDBOX && DM + help + Enable SPI support for sandbox. This is an emulation of a real SPI + bus. Devices can be attached to the bus using the device tree + which specifies the driver to use. As an example, see this device + tree fragment from sandbox.dts. It shows that the SPI bus has a + single flash device on chip select 0 which is emulated by the driver + for "sandbox,spi-flash", which is in drivers/mtd/spi/sandbox.c. + + spi@0 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0>; + compatible = "sandbox,spi"; + cs-gpios = <0>, <&gpio_a 0>; + flash@0 { + reg = <0>; + compatible = "spansion,m25p16", "sandbox,spi-flash"; + spi-max-frequency = <40000000>; + sandbox,filename = "spi.bin"; + }; + }; diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h index 30d41e5edb4fed7d42c034a2a201336f0b1e2f5b..b77a866fea14b913136967c76db6e8f00b4d1a33 100644 --- a/include/configs/sandbox.h +++ b/include/configs/sandbox.h @@ -79,7 +79,6 @@ #define CONFIG_ENV_IS_NOWHERE /* SPI - enable all SPI flash types for testing purposes */ -#define CONFIG_SANDBOX_SPI #define CONFIG_CMD_SF #define CONFIG_CMD_SF_TEST #define CONFIG_CMD_SPI