1 /* 2 * SBE 2T3E3 synchronous serial card driver for Linux 3 * 4 * Copyright (C) 2009-2010 Krzysztof Halasa <khc@pm.waw.pl> 5 * 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms of version 2 of the GNU General Public License 8 * as published by the Free Software Foundation. 9 * 10 * This code is based on a driver written by SBE Inc. 11 */ 12 13 #ifndef CTRL_H 14 #define CTRL_H 15 16 #define SBE_2T3E3_OFF 0 17 #define SBE_2T3E3_ON 1 18 19 #define SBE_2T3E3_LED_NONE 0 20 #define SBE_2T3E3_LED_GREEN 1 21 #define SBE_2T3E3_LED_YELLOW 2 22 23 #define SBE_2T3E3_CABLE_LENGTH_LESS_THAN_255_FEET 0 24 #define SBE_2T3E3_CABLE_LENGTH_GREATER_THAN_255_FEET 1 25 26 #define SBE_2T3E3_CRC_16 0 27 #define SBE_2T3E3_CRC_32 1 28 29 #define SBE_2T3E3_PANEL_FRONT 0 30 #define SBE_2T3E3_PANEL_REAR 1 31 32 #define SBE_2T3E3_FRAME_MODE_HDLC 0 33 #define SBE_2T3E3_FRAME_MODE_TRANSPARENT 1 34 #define SBE_2T3E3_FRAME_MODE_RAW 2 35 36 #define SBE_2T3E3_FRAME_TYPE_E3_G751 0 37 #define SBE_2T3E3_FRAME_TYPE_E3_G832 1 38 #define SBE_2T3E3_FRAME_TYPE_T3_CBIT 2 39 #define SBE_2T3E3_FRAME_TYPE_T3_M13 3 40 41 #define SBE_2T3E3_FRACTIONAL_MODE_NONE 0 42 #define SBE_2T3E3_FRACTIONAL_MODE_0 1 43 #define SBE_2T3E3_FRACTIONAL_MODE_1 2 44 #define SBE_2T3E3_FRACTIONAL_MODE_2 3 45 46 #define SBE_2T3E3_SCRAMBLER_OFF 0 47 #define SBE_2T3E3_SCRAMBLER_LARSCOM 1 48 #define SBE_2T3E3_SCRAMBLER_ADC_KENTROX_DIGITAL 2 49 50 #define SBE_2T3E3_TIMING_LOCAL 0 51 #define SBE_2T3E3_TIMING_LOOP 1 52 53 #define SBE_2T3E3_LOOPBACK_NONE 0 54 #define SBE_2T3E3_LOOPBACK_ETHERNET 1 55 #define SBE_2T3E3_LOOPBACK_FRAMER 2 56 #define SBE_2T3E3_LOOPBACK_LIU_DIGITAL 3 57 #define SBE_2T3E3_LOOPBACK_LIU_ANALOG 4 58 #define SBE_2T3E3_LOOPBACK_LIU_REMOTE 5 59 60 #define SBE_2T3E3_PAD_COUNT_1 1 61 #define SBE_2T3E3_PAD_COUNT_2 2 62 #define SBE_2T3E3_PAD_COUNT_3 3 63 #define SBE_2T3E3_PAD_COUNT_4 4 64 65 #define SBE_2T3E3_CHIP_21143 0 66 #define SBE_2T3E3_CHIP_CPLD 1 67 #define SBE_2T3E3_CHIP_FRAMER 2 68 #define SBE_2T3E3_CHIP_LIU 3 69 70 #define SBE_2T3E3_LOG_LEVEL_NONE 0 71 #define SBE_2T3E3_LOG_LEVEL_ERROR 1 72 #define SBE_2T3E3_LOG_LEVEL_WARNING 2 73 #define SBE_2T3E3_LOG_LEVEL_INFO 3 74 75 /* commands */ 76 #define SBE_2T3E3_PORT_GET 0 77 #define SBE_2T3E3_PORT_SET 1 78 #define SBE_2T3E3_PORT_GET_STATS 2 79 #define SBE_2T3E3_PORT_DEL_STATS 3 80 #define SBE_2T3E3_PORT_READ_REGS 4 81 #define SBE_2T3E3_LOG_LEVEL 5 82 #define SBE_2T3E3_PORT_WRITE_REGS 6 83 84 #define NG_SBE_2T3E3_NODE_TYPE "sbe2T3E3" 85 #define NG_SBE_2T3E3_COOKIE 0x03800891 86 87 typedef struct t3e3_param { 88 u_int8_t frame_mode; /* FRAME_MODE_* */ 89 u_int8_t crc; /* CRC_* */ 90 u_int8_t receiver_on; /* ON/OFF */ 91 u_int8_t transmitter_on; /* ON/OFF */ 92 u_int8_t frame_type; /* FRAME_TYPE_* */ 93 u_int8_t panel; /* PANEL_* */ 94 u_int8_t line_build_out; /* ON/OFF */ 95 u_int8_t receive_equalization; /* ON/OFF */ 96 u_int8_t transmit_all_ones; /* ON/OFF */ 97 u_int8_t loopback; /* LOOPBACK_* */ 98 u_int8_t clock_source; /* TIMING_* */ 99 u_int8_t scrambler; /* SCRAMBLER_* */ 100 u_int8_t pad_count; /* PAD_COUNT_* */ 101 u_int8_t log_level; /* LOG_LEVEL_* - unused */ 102 u_int8_t fractional_mode; /* FRACTIONAL_MODE_* */ 103 u_int8_t bandwidth_start; /* 0-255 */ 104 u_int8_t bandwidth_stop; /* 0-255 */ 105 } t3e3_param_t; 106 107 typedef struct t3e3_stats { 108 u_int64_t in_bytes; 109 u32 in_packets, in_dropped; 110 u32 in_errors, in_error_desc, in_error_coll, in_error_drib, 111 in_error_crc, in_error_mii; 112 u_int64_t out_bytes; 113 u32 out_packets, out_dropped; 114 u32 out_errors, out_error_jab, out_error_lost_carr, 115 out_error_no_carr, out_error_link_fail, out_error_underflow, 116 out_error_dereferred; 117 u_int8_t LOC, LOF, OOF, LOS, AIS, FERF, IDLE, AIC, FEAC; 118 u_int16_t FEBE_code; 119 u32 LCV, FRAMING_BIT, PARITY_ERROR, FEBE_count, CP_BIT; 120 } t3e3_stats_t; 121 122 123 typedef struct t3e3_resp { 124 union { 125 t3e3_param_t param; 126 t3e3_stats_t stats; 127 u32 data; 128 } u; 129 } t3e3_resp_t; 130 131 #endif /* CTRL_H */ 132