From cc9063987348807c6707c8f0a4ea797ebf7d2234 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Wed, 1 Aug 2012 01:18:36 +0000 Subject: [PATCH] Add the chip select glue. --- sys/dev/spibus/spi.h | 3 +++ sys/dev/spibus/spibus.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/sys/dev/spibus/spi.h b/sys/dev/spibus/spi.h index 663f5ff2ded..4f89e94353c 100644 --- a/sys/dev/spibus/spi.h +++ b/sys/dev/spibus/spi.h @@ -1,6 +1,7 @@ /* $FreeBSD$ */ struct spi_command { + int cs; void *tx_cmd; uint32_t tx_cmd_sz; void *rx_cmd; @@ -10,3 +11,5 @@ struct spi_command { void *rx_data; uint32_t rx_data_sz; }; + +#define SPI_CHIP_SELECT_HIGH 0x1 /* Chip select high (else low) */ diff --git a/sys/dev/spibus/spibus.c b/sys/dev/spibus/spibus.c index 43b4e7e8b38..0f8e3594907 100644 --- a/sys/dev/spibus/spibus.c +++ b/sys/dev/spibus/spibus.c @@ -158,6 +158,9 @@ spibus_hinted_child(device_t bus, const char *dname, int dunit) static int spibus_transfer_impl(device_t dev, device_t child, struct spi_command *cmd) { + /* Maybe set flags too? spi mode? */ + spibus_get_cs(dev, &cmd->cs); + return (SPIBUS_TRANSFER(device_get_parent(dev), child, cmd)); }