diff options
Diffstat (limited to 'uart.h')
-rw-r--r-- | uart.h | 22 |
1 files changed, 11 insertions, 11 deletions
@@ -47,59 +47,59 @@ int getchar_non_blocking(void); static inline _Bool uart_irq_pending(void) { return - ((uint32_t) 1 << 25) & *(uint32_t volatile*) ARM_IRQ_PENDING_2; + ((uint32_t) 1 << 25) & rd32(ARM_IRQ_PENDING_2); } static inline void uart_irq_disable(void) { // Mask uart in arm peripheral interrupts - *(uint32_t volatile*) ARM_DISABLE_IRQS_2 = ((uint32_t) 1 << 25); + wr32(ARM_DISABLE_IRQS_2, ((uint32_t) 1) << 25); } static inline void uart_irq_enable(void) { // Unmask uart in arm peripheral interrupts - *(uint32_t volatile*) ARM_ENABLE_IRQS_2 = ((uint32_t) 1 << 25); + wr32(ARM_ENABLE_IRQS_2, ((uint32_t) 1) << 25); } static inline _Bool uart_recv_irq_pending(void) { - return ((uint32_t) 1 << 4) & *(uint32_t volatile*) PL011_UART_MIS; + return (1 << 4) & rd32(PL011_UART_MIS); } static inline void uart_recv_irq_disable(void) { - *(uint32_t volatile*) PL011_UART_IMSC &= ~(1 << 4); + wr32(PL011_UART_IMSC, rd32(PL011_UART_IMSC) & ~(1 << 4)); } static inline void uart_recv_irq_enable(void) { - *(uint32_t volatile*) PL011_UART_IMSC |= (1 << 4); + wr32(PL011_UART_IMSC, rd32(PL011_UART_IMSC) | (1 << 4)); } static inline void uart_clear_recv_irq(void) { - *(uint32_t volatile*) PL011_UART_ICR = (1 << 4); + wr32(PL011_UART_ICR, (1 << 4)); } static inline _Bool uart_send_irq_pending(void) { - return ((uint32_t) 1 << 5) & *(uint32_t volatile*) PL011_UART_MIS; + return (1 << 5) & rd32(PL011_UART_MIS); } static inline void uart_send_irq_disable(void) { - *(uint32_t volatile*) PL011_UART_IMSC &= ~(1 << 5); + wr32(PL011_UART_IMSC, rd32(PL011_UART_IMSC) & ~(1 << 5)); } static inline void uart_send_irq_enable(void) { - *(uint32_t volatile*) PL011_UART_IMSC |= (1 << 5); + wr32(PL011_UART_IMSC, rd32(PL011_UART_IMSC) | (1 << 5)); } static inline void uart_clear_send_irq(void) { - *(uint32_t volatile*) PL011_UART_ICR = (1 << 5); + wr32(PL011_UART_ICR, (1 << 5)); } #endif // UART_H |