1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #ifndef __LINUX_SERIAL_SCI_H
- #define __LINUX_SERIAL_SCI_H
- #include <linux/serial_core.h>
- #include <linux/sh_dma.h>
- /*
- * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts)
- */
- enum {
- SCBRR_ALGO_1, /* ((clk + 16 * bps) / (16 * bps) - 1) */
- SCBRR_ALGO_2, /* ((clk + 16 * bps) / (32 * bps) - 1) */
- SCBRR_ALGO_3, /* (((clk * 2) + 16 * bps) / (16 * bps) - 1) */
- SCBRR_ALGO_4, /* (((clk * 2) + 16 * bps) / (32 * bps) - 1) */
- SCBRR_ALGO_5, /* (((clk * 1000 / 32) / bps) - 1) */
- };
- #define SCSCR_TIE (1 << 7)
- #define SCSCR_RIE (1 << 6)
- #define SCSCR_TE (1 << 5)
- #define SCSCR_RE (1 << 4)
- #define SCSCR_REIE (1 << 3) /* not supported by all parts */
- #define SCSCR_TOIE (1 << 2) /* not supported by all parts */
- #define SCSCR_CKE1 (1 << 1)
- #define SCSCR_CKE0 (1 << 0)
- /* Offsets into the sci_port->irqs array */
- enum {
- SCIx_ERI_IRQ,
- SCIx_RXI_IRQ,
- SCIx_TXI_IRQ,
- SCIx_BRI_IRQ,
- SCIx_NR_IRQS,
- };
- #define SCIx_IRQ_MUXED(irq) \
- { \
- [SCIx_ERI_IRQ] = (irq), \
- [SCIx_RXI_IRQ] = (irq), \
- [SCIx_TXI_IRQ] = (irq), \
- [SCIx_BRI_IRQ] = (irq), \
- }
- struct device;
- /*
- * Platform device specific platform_data struct
- */
- struct plat_sci_port {
- unsigned long mapbase; /* resource base */
- unsigned int irqs[SCIx_NR_IRQS]; /* ERI, RXI, TXI, BRI */
- unsigned int type; /* SCI / SCIF / IRDA */
- upf_t flags; /* UPF_* flags */
- unsigned int scbrr_algo_id; /* SCBRR calculation algo */
- unsigned int scscr; /* SCSCR initialization */
- struct device *dma_dev;
- unsigned int dma_slave_tx;
- unsigned int dma_slave_rx;
- };
- #endif /* __LINUX_SERIAL_SCI_H */
|