Blame view
include/linux/serial_sci.h
1.81 KB
96de1a8f0
|
1 2 |
#ifndef __LINUX_SERIAL_SCI_H #define __LINUX_SERIAL_SCI_H |
ecd956168
|
3 |
|
d94a0a385
|
4 |
#include <linux/bitops.h> |
ecd956168
|
5 |
#include <linux/serial_core.h> |
14baf9d7f
|
6 |
#include <linux/sh_dma.h> |
ecd956168
|
7 8 |
/* |
4b0847842
|
9 |
* Generic header for SuperH (H)SCI(F) (used by sh/sh64 and related parts) |
ecd956168
|
10 |
*/ |
debf95071
|
11 |
#define SCIx_NOT_SUPPORTED (-1) |
26de4f1b2
|
12 |
/* Serial Control Register (@ = not supported by all parts) */ |
d94a0a385
|
13 14 15 16 17 18 19 20 |
#define SCSCR_TIE BIT(7) /* Transmit Interrupt Enable */ #define SCSCR_RIE BIT(6) /* Receive Interrupt Enable */ #define SCSCR_TE BIT(5) /* Transmit Enable */ #define SCSCR_RE BIT(4) /* Receive Enable */ #define SCSCR_REIE BIT(3) /* Receive Error Interrupt Enable @ */ #define SCSCR_TOIE BIT(2) /* Timeout Interrupt Enable @ */ #define SCSCR_CKE1 BIT(1) /* Clock Enable 1 */ #define SCSCR_CKE0 BIT(0) /* Clock Enable 0 */ |
c27ffc108
|
21 |
|
f303b364b
|
22 |
|
61a6976bf
|
23 24 25 26 27 28 29 |
enum { SCIx_PROBE_REGTYPE, SCIx_SCI_REGTYPE, SCIx_IRDA_REGTYPE, SCIx_SCIFA_REGTYPE, SCIx_SCIFB_REGTYPE, |
3af1f8a41
|
30 |
SCIx_SH2_SCIF_FIFODATA_REGTYPE, |
61a6976bf
|
31 32 |
SCIx_SH3_SCIF_REGTYPE, SCIx_SH4_SCIF_REGTYPE, |
b8bbd6b29
|
33 |
SCIx_SH4_SCIF_BRG_REGTYPE, |
61a6976bf
|
34 35 36 |
SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE, SCIx_SH4_SCIF_FIFODATA_REGTYPE, SCIx_SH7705_SCIF_REGTYPE, |
f303b364b
|
37 |
SCIx_HSCIF_REGTYPE, |
61a6976bf
|
38 39 40 |
SCIx_NR_REGTYPES, }; |
73a19e4c0
|
41 |
struct device; |
61a6976bf
|
42 43 44 |
struct plat_sci_port_ops { void (*init_pins)(struct uart_port *, unsigned int cflag); }; |
ecd956168
|
45 |
/* |
faf02f8fe
|
46 47 |
* Port-specific capabilities */ |
d94a0a385
|
48 |
#define SCIx_HAVE_RTSCTS BIT(0) |
faf02f8fe
|
49 50 |
/* |
ecd956168
|
51 52 53 |
* Platform device specific platform_data struct */ struct plat_sci_port { |
f303b364b
|
54 |
unsigned int type; /* SCI / SCIF / IRDA / HSCIF */ |
ecd956168
|
55 |
upf_t flags; /* UPF_* flags */ |
faf02f8fe
|
56 |
unsigned long capabilities; /* Port features/capabilities */ |
00b9de9c2
|
57 |
|
ec09c5eb4
|
58 |
unsigned int sampling_rate; |
00b9de9c2
|
59 |
unsigned int scscr; /* SCSCR initialization */ |
f43dc23d5
|
60 |
|
debf95071
|
61 62 63 |
/* * Platform overrides if necessary, defaults otherwise. */ |
514820eb9
|
64 |
int port_reg; |
61a6976bf
|
65 66 67 68 |
unsigned char regshift; unsigned char regtype; struct plat_sci_port_ops *ops; |
514820eb9
|
69 |
|
27bd10752
|
70 71 |
unsigned int dma_slave_tx; unsigned int dma_slave_rx; |
ecd956168
|
72 |
}; |
96de1a8f0
|
73 |
#endif /* __LINUX_SERIAL_SCI_H */ |