summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/cr50/board.c7
-rw-r--r--board/cr50/board.h6
-rw-r--r--chip/g/spi_master.c7
-rw-r--r--include/config.h3
4 files changed, 23 insertions, 0 deletions
diff --git a/board/cr50/board.c b/board/cr50/board.c
index 139b550087..4640064c81 100644
--- a/board/cr50/board.c
+++ b/board/cr50/board.c
@@ -15,6 +15,7 @@
#include "usb_descriptor.h"
#include "usb_hid.h"
#include "util.h"
+#include "spi.h"
/* Define interrupt and gpio structs */
#include "gpio_list.h"
@@ -123,6 +124,12 @@ const void * const usb_strings[] = {
BUILD_ASSERT(ARRAY_SIZE(usb_strings) == USB_STR_COUNT);
#endif
+/* SPI devices */
+const struct spi_device_t spi_devices[] = {
+ [CONFIG_SPI_FLASH_PORT] = {0, 4, GPIO_COUNT}
+};
+const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
+
int flash_regions_to_enable(struct g_flash_region *regions,
int max_regions)
{
diff --git a/board/cr50/board.h b/board/cr50/board.h
index 685d511c1c..d04c44a79e 100644
--- a/board/cr50/board.h
+++ b/board/cr50/board.h
@@ -38,6 +38,12 @@
#define CONFIG_USB_PID 0x5014
+/* Enable SPI Master (SPI) module */
+#define CONFIG_SPI_MASTER
+#define CONFIG_SPI_MASTER_NO_CS_GPIOS
+#define CONFIG_SPI_MASTER_CONFIGURE_GPIOS
+#define CONFIG_SPI_FLASH_PORT 0
+
/* Enable SPI Slave (SPS) module */
#define CONFIG_SPS
#define CONFIG_TPM_SPS
diff --git a/chip/g/spi_master.c b/chip/g/spi_master.c
index 322d112797..aa9f9707b8 100644
--- a/chip/g/spi_master.c
+++ b/chip/g/spi_master.c
@@ -211,6 +211,13 @@ static void spi_init(void)
{
size_t i;
+#ifdef CONFIG_SPI_MASTER_CONFIGURE_GPIOS
+ /* Set SPI_MISO as an input */
+ GWRITE_FIELD(PINMUX, DIOA11_CTL, IE, 1); /* SPS_MISO */
+ /* Set SPI_CS to be an internal pull up */
+ GWRITE_FIELD(PINMUX, DIOA14_CTL, PU, 1);
+#endif
+
for (i = 0; i < SPI_NUM_PORTS; i++) {
/* Configure the SPI ports to default to mode0. */
set_spi_clock_mode(i, SPI_CLOCK_MODE0);
diff --git a/include/config.h b/include/config.h
index 173db8f3ed..63096c843c 100644
--- a/include/config.h
+++ b/include/config.h
@@ -1606,6 +1606,9 @@
/* SPI master feature */
#undef CONFIG_SPI_MASTER
+/* SPI master configure gpios on init */
+#undef CONFIG_SPI_MASTER_CONFIGURE_GPIOS
+
/* Support SPI masters without GPIO-specified Chip Selects, instead rely on the
* SPI master port's hardwired CS pin. */
#undef CONFIG_SPI_MASTER_NO_CS_GPIOS