14 class Uart_imx :
public Uart
26 explicit Uart_imx(
enum platform_type type) : _type(type) {}
27 explicit Uart_imx(
enum platform_type type,
unsigned )
29 bool startup(Io_register_block
const *)
override;
30 void shutdown()
override;
31 bool enable_rx_irq(
bool enable =
true)
override;
32 bool change_mode(Transfer_mode m, Baud_rate r)
override;
33 int get_char(
bool blocking =
true)
const override;
34 int char_avail()
const override;
36 void wait_tx_done()
const;
37 inline void out_char(
char c)
const;
38 int write(
char const *s,
unsigned long count,
39 bool blocking =
true)
const override;
42 enum platform_type _type;
45 class Uart_imx21 :
public Uart_imx
48 Uart_imx21() : Uart_imx(Type_imx21) {}
49 explicit Uart_imx21(
unsigned base_rate) : Uart_imx(Type_imx21, base_rate) {}
52 class Uart_imx35 :
public Uart_imx
55 Uart_imx35() : Uart_imx(Type_imx35) {}
56 explicit Uart_imx35(
unsigned base_rate) : Uart_imx(Type_imx35, base_rate) {}
59 class Uart_imx51 :
public Uart_imx
62 Uart_imx51() : Uart_imx(Type_imx51) {}
63 explicit Uart_imx51(
unsigned base_rate) : Uart_imx(Type_imx51, base_rate) {}
66 class Uart_imx6 :
public Uart_imx
69 Uart_imx6() : Uart_imx(Type_imx6) {}
70 explicit Uart_imx6(
unsigned base_rate) : Uart_imx(Type_imx6, base_rate) {}
72 void irq_ack()
override;
75 class Uart_imx7 :
public Uart_imx
78 Uart_imx7() : Uart_imx(Type_imx7) {}
79 explicit Uart_imx7(
unsigned base_rate) : Uart_imx(Type_imx7, base_rate) {}
82 class Uart_imx8 :
public Uart_imx
85 Uart_imx8() : Uart_imx(Type_imx8) {}
86 explicit Uart_imx8(
unsigned base_rate) : Uart_imx(Type_imx8, base_rate) {}
L4 low-level kernel interface.