111 lines
3.4 KiB
C
111 lines
3.4 KiB
C
/*****************************************************************************
|
|
* sdla_56k.h Sangoma 56K configuration definitions.
|
|
*
|
|
* Author: Nenad Corbic
|
|
*
|
|
* Copyright: (c) 1995-2001 Sangoma Technologies Inc.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version
|
|
* 2 of the License, or (at your option) any later version.
|
|
|
|
* ============================================================================
|
|
* July 20, 2001 Nenad Corbic Initial version.
|
|
****************************************************************************
|
|
*/
|
|
|
|
#ifndef _SDLA_56K_H_
|
|
#define _SDLA_56K_H_
|
|
|
|
/*******************************************************************************
|
|
DEFINES AND MACROS
|
|
******************************************************************************/
|
|
|
|
#define IS_56K_CARD(card) IS_56K_FEMEDIA(&(card)->fe)
|
|
|
|
#define RRA(alarm) ((alarm>>8)&0xFF)
|
|
#define RRC(alarm) ((alarm)&0xFF)
|
|
|
|
#define INS_ALARM_56K(alarm) ((RRA(alarm)&0x0F) > 8) ? "GREEN" : "RED"
|
|
#define DMI_ALARM_56K(alarm) (RRC(alarm)&0x80) ? "RED" : "OFF"
|
|
#define ZCS_ALARM_56K(alarm) (RRC(alarm)&0x40) ? "RED" : "OFF"
|
|
#define CMI_ALARM_56K(alarm) (RRC(alarm)&0x20) ? "RED" : "OFF"
|
|
#define OOS_ALARM_56K(alarm) (RRC(alarm)&0x10) ? "RED" : "OFF"
|
|
#define OOF_ALARM_56K(alarm) (RRC(alarm)&0x08) ? "RED" : "OFF"
|
|
#define DLP_ALARM_56K(alarm) (RRC(alarm)&0x04) ? "RED" : "OFF"
|
|
#define UMC_ALARM_56K(alarm) (RRC(alarm)&0x02) ? "RED" : "OFF"
|
|
#define RLOS_ALARM_56K(alarm) (RRA(alarm)&0x80) ? "RED" : "OFF"
|
|
|
|
|
|
/* registers on 56K card */
|
|
#define REG_DEV_CTRL 0x00
|
|
#define REG_TX_CTRL 0x01
|
|
#define REG_RX_CTRL 0x02
|
|
#define REG_EIA_SEL 0x05
|
|
#define REG_EIA_TX_DATA 0x07
|
|
#define REG_INT_EN_STAT 0x08
|
|
#define REG_EIA_CTRL 0x09
|
|
#define REG_DEV_STAT 0x0A
|
|
#define REG_RX_SLICER_LVL 0x0B
|
|
#define REG_RX_CODES 0x0C
|
|
#define REG_RX_INVALID_BPV 0x0D
|
|
|
|
/* setting for each register */
|
|
#define BIT_DEV_CTRL_DDS_PRI 0x00
|
|
#define BIT_DEV_CTRL_SCT_E_OUT 0x10
|
|
#define BIT_DEV_CTRL_XTALI_INT 0x40
|
|
|
|
#define BIT_INT_EN_STAT_ACTIVE 0x01
|
|
#define BIT_INT_EN_STAT_RX_CODE 0x20
|
|
#define BIT_INT_EN_STAT_IDEL 0x40
|
|
|
|
#define BIT_EIA_CTRL_RTS_ACTIVE 0x01
|
|
#define BIT_EIA_CTRL_DTR_ACTIVE 0x02
|
|
#define BIT_EIA_CTRL_DTE_ENABLE 0x04
|
|
#define BIT_DEV_STAT_IL_44_dB 0x08
|
|
#define BIT_DEV_STAT_RLOS 0x80
|
|
|
|
#define BIT_RX_CTRL_DSU_LOOP 0x80
|
|
#define BIT_RX_CTRL_CSU_LOOP 0x20
|
|
|
|
#define BIT_RX_CODES_UNMTCH 0x01
|
|
#define BIT_RX_CODES_UMC 0x02
|
|
#define BIT_RX_CODES_DLP 0x04
|
|
#define BIT_RX_CODES_OOF 0x08
|
|
#define BIT_RX_CODES_OOS 0x10
|
|
#define BIT_RX_CODES_CMI 0x20
|
|
#define BIT_RX_CODES_ZSC 0x40
|
|
#define BIT_RX_CODES_DMI 0x80
|
|
|
|
|
|
/*******************************************************************************
|
|
FUNCTION PROTOTYPES
|
|
******************************************************************************/
|
|
|
|
#ifdef WAN_KERNEL
|
|
|
|
#if defined(__NetBSD__) || defined (__FreeBSD__) || defined (__OpenBSD__)
|
|
/*# include <sdla_front_end.h>*/
|
|
#elif defined (__WINDOWS__)
|
|
//# include <sdla_front_end.h>
|
|
#else
|
|
//# include <linux/sdla_front_end.h>
|
|
#endif
|
|
|
|
typedef struct {
|
|
unsigned char RLOS_56k;
|
|
unsigned char RR8_reg_56k;
|
|
unsigned char RRA_reg_56k;
|
|
unsigned char RRC_reg_56k;
|
|
unsigned char prev_RRC_reg_56k;
|
|
unsigned char delta_RRC_reg_56k;
|
|
} sdla_56k_param_t;
|
|
|
|
extern int sdla_56k_default_cfg(void* arg1, void* p56k_cfg);
|
|
extern int sdla_56k_iface_init(void* pfe, void *p_fe_iface);
|
|
|
|
#endif /* WAN_KERNEL */
|
|
|
|
#endif
|