coreboot/src/drivers
Furquan Shaikh c2973d196d spi: Get rid of SPI_ATOMIC_SEQUENCING
SPI_ATOMIC_SEQUENCING was added to accomodate spi flash controllers with
the ability to perform tx and rx of flash command and response at the
same time. Instead of introducing this notion at SPI flash driver layer,
clean up the interface to SPI used by flash.

Flash uses a command-response kind of communication. Thus, even though
SPI is duplex, flash command needs to be sent out on SPI bus and then
flash response should be received on the bus. Some specialized x86
flash controllers are capable of handling command and response in a
single transaction.

In order to support all the varied cases:
1. Add spi_xfer_vector that takes as input a vector of SPI operations
and calls back into SPI controller driver to process these operations.
2. In order to accomodate flash command-response model, use two vectors
while calling into spi_xfer_vector -- one with dout set to
non-NULL(command) and other with din set to non-NULL(response).
3. For specialized SPI flash controllers combine two successive vectors
if the transactions look like a command-response pair.
4. Provide helper functions for common cases like supporting only 2
vectors at a time, supporting n vectors at a time, default vector
operation to cycle through all SPI op vectors one by one.

BUG=chrome-os-partner:59832
BRANCH=None
TEST=Compiles successfully

Change-Id: I4c9e78c585ad95c40c0d5af078ff8251da286236
Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: https://review.coreboot.org/17681
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
2016-12-23 04:54:55 +01:00
..
ams drivers/ams: Set default values in Kconfig 2015-11-22 01:39:44 +01:00
aspeed Remove extra newlines from the end of all coreboot files. 2016-07-31 18:19:33 +02:00
ati/ragexl src/drivers: Add required space before opening parenthesis '(' 2016-08-31 20:12:07 +02:00
dec/21143 kbuild: Allow drivers to fit src/drivers/[X]/[Y]/ scheme 2016-04-19 18:34:18 +02:00
elog drivers/elog: use region_device for NV storage 2016-08-19 18:18:08 +02:00
emulation/qemu drivers/emulation: Switch to src/drivers/[X]/[Y]/ scheme 2016-04-19 18:37:08 +02:00
generic drivers/regulator: Add driver for handling GPIO-based fixed regulator 2016-12-17 04:21:19 +01:00
gic arm64: Remove cpu intialization through device-tree 2015-11-07 03:29:35 +01:00
i2c drivers/i2c/generic: Allow mainboards to export reset and enable GPIOs 2016-12-16 18:26:22 +01:00
ics/954309 drivers/ics: Switch to src/drivers/[X]/[Y]/ scheme 2016-04-19 18:36:43 +02:00
intel drivers/intel/fsp2_0: add FSP TempRamInit & TempRamExit API support 2016-12-21 00:10:22 +01:00
ipmi src/drivers: Add required space before opening parenthesis '(' 2016-08-31 20:12:07 +02:00
lenovo Remove extra newlines from the end of all coreboot files. 2016-07-31 18:19:33 +02:00
maxim drivers/aspeed: Switch to src/drivers/[X]/[Y]/ scheme 2016-04-19 18:36:17 +02:00
net drivers/r8168: Read default MAC address from CBFS 2016-12-08 12:40:46 +01:00
parade parade/ps8640: disable mipi mcs 2016-08-31 19:59:29 +02:00
pc80 drivers/pc80/tpm: Set default TPM acpi path if unset 2016-12-16 20:27:29 +01:00
ricoh/rce822 buildsystem: Drop explicit (k)config.h includes 2016-12-08 19:46:53 +01:00
siemens/nc_fpga siemens/nc_fpga: Add driver for Siemens NC FPGA 2016-07-06 22:38:58 +02:00
sil/3114 drivers/sil: Switch to src/drivers/[X]/[Y]/ scheme 2016-04-19 18:36:05 +02:00
spi spi: Get rid of SPI_ATOMIC_SEQUENCING 2016-12-23 04:54:55 +01:00
ti drivers/ti: Switch to src/drivers/[X]/[Y]/ scheme 2016-04-19 18:34:36 +02:00
uart Kconfig: Prefix hex defaults with 0x 2016-09-30 23:57:02 +02:00
usb drivers/usb: Add option for baudrate of FT232H UART 2016-11-21 15:04:35 +01:00
xgi Add newlines at the end of all coreboot files 2016-08-01 21:43:56 +02:00
xpowers/axp209 Remove non-ascii & unprintable characters 2016-08-01 21:44:45 +02:00