mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 17:30:02 +00:00
![Paul Mundt](/assets/img/avatar_default.png)
There's nothing worth hiding under the ifdef in the platform DMA definitions, and we certainly don't want board code adding this in to their platform data definitions, so we always expose the slave rx/tx and device pointer members instead. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
65 lines
1.6 KiB
C
65 lines
1.6 KiB
C
#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 */
|