]> rtime.felk.cvut.cz Git - l4.git/blob - kernel/fiasco/src/lib/uart/arm/uart_imx.h
dba0eedbd02160b57eaa2abc6bb06f94fcc06de9
[l4.git] / kernel / fiasco / src / lib / uart / arm / uart_imx.h
1 #ifndef L4_CXX_UART_imx_H__
2 #define L4_CXX_UART_imx_H__
3
4 #include "uart_base.h"
5
6 namespace L4
7 {
8   class Uart_imx : public Uart
9   {
10   private:
11     unsigned long _base;
12
13     inline unsigned long rd(unsigned long reg) const;
14     inline void wr(unsigned long reg, unsigned long val) const;
15
16   public:
17     Uart_imx(int rx_irq, int tx_irq)
18        : Uart(rx_irq, tx_irq), _base(~0UL) {}
19     bool startup(unsigned long base);
20     void shutdown();
21     bool enable_rx_irq(bool enable = true);
22     bool enable_tx_irq(bool enable = true);
23     bool change_mode(Transfer_mode m, Baud_rate r);
24     int get_char(bool blocking = true) const;
25     int char_avail() const;
26     inline void out_char(char c) const;
27     int write(char const *s, unsigned long count) const;
28   };
29 };
30
31 #endif