summaryrefslogtreecommitdiff
path: root/spi/spi.h
diff options
context:
space:
mode:
authorAtle H. Havsø <atle@havso.net>2014-07-24 11:20:18 +0200
committerAtle H. Havsø <atle@havso.net>2014-07-24 11:20:18 +0200
commit79f7c128bb43c9d4598a9d373dc570a04733e2b1 (patch)
tree982d1182b15d031cfd7c2897c4e9613e201e740e /spi/spi.h
parentfab8321b68896a8a9ff085586652ed4d834ba173 (diff)
Changes needed for afro-card.temp_suzumebachi
Diffstat (limited to 'spi/spi.h')
-rw-r--r--spi/spi.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/spi/spi.h b/spi/spi.h
index 1f9e0eb..1b35b89 100644
--- a/spi/spi.h
+++ b/spi/spi.h
@@ -7,7 +7,10 @@ struct SPI_reg_t {
volatile uint32_t CR1;
volatile uint32_t CR2;
volatile uint32_t SR;
- volatile uint32_t DR;
+ union {
+ volatile uint32_t DR;
+ volatile uint8_t DR8;
+ };
volatile uint32_t CRCPR;
volatile uint32_t RXCRCR;
volatile uint32_t TXCRCR;
@@ -22,13 +25,12 @@ class SPI_t {
SPI_t(uint32_t reg_addr) : reg(*(SPI_reg_t*)reg_addr) {}
uint8_t transfer_byte(uint8_t out = 0) {
- reg.DR = out;
+ reg.DR8 = out;
while(!(reg.SR & 0x01)) {
Thread::yield();
}
-
- return reg.DR;
+ return reg.DR8;
}
};