1#ifndef __LINUX_SERIAL_SCI_H
2#define __LINUX_SERIAL_SCI_H
3
4#include <linux/serial_core.h>
5#include <linux/sh_dma.h>
6
7
8
9
10
11enum {
12 SCBRR_ALGO_1,
13 SCBRR_ALGO_2,
14 SCBRR_ALGO_3,
15 SCBRR_ALGO_4,
16 SCBRR_ALGO_5,
17};
18
19#define SCSCR_TIE (1 << 7)
20#define SCSCR_RIE (1 << 6)
21#define SCSCR_TE (1 << 5)
22#define SCSCR_RE (1 << 4)
23#define SCSCR_REIE (1 << 3)
24#define SCSCR_TOIE (1 << 2)
25#define SCSCR_CKE1 (1 << 1)
26#define SCSCR_CKE0 (1 << 0)
27
28
29enum {
30 SCIx_ERI_IRQ,
31 SCIx_RXI_IRQ,
32 SCIx_TXI_IRQ,
33 SCIx_BRI_IRQ,
34 SCIx_NR_IRQS,
35};
36
37#define SCIx_IRQ_MUXED(irq) \
38{ \
39 [SCIx_ERI_IRQ] = (irq), \
40 [SCIx_RXI_IRQ] = (irq), \
41 [SCIx_TXI_IRQ] = (irq), \
42 [SCIx_BRI_IRQ] = (irq), \
43}
44
45struct device;
46
47
48
49
50struct plat_sci_port {
51 unsigned long mapbase;
52 unsigned int irqs[SCIx_NR_IRQS];
53 unsigned int type;
54 upf_t flags;
55
56 unsigned int scbrr_algo_id;
57 unsigned int scscr;
58
59 struct device *dma_dev;
60
61 unsigned int dma_slave_tx;
62 unsigned int dma_slave_rx;
63};
64
65#endif
66