~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/serial_sci.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/linux/serial_sci.h (Version linux-6.11-rc3) and /include/linux/serial_sci.h (Version linux-3.10.108)


  1 /* SPDX-License-Identifier: GPL-2.0 */         << 
  2 #ifndef __LINUX_SERIAL_SCI_H                        1 #ifndef __LINUX_SERIAL_SCI_H
  3 #define __LINUX_SERIAL_SCI_H                        2 #define __LINUX_SERIAL_SCI_H
  4                                                     3 
  5 #include <linux/bitops.h>                      << 
  6 #include <linux/serial_core.h>                      4 #include <linux/serial_core.h>
  7 #include <linux/sh_dma.h>                           5 #include <linux/sh_dma.h>
  8                                                     6 
  9 /*                                                  7 /*
 10  * Generic header for SuperH (H)SCI(F) (used b !!   8  * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts)
 11  */                                                 9  */
 12                                                    10 
 13 /* Serial Control Register (@ = not supported  !!  11 #define SCIx_NOT_SUPPORTED      (-1)
 14 #define SCSCR_TIE       BIT(7)  /* Transmit In << 
 15 #define SCSCR_RIE       BIT(6)  /* Receive Int << 
 16 #define SCSCR_TE        BIT(5)  /* Transmit En << 
 17 #define SCSCR_RE        BIT(4)  /* Receive Ena << 
 18 #define SCSCR_REIE      BIT(3)  /* Receive Err << 
 19 #define SCSCR_TOIE      BIT(2)  /* Timeout Int << 
 20 #define SCSCR_CKE1      BIT(1)  /* Clock Enabl << 
 21 #define SCSCR_CKE0      BIT(0)  /* Clock Enabl << 
 22                                                    12 
                                                   >>  13 enum {
                                                   >>  14         SCBRR_ALGO_1,           /* ((clk + 16 * bps) / (16 * bps) - 1) */
                                                   >>  15         SCBRR_ALGO_2,           /* ((clk + 16 * bps) / (32 * bps) - 1) */
                                                   >>  16         SCBRR_ALGO_3,           /* (((clk * 2) + 16 * bps) / (16 * bps) - 1) */
                                                   >>  17         SCBRR_ALGO_4,           /* (((clk * 2) + 16 * bps) / (32 * bps) - 1) */
                                                   >>  18         SCBRR_ALGO_5,           /* (((clk * 1000 / 32) / bps) - 1) */
                                                   >>  19 };
                                                   >>  20 
                                                   >>  21 #define SCSCR_TIE       (1 << 7)
                                                   >>  22 #define SCSCR_RIE       (1 << 6)
                                                   >>  23 #define SCSCR_TE        (1 << 5)
                                                   >>  24 #define SCSCR_RE        (1 << 4)
                                                   >>  25 #define SCSCR_REIE      (1 << 3)        /* not supported by all parts */
                                                   >>  26 #define SCSCR_TOIE      (1 << 2)        /* not supported by all parts */
                                                   >>  27 #define SCSCR_CKE1      (1 << 1)
                                                   >>  28 #define SCSCR_CKE0      (1 << 0)
                                                   >>  29 
                                                   >>  30 /* SCxSR SCI */
                                                   >>  31 #define SCI_TDRE  0x80
                                                   >>  32 #define SCI_RDRF  0x40
                                                   >>  33 #define SCI_ORER  0x20
                                                   >>  34 #define SCI_FER   0x10
                                                   >>  35 #define SCI_PER   0x08
                                                   >>  36 #define SCI_TEND  0x04
                                                   >>  37 
                                                   >>  38 #define SCI_DEFAULT_ERROR_MASK (SCI_PER | SCI_FER)
                                                   >>  39 
                                                   >>  40 /* SCxSR SCIF */
                                                   >>  41 #define SCIF_ER    0x0080
                                                   >>  42 #define SCIF_TEND  0x0040
                                                   >>  43 #define SCIF_TDFE  0x0020
                                                   >>  44 #define SCIF_BRK   0x0010
                                                   >>  45 #define SCIF_FER   0x0008
                                                   >>  46 #define SCIF_PER   0x0004
                                                   >>  47 #define SCIF_RDF   0x0002
                                                   >>  48 #define SCIF_DR    0x0001
                                                   >>  49 
                                                   >>  50 #define SCIF_DEFAULT_ERROR_MASK (SCIF_PER | SCIF_FER | SCIF_ER | SCIF_BRK)
                                                   >>  51 
                                                   >>  52 /* SCSPTR, optional */
                                                   >>  53 #define SCSPTR_RTSIO    (1 << 7)
                                                   >>  54 #define SCSPTR_CTSIO    (1 << 5)
                                                   >>  55 #define SCSPTR_SPB2IO   (1 << 1)
                                                   >>  56 #define SCSPTR_SPB2DT   (1 << 0)
                                                   >>  57 
                                                   >>  58 /* Offsets into the sci_port->irqs array */
                                                   >>  59 enum {
                                                   >>  60         SCIx_ERI_IRQ,
                                                   >>  61         SCIx_RXI_IRQ,
                                                   >>  62         SCIx_TXI_IRQ,
                                                   >>  63         SCIx_BRI_IRQ,
                                                   >>  64         SCIx_NR_IRQS,
                                                   >>  65 
                                                   >>  66         SCIx_MUX_IRQ = SCIx_NR_IRQS,    /* special case */
                                                   >>  67 };
                                                   >>  68 
                                                   >>  69 /* Offsets into the sci_port->gpios array */
                                                   >>  70 enum {
                                                   >>  71         SCIx_SCK,
                                                   >>  72         SCIx_RXD,
                                                   >>  73         SCIx_TXD,
                                                   >>  74         SCIx_CTS,
                                                   >>  75         SCIx_RTS,
                                                   >>  76 
                                                   >>  77         SCIx_NR_FNS,
                                                   >>  78 };
 23                                                    79 
 24 enum {                                             80 enum {
 25         SCIx_PROBE_REGTYPE,                        81         SCIx_PROBE_REGTYPE,
 26                                                    82 
 27         SCIx_SCI_REGTYPE,                          83         SCIx_SCI_REGTYPE,
 28         SCIx_IRDA_REGTYPE,                         84         SCIx_IRDA_REGTYPE,
 29         SCIx_SCIFA_REGTYPE,                        85         SCIx_SCIFA_REGTYPE,
 30         SCIx_SCIFB_REGTYPE,                        86         SCIx_SCIFB_REGTYPE,
 31         SCIx_SH2_SCIF_FIFODATA_REGTYPE,            87         SCIx_SH2_SCIF_FIFODATA_REGTYPE,
 32         SCIx_SH3_SCIF_REGTYPE,                     88         SCIx_SH3_SCIF_REGTYPE,
 33         SCIx_SH4_SCIF_REGTYPE,                     89         SCIx_SH4_SCIF_REGTYPE,
 34         SCIx_SH4_SCIF_BRG_REGTYPE,             << 
 35         SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE,           90         SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE,
 36         SCIx_SH4_SCIF_FIFODATA_REGTYPE,            91         SCIx_SH4_SCIF_FIFODATA_REGTYPE,
 37         SCIx_SH7705_SCIF_REGTYPE,                  92         SCIx_SH7705_SCIF_REGTYPE,
 38         SCIx_HSCIF_REGTYPE,                    << 
 39         SCIx_RZ_SCIFA_REGTYPE,                 << 
 40         SCIx_RZV2H_SCIF_REGTYPE,               << 
 41                                                    93 
 42         SCIx_NR_REGTYPES,                          94         SCIx_NR_REGTYPES,
 43 };                                                 95 };
 44                                                    96 
                                                   >>  97 #define SCIx_IRQ_MUXED(irq)             \
                                                   >>  98 {                                       \
                                                   >>  99         [SCIx_ERI_IRQ]  = (irq),        \
                                                   >> 100         [SCIx_RXI_IRQ]  = (irq),        \
                                                   >> 101         [SCIx_TXI_IRQ]  = (irq),        \
                                                   >> 102         [SCIx_BRI_IRQ]  = (irq),        \
                                                   >> 103 }
                                                   >> 104 
                                                   >> 105 #define SCIx_IRQ_IS_MUXED(port)                 \
                                                   >> 106         ((port)->cfg->irqs[SCIx_ERI_IRQ] ==     \
                                                   >> 107          (port)->cfg->irqs[SCIx_RXI_IRQ]) ||    \
                                                   >> 108         ((port)->cfg->irqs[SCIx_ERI_IRQ] &&     \
                                                   >> 109          !(port)->cfg->irqs[SCIx_RXI_IRQ])
                                                   >> 110 /*
                                                   >> 111  * SCI register subset common for all port types.
                                                   >> 112  * Not all registers will exist on all parts.
                                                   >> 113  */
                                                   >> 114 enum {
                                                   >> 115         SCSMR, SCBRR, SCSCR, SCxSR,
                                                   >> 116         SCFCR, SCFDR, SCxTDR, SCxRDR,
                                                   >> 117         SCLSR, SCTFDR, SCRFDR, SCSPTR,
                                                   >> 118 
                                                   >> 119         SCIx_NR_REGS,
                                                   >> 120 };
                                                   >> 121 
                                                   >> 122 struct device;
                                                   >> 123 
 45 struct plat_sci_port_ops {                        124 struct plat_sci_port_ops {
 46         void (*init_pins)(struct uart_port *,     125         void (*init_pins)(struct uart_port *, unsigned int cflag);
 47 };                                                126 };
 48                                                   127 
 49 /*                                                128 /*
                                                   >> 129  * Port-specific capabilities
                                                   >> 130  */
                                                   >> 131 #define SCIx_HAVE_RTSCTS        (1 << 0)
                                                   >> 132 
                                                   >> 133 /*
 50  * Platform device specific platform_data stru    134  * Platform device specific platform_data struct
 51  */                                               135  */
 52 struct plat_sci_port {                            136 struct plat_sci_port {
 53         unsigned int    type;                  !! 137         unsigned long   mapbase;                /* resource base */
                                                   >> 138         unsigned int    irqs[SCIx_NR_IRQS];     /* ERI, RXI, TXI, BRI */
                                                   >> 139         unsigned int    gpios[SCIx_NR_FNS];     /* SCK, RXD, TXD, CTS, RTS */
                                                   >> 140         unsigned int    type;                   /* SCI / SCIF / IRDA */
 54         upf_t           flags;                    141         upf_t           flags;                  /* UPF_* flags */
                                                   >> 142         unsigned long   capabilities;           /* Port features/capabilities */
 55                                                   143 
 56         unsigned int    sampling_rate;         !! 144         unsigned int    scbrr_algo_id;          /* SCBRR calculation algo */
 57         unsigned int    scscr;                    145         unsigned int    scscr;                  /* SCSCR initialization */
 58                                                   146 
 59         /*                                        147         /*
 60          * Platform overrides if necessary, de    148          * Platform overrides if necessary, defaults otherwise.
 61          */                                       149          */
                                                   >> 150         int             overrun_bit;
                                                   >> 151         unsigned int    error_mask;
                                                   >> 152 
                                                   >> 153         int             port_reg;
                                                   >> 154         unsigned char   regshift;
 62         unsigned char   regtype;                  155         unsigned char   regtype;
 63                                                   156 
 64         struct plat_sci_port_ops        *ops;     157         struct plat_sci_port_ops        *ops;
                                                   >> 158 
                                                   >> 159         unsigned int    dma_slave_tx;
                                                   >> 160         unsigned int    dma_slave_rx;
 65 };                                                161 };
 66                                                   162 
 67 #endif /* __LINUX_SERIAL_SCI_H */                 163 #endif /* __LINUX_SERIAL_SCI_H */
 68                                                   164 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php