]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - include/linux/serial_sci.h
Merge branch 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm
[mirror_ubuntu-artful-kernel.git] / include / linux / serial_sci.h
CommitLineData
96de1a8f
PM
1#ifndef __LINUX_SERIAL_SCI_H
2#define __LINUX_SERIAL_SCI_H
ecd95616
PM
3
4#include <linux/serial_core.h>
14baf9d7 5#include <linux/sh_dma.h>
ecd95616
PM
6
7/*
96de1a8f 8 * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts)
ecd95616
PM
9 */
10
26c92f37
PM
11enum {
12 SCBRR_ALGO_1, /* ((clk + 16 * bps) / (16 * bps) - 1) */
13 SCBRR_ALGO_2, /* ((clk + 16 * bps) / (32 * bps) - 1) */
14 SCBRR_ALGO_3, /* (((clk * 2) + 16 * bps) / (16 * bps) - 1) */
15 SCBRR_ALGO_4, /* (((clk * 2) + 16 * bps) / (32 * bps) - 1) */
16 SCBRR_ALGO_5, /* (((clk * 1000 / 32) / bps) - 1) */
17};
18
00b9de9c
PM
19#define SCSCR_TIE (1 << 7)
20#define SCSCR_RIE (1 << 6)
21#define SCSCR_TE (1 << 5)
22#define SCSCR_RE (1 << 4)
f43dc23d 23#define SCSCR_REIE (1 << 3) /* not supported by all parts */
00b9de9c
PM
24#define SCSCR_TOIE (1 << 2) /* not supported by all parts */
25#define SCSCR_CKE1 (1 << 1)
26#define SCSCR_CKE0 (1 << 0)
27
ecd95616
PM
28/* Offsets into the sci_port->irqs array */
29enum {
30 SCIx_ERI_IRQ,
31 SCIx_RXI_IRQ,
32 SCIx_TXI_IRQ,
33 SCIx_BRI_IRQ,
34 SCIx_NR_IRQS,
35};
36
73a19e4c
GL
37struct device;
38
ecd95616
PM
39/*
40 * Platform device specific platform_data struct
41 */
42struct plat_sci_port {
43 void __iomem *membase; /* io cookie */
44 unsigned long mapbase; /* resource base */
45 unsigned int irqs[SCIx_NR_IRQS]; /* ERI, RXI, TXI, BRI */
46 unsigned int type; /* SCI / SCIF / IRDA */
47 upf_t flags; /* UPF_* flags */
501b825d 48 char *clk; /* clock string */
00b9de9c 49
26c92f37 50 unsigned int scbrr_algo_id; /* SCBRR calculation algo */
00b9de9c 51 unsigned int scscr; /* SCSCR initialization */
f43dc23d 52
73a19e4c 53 struct device *dma_dev;
f43dc23d 54
04e82ffb 55#ifdef CONFIG_SERIAL_SH_SCI_DMA
4bab9d42
MD
56 unsigned int dma_slave_tx;
57 unsigned int dma_slave_rx;
04e82ffb 58#endif
ecd95616
PM
59};
60
96de1a8f 61#endif /* __LINUX_SERIAL_SCI_H */