summaryrefslogtreecommitdiff
path: root/src/cc1111/ao_arch_funcs.h
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-06-27 14:34:53 -0700
committerKeith Packard <keithp@keithp.com>2012-06-27 14:34:53 -0700
commit08a4ed8fe794a2b2b52147bd5535fe0954822e95 (patch)
treed9ae25dd4922c15a7c2d55ce95b601c6bf02ce75 /src/cc1111/ao_arch_funcs.h
parent1a1d4a557a30e2e743936b828b654187ec562ca8 (diff)
altos: include targe SPI speed in get request
STM needs it to be provided when enabling the SPI device, so just fix AVR and cc1111 to do the same. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/cc1111/ao_arch_funcs.h')
-rw-r--r--src/cc1111/ao_arch_funcs.h19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/cc1111/ao_arch_funcs.h b/src/cc1111/ao_arch_funcs.h
index 728f1f76..0a322961 100644
--- a/src/cc1111/ao_arch_funcs.h
+++ b/src/cc1111/ao_arch_funcs.h
@@ -21,9 +21,18 @@
extern __xdata uint8_t ao_spi_mutex;
-#define ao_spi_get_mask(reg,mask,bus) do { \
- ao_mutex_get(&ao_spi_mutex); \
- (reg) &= ~(mask); \
+#define AO_SPI_SPEED_FAST 17
+#define AO_SPI_SPEED_200kHz 13
+
+#define ao_spi_set_speed(speed) (U0GCR = (UxGCR_CPOL_NEGATIVE | \
+ UxGCR_CPHA_FIRST_EDGE | \
+ UxGCR_ORDER_MSB | \
+ ((speed) << UxGCR_BAUD_E_SHIFT)))
+
+#define ao_spi_get_mask(reg,mask,bus,speed) do { \
+ ao_mutex_get(&ao_spi_mutex); \
+ ao_spi_set_speed(speed); \
+ (reg) &= ~(mask); \
} while (0)
#define ao_spi_put_mask(reg,mask,bus) do { \
@@ -31,8 +40,10 @@ extern __xdata uint8_t ao_spi_mutex;
ao_mutex_put(&ao_spi_mutex); \
} while (0)
-#define ao_spi_get_bit(reg,bit,pin,bus) do { \
+
+#define ao_spi_get_bit(reg,bit,pin,bus,speed) do { \
ao_mutex_get(&ao_spi_mutex); \
+ ao_spi_set_speed(speed); \
pin = 0; \
} while (0)