diff options
author | inmarket <andrewh@inmarket.com.au> | 2014-07-15 12:41:40 +1000 |
---|---|---|
committer | inmarket <andrewh@inmarket.com.au> | 2014-07-15 12:41:40 +1000 |
commit | 0e74c164c3eac14f6e99d1a5cc4e0563faeff5d0 (patch) | |
tree | ad1e2e9942db826dfaaf681c8a0cef48a87eabf2 /boards/base/RaspberryPi/example-FreeRTOS/Drivers/mmio.h | |
parent | 92d972cfd83b67961dc63d60c5317ec2651eb256 (diff) | |
parent | db4719bd1d3cef2597f1bf443f8d82a27f233eae (diff) | |
download | uGFX-0e74c164c3eac14f6e99d1a5cc4e0563faeff5d0.tar.gz uGFX-0e74c164c3eac14f6e99d1a5cc4e0563faeff5d0.tar.bz2 uGFX-0e74c164c3eac14f6e99d1a5cc4e0563faeff5d0.zip |
Merge branch 'master' into newmouse
Diffstat (limited to 'boards/base/RaspberryPi/example-FreeRTOS/Drivers/mmio.h')
-rw-r--r-- | boards/base/RaspberryPi/example-FreeRTOS/Drivers/mmio.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/boards/base/RaspberryPi/example-FreeRTOS/Drivers/mmio.h b/boards/base/RaspberryPi/example-FreeRTOS/Drivers/mmio.h new file mode 100644 index 00000000..89bea700 --- /dev/null +++ b/boards/base/RaspberryPi/example-FreeRTOS/Drivers/mmio.h @@ -0,0 +1,24 @@ +/* mmio.h - access to MMIO registers */ + +#ifndef MMIO_H +#define MMIO_H + +#include <stdint.h> + +// write to MMIO register +static inline void mmio_write(uint32_t reg, uint32_t data) { + uint32_t *ptr = (uint32_t*)reg; + asm volatile("str %[data], [%[reg]]" + : : [reg]"r"(ptr), [data]"r"(data)); +} + +// read from MMIO register +static inline uint32_t mmio_read(uint32_t reg) { + uint32_t *ptr = (uint32_t*)reg; + uint32_t data; + asm volatile("ldr %[data], [%[reg]]" + : [data]"=r"(data) : [reg]"r"(ptr)); + return data; +} + +#endif // #ifndef MMIO_H |