xref: /linux-6.15/include/linux/serial_sci.h (revision 4dc7ccf7)
1 #ifndef __LINUX_SERIAL_SCI_H
2 #define __LINUX_SERIAL_SCI_H
3 
4 #include <linux/serial_core.h>
5 #ifdef CONFIG_SERIAL_SH_SCI_DMA
6 #include <asm/dmaengine.h>
7 #endif
8 
9 /*
10  * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts)
11  */
12 
13 /* Offsets into the sci_port->irqs array */
14 enum {
15 	SCIx_ERI_IRQ,
16 	SCIx_RXI_IRQ,
17 	SCIx_TXI_IRQ,
18 	SCIx_BRI_IRQ,
19 	SCIx_NR_IRQS,
20 };
21 
22 struct device;
23 
24 /*
25  * Platform device specific platform_data struct
26  */
27 struct plat_sci_port {
28 	void __iomem	*membase;		/* io cookie */
29 	unsigned long	mapbase;		/* resource base */
30 	unsigned int	irqs[SCIx_NR_IRQS];	/* ERI, RXI, TXI, BRI */
31 	unsigned int	type;			/* SCI / SCIF / IRDA */
32 	upf_t		flags;			/* UPF_* flags */
33 	char		*clk;			/* clock string */
34 	struct device	*dma_dev;
35 #ifdef CONFIG_SERIAL_SH_SCI_DMA
36 	enum sh_dmae_slave_chan_id dma_slave_tx;
37 	enum sh_dmae_slave_chan_id dma_slave_rx;
38 #endif
39 };
40 
41 #endif /* __LINUX_SERIAL_SCI_H */
42