19 class Uart_imx :
public Uart
31 explicit Uart_imx(
enum platform_type type) : _type(type) {}
32 explicit Uart_imx(
enum platform_type type,
unsigned )
34 bool startup(Io_register_block
const *)
override;
35 void shutdown()
override;
36 bool enable_rx_irq(
bool enable =
true)
override;
37 bool change_mode(Transfer_mode m, Baud_rate r)
override;
38 int get_char(
bool blocking =
true)
const override;
39 int char_avail()
const override;
41 void wait_tx_done()
const;
42 inline void out_char(
char c)
const;
43 int write(
char const *s,
unsigned long count,
44 bool blocking =
true)
const override;
47 enum platform_type _type;
50 class Uart_imx21 :
public Uart_imx
53 Uart_imx21() : Uart_imx(Type_imx21) {}
54 explicit Uart_imx21(
unsigned base_rate) : Uart_imx(Type_imx21, base_rate) {}
57 class Uart_imx35 :
public Uart_imx
60 Uart_imx35() : Uart_imx(Type_imx35) {}
61 explicit Uart_imx35(
unsigned base_rate) : Uart_imx(Type_imx35, base_rate) {}
64 class Uart_imx51 :
public Uart_imx
67 Uart_imx51() : Uart_imx(Type_imx51) {}
68 explicit Uart_imx51(
unsigned base_rate) : Uart_imx(Type_imx51, base_rate) {}
71 class Uart_imx6 :
public Uart_imx
74 Uart_imx6() : Uart_imx(Type_imx6) {}
75 explicit Uart_imx6(
unsigned base_rate) : Uart_imx(Type_imx6, base_rate) {}
77 void irq_ack()
override;
80 class Uart_imx7 :
public Uart_imx
83 Uart_imx7() : Uart_imx(Type_imx7) {}
84 explicit Uart_imx7(
unsigned base_rate) : Uart_imx(Type_imx7, base_rate) {}
87 class Uart_imx8 :
public Uart_imx
90 Uart_imx8() : Uart_imx(Type_imx8) {}
91 explicit Uart_imx8(
unsigned base_rate) : Uart_imx(Type_imx8, base_rate) {}
L4 low-level kernel interface.