patch-2.4.0-test6 linux/drivers/char/sh-sci.h
Next file: linux/drivers/char/sysrq.c
Previous file: linux/drivers/char/sh-sci.c
Back to the patch index
Back to the overall index
- Lines: 119
- Date:
Wed Aug 9 13:59:04 2000
- Orig file:
v2.4.0-test5/linux/drivers/char/sh-sci.h
- Orig date:
Thu Jul 27 17:38:00 2000
diff -u --recursive --new-file v2.4.0-test5/linux/drivers/char/sh-sci.h linux/drivers/char/sh-sci.h
@@ -20,11 +20,11 @@
#define SCIx_RXI_IRQ 1
#define SCIx_TXI_IRQ 2
-/* ERI, RXI, TXI, INTC reg, INTC pos */
-#define SCI_IRQS { 23, 24, 25 }, INTC_IPRB, 1
-#define SH3_SCIF_IRQS { 56, 57, 59 }, INTC_IPRE, 1
-#define SH3_IRDA_IRQS { 52, 53, 55 }, INTC_IPRE, 2
-#define SH4_SCIF_IRQS { 40, 41, 43 }, INTC_IPRC, 1
+/* ERI, RXI, TXI, */
+#define SCI_IRQS { 23, 24, 25 }
+#define SH3_SCIF_IRQS { 56, 57, 59 }
+#define SH3_IRDA_IRQS { 52, 53, 55 }
+#define SH4_SCIF_IRQS { 40, 41, 43 }
#if defined(CONFIG_CPU_SUBTYPE_SH7708)
# define SCI_NPORTS 1
@@ -34,12 +34,12 @@
# define SCSPTR 0xffffff7c /* 8 bit */
# define SCSCR_INIT(port) 0x30 /* TIE=0,RIE=0,TE=1,RE=1 */
# define SCI_ONLY
-#elif defined(CONFIG_CPU_SUBTYPE_SH7709)
+#elif defined(CONFIG_CPU_SUBTYPE_SH7707) || defined(CONFIG_CPU_SUBTYPE_SH7709)
# define SCI_NPORTS 3
# define SCI_INIT { \
- { {}, PORT_SCI, 0xfffffe80, SCI_IRQS, sci_init_pins_sci }, \
- { {}, PORT_SCIF, 0xA4000150, SH3_SCIF_IRQS, sci_init_pins_scif }, \
- { {}, PORT_SCIF, 0xA4000140, SH3_IRDA_IRQS, sci_init_pins_irda } \
+ { {}, PORT_SCI, 0xfffffe80, SCI_IRQS, sci_init_pins_sci }, \
+ { {}, PORT_SCIF, 0xA4000150, SH3_SCIF_IRQS, sci_init_pins_scif }, \
+ { {}, PORT_SCIF, 0xA4000140, SH3_IRDA_IRQS, sci_init_pins_irda } \
}
# define SCPCR 0xA4000116 /* 16 bit SCI and SCIF */
# define SCPDR 0xA4000136 /* 8 bit SCI and SCIF */
@@ -68,32 +68,32 @@
#define SCI_CTRL_FLAGS_TE 0x20 /* all */
#define SCI_CTRL_FLAGS_RE 0x10 /* all */
/* SCI_CTRL_FLAGS_REIE 0x08 * 7750 SCIF */
-/* SCI_CTRL_FLAGS_MPIE 0x08 * 7708 SCI, 7709 SCI, 7750 SCI */
-/* SCI_CTRL_FLAGS_TEIE 0x04 * 7708 SCI, 7709 SCI, 7750 SCI */
+/* SCI_CTRL_FLAGS_MPIE 0x08 * 7707 SCI, 7708 SCI, 7709 SCI, 7750 SCI */
+/* SCI_CTRL_FLAGS_TEIE 0x04 * 7707 SCI, 7708 SCI, 7709 SCI, 7750 SCI */
/* SCI_CTRL_FLAGS_CKE1 0x02 * all */
-/* SCI_CTRL_FLAGS_CKE0 0x01 * 7708 SCI, 7709 SCI/SCIF, 7750 SCI */
+/* SCI_CTRL_FLAGS_CKE0 0x01 * 7707 SCI/SCIF, 7708 SCI, 7709 SCI/SCIF, 7750 SCI */
/* SCxSR SCI */
-#define SCI_TDRE 0x80 /* 7708 SCI, 7709 SCI, 7750 SCI */
-#define SCI_RDRF 0x40 /* 7708 SCI, 7709 SCI, 7750 SCI */
-#define SCI_ORER 0x20 /* 7708 SCI, 7709 SCI, 7750 SCI */
-#define SCI_FER 0x10 /* 7708 SCI, 7709 SCI, 7750 SCI */
-#define SCI_PER 0x08 /* 7708 SCI, 7709 SCI, 7750 SCI */
-#define SCI_TEND 0x04 /* 7708 SCI, 7709 SCI, 7750 SCI */
-/* SCI_MPB 0x02 * 7708 SCI, 7709 SCI, 7750 SCI */
-/* SCI_MPBT 0x01 * 7708 SCI, 7709 SCI, 7750 SCI */
+#define SCI_TDRE 0x80 /* 7707 SCI, 7708 SCI, 7709 SCI, 7750 SCI */
+#define SCI_RDRF 0x40 /* 7707 SCI, 7708 SCI, 7709 SCI, 7750 SCI */
+#define SCI_ORER 0x20 /* 7707 SCI, 7708 SCI, 7709 SCI, 7750 SCI */
+#define SCI_FER 0x10 /* 7707 SCI, 7708 SCI, 7709 SCI, 7750 SCI */
+#define SCI_PER 0x08 /* 7707 SCI, 7708 SCI, 7709 SCI, 7750 SCI */
+#define SCI_TEND 0x04 /* 7707 SCI, 7708 SCI, 7709 SCI, 7750 SCI */
+/* SCI_MPB 0x02 * 7707 SCI, 7708 SCI, 7709 SCI, 7750 SCI */
+/* SCI_MPBT 0x01 * 7707 SCI, 7708 SCI, 7709 SCI, 7750 SCI */
#define SCI_ERRORS ( SCI_PER | SCI_FER | SCI_ORER)
/* SCxSR SCIF */
-#define SCIF_ER 0x0080 /* 7709 SCIF, 7750 SCIF */
-#define SCIF_TEND 0x0040 /* 7709 SCIF, 7750 SCIF */
-#define SCIF_TDFE 0x0020 /* 7709 SCIF, 7750 SCIF */
-#define SCIF_BRK 0x0010 /* 7709 SCIF, 7750 SCIF */
-#define SCIF_FER 0x0008 /* 7709 SCIF, 7750 SCIF */
-#define SCIF_PER 0x0004 /* 7709 SCIF, 7750 SCIF */
-#define SCIF_RDF 0x0002 /* 7709 SCIF, 7750 SCIF */
-#define SCIF_DR 0x0001 /* 7709 SCIF, 7750 SCIF */
+#define SCIF_ER 0x0080 /* 7707 SCIF, 7709 SCIF, 7750 SCIF */
+#define SCIF_TEND 0x0040 /* 7707 SCIF, 7709 SCIF, 7750 SCIF */
+#define SCIF_TDFE 0x0020 /* 7707 SCIF, 7709 SCIF, 7750 SCIF */
+#define SCIF_BRK 0x0010 /* 7707 SCIF, 7709 SCIF, 7750 SCIF */
+#define SCIF_FER 0x0008 /* 7707 SCIF, 7709 SCIF, 7750 SCIF */
+#define SCIF_PER 0x0004 /* 7707 SCIF, 7709 SCIF, 7750 SCIF */
+#define SCIF_RDF 0x0002 /* 7707 SCIF, 7709 SCIF, 7750 SCIF */
+#define SCIF_DR 0x0001 /* 7707 SCIF, 7709 SCIF, 7750 SCIF */
#define SCIF_ERRORS ( SCIF_PER | SCIF_FER | SCIF_ER | SCIF_BRK)
@@ -128,8 +128,6 @@
#define SCFCR_TFRST 0x0004
#define SCFCR_MCE 0x0008
-#define SCI_PRIORITY 3
-
#define SCI_MAJOR 204
#define SCI_MINOR_START 8
@@ -161,14 +159,22 @@
#define SCI_MAGIC 0xbabeface
+/*
+ * Events are used to schedule things to happen at timer-interrupt
+ * time, instead of at rs interrupt time.
+ */
+#define SCI_EVENT_WRITE_WAKEUP 0
+
struct sci_port {
struct gs_port gs;
int type;
unsigned int base;
unsigned char irqs[3]; /* ERI, RXI, TXI */
- unsigned int intc_addr, intc_pos;
void (*init_pins)(struct sci_port* port, unsigned int cflag);
unsigned int old_cflag;
+ struct async_icount icount;
+ struct tq_struct tqueue;
+ unsigned long event;
};
#define SCI_IN(size, offset) \
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)