root/drivers/usb/serial/io_edgeport.h

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

INCLUDED FROM


   1 // SPDX-License-Identifier: GPL-2.0+
   2 /************************************************************************
   3  *
   4  *      io_edgeport.h   Edgeport Linux Interface definitions
   5  *
   6  *      Copyright (C) 2000 Inside Out Networks, Inc.
   7  *
   8  ************************************************************************/
   9 
  10 #if !defined(_IO_EDGEPORT_H_)
  11 #define _IO_EDGEPORT_H_
  12 
  13 
  14 #define MAX_RS232_PORTS         8       /* Max # of RS-232 ports per device */
  15 
  16 /* typedefs that the insideout headers need */
  17 #ifndef LOW8
  18         #define LOW8(a)         ((unsigned char)(a & 0xff))
  19 #endif
  20 #ifndef HIGH8
  21         #define HIGH8(a)        ((unsigned char)((a & 0xff00) >> 8))
  22 #endif
  23 
  24 #ifndef __KERNEL__
  25 #define __KERNEL__
  26 #endif
  27 
  28 #include "io_usbvend.h"
  29 
  30 
  31 
  32 /* The following table is used to map the USBx port number to
  33  * the device serial number (or physical USB path), */
  34 #define MAX_EDGEPORTS   64
  35 
  36 struct comMapper {
  37         char    SerialNumber[MAX_SERIALNUMBER_LEN+1];   /* Serial number/usb path */
  38         int     numPorts;                               /* Number of ports */
  39         int     Original[MAX_RS232_PORTS];              /* Port numbers set by IOCTL */
  40         int     Port[MAX_RS232_PORTS];                  /* Actual used port numbers */
  41 };
  42 
  43 
  44 #define EDGEPORT_CONFIG_DEVICE "/proc/edgeport"
  45 
  46 /* /proc/edgeport Interface
  47  * This interface uses read/write/lseek interface to talk to the edgeport driver
  48  * the following read functions are supported: */
  49 #define PROC_GET_MAPPING_TO_PATH        1
  50 #define PROC_GET_COM_ENTRY              2
  51 #define PROC_GET_EDGE_MANUF_DESCRIPTOR  3
  52 #define PROC_GET_BOOT_DESCRIPTOR        4
  53 #define PROC_GET_PRODUCT_INFO           5
  54 #define PROC_GET_STRINGS                6
  55 #define PROC_GET_CURRENT_COM_MAPPING    7
  56 
  57 /* The parameters to the lseek() for the read is: */
  58 #define PROC_READ_SETUP(Command, Argument)      ((Command) + ((Argument)<<8))
  59 
  60 
  61 /* the following write functions are supported: */
  62 #define PROC_SET_COM_MAPPING            1
  63 #define PROC_SET_COM_ENTRY              2
  64 
  65 
  66 /* The following structure is passed to the write */
  67 struct procWrite {
  68         int     Command;
  69         union {
  70                 struct comMapper        Entry;
  71                 int                     ComMappingBasedOnUSBPort;       /* Boolean value */
  72         } u;
  73 };
  74 
  75 /*
  76  *      Product information read from the Edgeport
  77  */
  78 struct edgeport_product_info {
  79         __u16   ProductId;                      /* Product Identifier */
  80         __u8    NumPorts;                       /* Number of ports on edgeport */
  81         __u8    ProdInfoVer;                    /* What version of structure is this? */
  82 
  83         __u32   IsServer        :1;             /* Set if Server */
  84         __u32   IsRS232         :1;             /* Set if RS-232 ports exist */
  85         __u32   IsRS422         :1;             /* Set if RS-422 ports exist */
  86         __u32   IsRS485         :1;             /* Set if RS-485 ports exist */
  87         __u32   IsReserved      :28;            /* Reserved for later expansion */
  88 
  89         __u8    RomSize;                        /* Size of ROM/E2PROM in K */
  90         __u8    RamSize;                        /* Size of external RAM in K */
  91         __u8    CpuRev;                         /* CPU revision level (chg only if s/w visible) */
  92         __u8    BoardRev;                       /* PCB revision level (chg only if s/w visible) */
  93 
  94         __u8    BootMajorVersion;               /* Boot Firmware version: xx. */
  95         __u8    BootMinorVersion;               /*                        yy. */
  96         __le16  BootBuildNumber;                /*                        zzzz (LE format) */
  97 
  98         __u8    FirmwareMajorVersion;           /* Operational Firmware version:xx. */
  99         __u8    FirmwareMinorVersion;           /*                              yy. */
 100         __le16  FirmwareBuildNumber;            /*                              zzzz (LE format) */
 101 
 102         __u8    ManufactureDescDate[3];         /* MM/DD/YY when descriptor template was compiled */
 103         __u8    HardwareType;
 104 
 105         __u8    iDownloadFile;                  /* What to download to EPiC device */
 106         __u8    EpicVer;                        /* What version of EPiC spec this device supports */
 107 
 108         struct edge_compatibility_bits Epic;
 109 };
 110 
 111 /*
 112  *      Edgeport Stringblock String locations
 113  */
 114 #define EDGESTRING_MANUFNAME            1       /* Manufacture Name */
 115 #define EDGESTRING_PRODNAME             2       /* Product Name */
 116 #define EDGESTRING_SERIALNUM            3       /* Serial Number */
 117 #define EDGESTRING_ASSEMNUM             4       /* Assembly Number */
 118 #define EDGESTRING_OEMASSEMNUM          5       /* OEM Assembly Number */
 119 #define EDGESTRING_MANUFDATE            6       /* Manufacture Date */
 120 #define EDGESTRING_ORIGSERIALNUM        7       /* Serial Number */
 121 
 122 struct string_block {
 123         __u16   NumStrings;                     /* Number of strings in block */
 124         __u16   Strings[1];                     /* Start of string block */
 125 };
 126 
 127 
 128 
 129 #endif

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