summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJett Rink <jettrink@chromium.org>2020-01-10 11:45:14 -0700
committerCommit Bot <commit-bot@chromium.org>2020-01-29 19:52:43 +0000
commit1e5b4a11489173de522836224951a47e9aef7c35 (patch)
tree02e75bcafc6a5af87f3d10245dcd962f28c37d20
parente7ede617d8065ee10e89171aeca5602f161693b0 (diff)
downloadchrome-ec-1e5b4a11489173de522836224951a47e9aef7c35.tar.gz
spi: add flags to spi configuration
Add flags field to stm and g chip usb spi configuration. This is unused for g chip, but added for consistency. BRANCH=none BUG=b:147353903 TEST=builds Change-Id: Ie2aa88ae09e8f6f4049ba13fe4565901c604b92c Signed-off-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1995603 Reviewed-by: Diana Z <dzigterman@chromium.org> Reviewed-by: Namyoon Woo <namyoon@chromium.org> Reviewed-by: Brian Nemec <bnemec@chromium.org>
-rw-r--r--board/cr50/rdd.c2
-rw-r--r--board/discovery-stm32f072/board.c2
-rw-r--r--board/hammer/board.c2
-rw-r--r--board/servo_micro/board.c2
-rw-r--r--chip/g/usb_spi.h5
-rw-r--r--chip/stm32/usb_spi.h10
6 files changed, 17 insertions, 6 deletions
diff --git a/board/cr50/rdd.c b/board/cr50/rdd.c
index 2d1403ec02..9ce2970045 100644
--- a/board/cr50/rdd.c
+++ b/board/cr50/rdd.c
@@ -21,7 +21,7 @@
#include "usb_spi.h"
/* Include the dazzlingly complex macro to instantiate the USB SPI config */
-USB_SPI_CONFIG(ccd_usb_spi, USB_IFACE_SPI, USB_EP_SPI);
+USB_SPI_CONFIG(ccd_usb_spi, USB_IFACE_SPI, USB_EP_SPI, 0);
#define CPRINTS(format, args...) cprints(CC_USB, format, ## args)
#define CPRINTF(format, args...) cprintf(CC_USB, format, ## args)
diff --git a/board/discovery-stm32f072/board.c b/board/discovery-stm32f072/board.c
index 8d0b2b0ea8..b1b9346cd3 100644
--- a/board/discovery-stm32f072/board.c
+++ b/board/discovery-stm32f072/board.c
@@ -189,7 +189,7 @@ void usb_spi_board_disable(struct usb_spi_config const *config)
gpio_config_module(MODULE_SPI_FLASH, 0);
}
-USB_SPI_CONFIG(usb_spi, USB_IFACE_SPI, USB_EP_SPI);
+USB_SPI_CONFIG(usb_spi, USB_IFACE_SPI, USB_EP_SPI, 0);
/******************************************************************************
* Initialize board.
diff --git a/board/hammer/board.c b/board/hammer/board.c
index c8ebbd856e..65588dda05 100644
--- a/board/hammer/board.c
+++ b/board/hammer/board.c
@@ -79,7 +79,7 @@ const struct spi_device_t spi_devices[] = {
};
const unsigned int spi_devices_used = ARRAY_SIZE(spi_devices);
-USB_SPI_CONFIG(usb_spi, USB_IFACE_I2C_SPI, USB_EP_I2C_SPI);
+USB_SPI_CONFIG(usb_spi, USB_IFACE_I2C_SPI, USB_EP_I2C_SPI, 0);
/* SPI interface is always enabled, no need to do anything. */
void usb_spi_board_enable(struct usb_spi_config const *config) {}
void usb_spi_board_disable(struct usb_spi_config const *config) {}
diff --git a/board/servo_micro/board.c b/board/servo_micro/board.c
index ca97b1fbd7..d8611fd493 100644
--- a/board/servo_micro/board.c
+++ b/board/servo_micro/board.c
@@ -659,7 +659,7 @@ void usb_spi_board_disable(struct usb_spi_config const *config)
gpio_config_module(MODULE_SPI_FLASH, 0);
}
-USB_SPI_CONFIG(usb_spi, USB_IFACE_SPI, USB_EP_SPI);
+USB_SPI_CONFIG(usb_spi, USB_IFACE_SPI, USB_EP_SPI, 0);
/******************************************************************************
* Support I2C bridging over USB.
diff --git a/chip/g/usb_spi.h b/chip/g/usb_spi.h
index cedfe78485..a98157753f 100644
--- a/chip/g/usb_spi.h
+++ b/chip/g/usb_spi.h
@@ -159,11 +159,14 @@ extern struct consumer_ops const usb_spi_consumer_ops;
*
* ENDPOINT is the index of the USB bulk endpoint used for receiving and
* transmitting bytes.
+ *
+ * FLAGS is unused right now, but add to definition for consistency
*/
#define USB_SPI_CONFIG(NAME, \
INTERFACE, \
- ENDPOINT) \
+ ENDPOINT, \
+ FLAGS) \
\
static uint8_t CONCAT2(NAME, _buffer_)[USB_MAX_PACKET_SIZE]; \
static void CONCAT2(NAME, _deferred_)(void); \
diff --git a/chip/stm32/usb_spi.h b/chip/stm32/usb_spi.h
index 15d20e7d6b..fda770345d 100644
--- a/chip/stm32/usb_spi.h
+++ b/chip/stm32/usb_spi.h
@@ -120,6 +120,9 @@ struct usb_spi_config {
uint16_t *buffer;
usb_uint *rx_ram;
usb_uint *tx_ram;
+
+ /* Flags. See USB_SPI_CONFIG_FLAGS_* for definitions */
+ uint32_t flags;
};
/*
@@ -133,10 +136,14 @@ struct usb_spi_config {
*
* ENDPOINT is the index of the USB bulk endpoint used for receiving and
* transmitting bytes.
+ *
+ * FLAGS encodes different run-time control parameters. See
+ * USB_SPI_CONFIG_FLAGS_* for definitions.
*/
#define USB_SPI_CONFIG(NAME, \
INTERFACE, \
- ENDPOINT) \
+ ENDPOINT, \
+ FLAGS) \
static uint16_t CONCAT2(NAME, _buffer_)[USB_MAX_PACKET_SIZE / 2]; \
static usb_uint CONCAT2(NAME, _ep_rx_buffer_)[USB_MAX_PACKET_SIZE / 2] __usb_ram; \
static usb_uint CONCAT2(NAME, _ep_tx_buffer_)[USB_MAX_PACKET_SIZE / 2] __usb_ram; \
@@ -155,6 +162,7 @@ struct usb_spi_config {
.buffer = CONCAT2(NAME, _buffer_), \
.rx_ram = CONCAT2(NAME, _ep_rx_buffer_), \
.tx_ram = CONCAT2(NAME, _ep_tx_buffer_), \
+ .flags = FLAGS, \
}; \
const struct usb_interface_descriptor \
USB_IFACE_DESC(INTERFACE) = { \