root/include/linux/platform_data/serial-sccnxp.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  *  NXP (Philips) SCC+++(SCN+++) serial driver
   4  *
   5  *  Copyright (C) 2012 Alexander Shiyan <shc_work@mail.ru>
   6  *
   7  *  Based on sc26xx.c, by Thomas Bogendörfer (tsbogend@alpha.franken.de)
   8  */
   9 
  10 #ifndef _PLATFORM_DATA_SERIAL_SCCNXP_H_
  11 #define _PLATFORM_DATA_SERIAL_SCCNXP_H_
  12 
  13 #define SCCNXP_MAX_UARTS        2
  14 
  15 /* Output lines */
  16 #define LINE_OP0                1
  17 #define LINE_OP1                2
  18 #define LINE_OP2                3
  19 #define LINE_OP3                4
  20 #define LINE_OP4                5
  21 #define LINE_OP5                6
  22 #define LINE_OP6                7
  23 #define LINE_OP7                8
  24 
  25 /* Input lines */
  26 #define LINE_IP0                9
  27 #define LINE_IP1                10
  28 #define LINE_IP2                11
  29 #define LINE_IP3                12
  30 #define LINE_IP4                13
  31 #define LINE_IP5                14
  32 #define LINE_IP6                15
  33 
  34 /* Signals */
  35 #define DTR_OP                  0       /* DTR */
  36 #define RTS_OP                  4       /* RTS */
  37 #define DSR_IP                  8       /* DSR */
  38 #define CTS_IP                  12      /* CTS */
  39 #define DCD_IP                  16      /* DCD */
  40 #define RNG_IP                  20      /* RNG */
  41 
  42 #define DIR_OP                  24      /* Special signal for control RS-485.
  43                                          * Goes high when transmit,
  44                                          * then goes low.
  45                                          */
  46 
  47 /* Routing control signal 'sig' to line 'line' */
  48 #define MCTRL_SIG(sig, line)    ((line) << (sig))
  49 
  50 /*
  51  * Example board initialization data:
  52  *
  53  * static struct resource sc2892_resources[] = {
  54  *      DEFINE_RES_MEM(UART_PHYS_START, 0x10),
  55  *      DEFINE_RES_IRQ(IRQ_EXT2),
  56  * };
  57  *
  58  * static struct sccnxp_pdata sc2892_info = {
  59  *      .mctrl_cfg[0]   = MCTRL_SIG(DIR_OP, LINE_OP0),
  60  *      .mctrl_cfg[1]   = MCTRL_SIG(DIR_OP, LINE_OP1),
  61  * };
  62  *
  63  * static struct platform_device sc2892 = {
  64  *      .name           = "sc2892",
  65  *      .id             = -1,
  66  *      .resource       = sc2892_resources,
  67  *      .num_resources  = ARRAY_SIZE(sc2892_resources),
  68  *      .dev = {
  69  *              .platform_data  = &sc2892_info,
  70  *      },
  71  * };
  72  */
  73 
  74 /* SCCNXP platform data structure */
  75 struct sccnxp_pdata {
  76         /* Shift for A0 line */
  77         const u8                reg_shift;
  78         /* Modem control lines configuration */
  79         const u32               mctrl_cfg[SCCNXP_MAX_UARTS];
  80         /* Timer value for polling mode (usecs) */
  81         const unsigned int      poll_time_us;
  82 };
  83 
  84 #endif

/* [<][>][^][v][top][bottom][index][help] */