blob: f722a2275add41a3768164d494d5683f37fee941 [file] [log] [blame]
Paul Mundt96de1a82008-02-26 14:52:45 +09001#ifndef __LINUX_SERIAL_SCI_H
2#define __LINUX_SERIAL_SCI_H
Paul Mundtecd95612006-09-27 17:32:30 +09003
4#include <linux/serial_core.h>
5
6/*
Paul Mundt96de1a82008-02-26 14:52:45 +09007 * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts)
Paul Mundtecd95612006-09-27 17:32:30 +09008 */
9
Paul Mundt00b9de92009-06-24 17:53:33 +090010#define SCSCR_TIE (1 << 7)
11#define SCSCR_RIE (1 << 6)
12#define SCSCR_TE (1 << 5)
13#define SCSCR_RE (1 << 4)
14#define SCSCR_REIE (1 << 3)
15#define SCSCR_TOIE (1 << 2) /* not supported by all parts */
16#define SCSCR_CKE1 (1 << 1)
17#define SCSCR_CKE0 (1 << 0)
18
Paul Mundtecd95612006-09-27 17:32:30 +090019/* Offsets into the sci_port->irqs array */
20enum {
21 SCIx_ERI_IRQ,
22 SCIx_RXI_IRQ,
23 SCIx_TXI_IRQ,
24 SCIx_BRI_IRQ,
25 SCIx_NR_IRQS,
26};
27
28/*
29 * Platform device specific platform_data struct
30 */
31struct plat_sci_port {
32 void __iomem *membase; /* io cookie */
33 unsigned long mapbase; /* resource base */
34 unsigned int irqs[SCIx_NR_IRQS]; /* ERI, RXI, TXI, BRI */
35 unsigned int type; /* SCI / SCIF / IRDA */
36 upf_t flags; /* UPF_* flags */
Magnus Damm501b8252009-01-21 15:14:30 +000037 char *clk; /* clock string */
Paul Mundt00b9de92009-06-24 17:53:33 +090038
39 unsigned int scscr; /* SCSCR initialization */
Paul Mundtecd95612006-09-27 17:32:30 +090040};
41
Paul Mundt96de1a82008-02-26 14:52:45 +090042#endif /* __LINUX_SERIAL_SCI_H */