summaryrefslogtreecommitdiff
path: root/src/soc/qualcomm/ipq806x/Kconfig
diff options
context:
space:
mode:
authorVadim Bendebury <vbendeb@chromium.org>2014-04-30 13:25:12 -0700
committerMarc Jones <marc.jones@se-eng.com>2014-12-31 21:05:50 +0100
commitdffd892e47bb8bbfb920447275a2d6b00be904ce (patch)
treee6feb2423e193c9dcd392a9c9fe3717f3e2ce29c /src/soc/qualcomm/ipq806x/Kconfig
parent11c4c92d918df878f052a501ce22b3eee2199cef (diff)
downloadcoreboot-dffd892e47bb8bbfb920447275a2d6b00be904ce.tar.xz
ipq8064: modify SPI controller driver to work in coreboot
A typical SPI operation consists of two phases - command and data transfers. Command transfer is always from the host to the chip (i.e. is going in the 'write' direction), data transfer could be either read or write. We don't want the receive FIFO to be operating while the command phase is in progress. A simple way to keep the receive FIFO shut down is to not to enable it until the command phase is completed. Selective control of the receive FIFO allows to consolidate the receive and transmit functions in a single spi_xfer() function, as it happens in other SPI controller drivers. The FIFO FULL and FIFO NOT EMPTY conditions are used to decide if the next byte can be written or received, respectively. While data is being received the 0xFF bytes are transmitted per each received byte, to keep the SPI bus clocking. The data structure describing the three GSBI ports is moved from the .h file into .c file. A version of the clrsetbits macro is added to work with integer addresses instead of pointers. BUG=chrome-os-partner:27784 TEST=not yet, but with the res of the changes the bootblock loads and starts the rombase section successfully. Original-Change-Id: I78cd0054f1a8f5e1d7213f38ef8de31486238aba Original-Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Original-Reviewed-on: https://chromium-review.googlesource.com/197779 Original-Reviewed-by: Stefan Reinauer <reinauer@chromium.org> Original-Reviewed-by: David Hendricks <dhendrix@chromium.org> (cherry picked from commit c101ae306d182bbe14935ee139a25968388d745a) Signed-off-by: Marc Jones <marc.jones@se-eng.com> Change-Id: I7f3fd0524ec6c10008ff514e8a8f1d14a700732f Reviewed-on: http://review.coreboot.org/7983 Reviewed-by: David Hendricks <dhendrix@chromium.org> Tested-by: build bot (Jenkins)
Diffstat (limited to 'src/soc/qualcomm/ipq806x/Kconfig')
-rw-r--r--src/soc/qualcomm/ipq806x/Kconfig1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/soc/qualcomm/ipq806x/Kconfig b/src/soc/qualcomm/ipq806x/Kconfig
index 92ef3a1d10..09e1c1eae0 100644
--- a/src/soc/qualcomm/ipq806x/Kconfig
+++ b/src/soc/qualcomm/ipq806x/Kconfig
@@ -7,6 +7,7 @@ config SOC_QC_IPQ806X
select ARM_LPAE
select BOOTBLOCK_CONSOLE
select HAVE_UART_SPECIAL
+ select SPI_ATOMIC_SEQUENCING
if SOC_QC_IPQ806X