115 lines
3.9 KiB
C
115 lines
3.9 KiB
C
/*******************************************************************************
|
|
** sdla_remora.h
|
|
**
|
|
** Author: Alex Feldman <al.feldman@sangoma.com>
|
|
**
|
|
** Copyright: (c) 2005 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.
|
|
** ============================================================================
|
|
** Oct 6, 2005 Alex Feldman Initial version.
|
|
*******************************************************************************/
|
|
|
|
#ifndef __SDLA_USB_REMORA_H
|
|
# define __SDLA_USB_REMORA_H
|
|
|
|
#ifdef __SDLA_REMORA_SRC
|
|
# define WP_EXTERN
|
|
#else
|
|
# define WP_EXTERN extern
|
|
#endif
|
|
|
|
/*******************************************************************************
|
|
** DEFINES and MACROS
|
|
*******************************************************************************/
|
|
|
|
#define IS_FXOFXS_CARD(card) IS_FXOFXS_FEMEDIA(&(card)->fe)
|
|
|
|
#define MAX_USB_REMORA_MODULES 2
|
|
#define MAX_USB_FXOFXS_CHANNELS MAX_USB_REMORA_MODULES
|
|
|
|
/* Front-End UDP command */
|
|
#if defined(__WINDOWS__)
|
|
#define WAN_FE_TONES 13
|
|
#define WAN_FE_RING (WAN_FE_TONES + 1)
|
|
#define WAN_FE_REGDUMP (WAN_FE_TONES + 2)
|
|
#define WAN_FE_STATS (WAN_FE_TONES + 3)
|
|
#else
|
|
#define WAN_FE_TONES (WAN_FE_UDP_CMD_START + 0)
|
|
#define WAN_FE_RING (WAN_FE_UDP_CMD_START + 1)
|
|
#define WAN_FE_REGDUMP (WAN_FE_UDP_CMD_START + 2)
|
|
#define WAN_FE_STATS (WAN_FE_UDP_CMD_START + 3)
|
|
#endif
|
|
|
|
#define WAN_RM_SET_ECHOTUNE _IOW (ZT_CODE, 63, struct wan_rm_echo_coefs)
|
|
|
|
/* RM interrupt types */
|
|
#define WAN_RM_INTR_NONE 0x00
|
|
#define WAN_RM_INTR_GLOBAL 0x01
|
|
|
|
/* Signalling types */
|
|
#define __WAN_RM_SIG_FXO (1 << 12) /* Never use directly */
|
|
#define __WAN_RM_SIG_FXS (1 << 13) /* Never use directly */
|
|
|
|
#define WAN_RM_SIG_NONE (0) /* Channel not configured */
|
|
#define WAN_RM_SIG_FXSLS ((1 << 0) | __WAN_RM_SIG_FXS) /* FXS, Loopstart */
|
|
#define WAN_RM_SIG_FXSGS ((1 << 1) | __WAN_RM_SIG_FXS) /* FXS, Groundstart */
|
|
#define WAN_RM_SIG_FXSKS ((1 << 2) | __WAN_RM_SIG_FXS) /* FXS, Kewlstart */
|
|
|
|
#define WAN_RM_SIG_FXOLS ((1 << 3) | __WAN_RM_SIG_FXO) /* FXO, Loopstart */
|
|
#define WAN_RM_SIG_FXOGS ((1 << 4) | __WAN_RM_SIG_FXO) /* FXO, Groupstart */
|
|
#define WAN_RM_SIG_FXOKS ((1 << 5) | __WAN_RM_SIG_FXO) /* FXO, Kewlstart */
|
|
|
|
#define WAN_RM_SIG_EM (1 << 6) /* Ear & Mouth (E&M) */
|
|
|
|
|
|
/*******************************************************************************
|
|
** TYPEDEF STRUCTURE
|
|
*******************************************************************************/
|
|
|
|
#if defined(WAN_KERNEL)
|
|
|
|
#define NUM_CAL_REGS 12
|
|
|
|
#if !defined(WAN_DEBUG_FE)
|
|
# define WRITE_USB_RM_REG(mod_no,reg,val) \
|
|
fe->write_fe_reg( ((sdla_t*)fe->card)->hw, \
|
|
(int)mod_no, \
|
|
(int)reg, (int)val)
|
|
# define READ_USB_RM_REG(mod_no,reg) \
|
|
fe->read_fe_reg( ((sdla_t*)fe->card)->hw, \
|
|
(int)mod_no, \
|
|
(int)reg)
|
|
#else
|
|
# define WRITE_USB_RM_REG(mod_no,reg,val) \
|
|
fe->write_fe_reg( ((sdla_t*)fe->card)->hw, \
|
|
(int)mod_no, \
|
|
(int)reg, (int)val,__FILE__,(int)__LINE__)
|
|
# define READ_USB_RM_REG(mod_no,reg) \
|
|
fe->read_fe_reg( ((sdla_t*)fe->card)->hw, \
|
|
(int)mod_no, \
|
|
(int)reg,__FILE__,(int)__LINE__)
|
|
#endif
|
|
|
|
/* Sangoma A200 event bit map */
|
|
#define WAN_RM_EVENT_DTMF 1 /* DTMF event */
|
|
#define WAN_RM_EVENT_LC 2 /* Loop closure event */
|
|
#define WAN_RM_EVENT_RING_TRIP 3 /* Ring trip event */
|
|
#define WAN_RM_EVENT_POWER 4 /* Power event */
|
|
#define WAN_RM_EVENT_RING 5 /* Ring event */
|
|
#define WAN_RM_EVENT_TONE 6 /* Play tone */
|
|
#define WAN_RM_EVENT_RING_DETECT 7 /* Ring detect event */
|
|
|
|
#endif /* WAN_KERNEL */
|
|
|
|
/*******************************************************************************
|
|
** FUNCTION PROTOTYPES
|
|
*******************************************************************************/
|
|
extern int wp_usb_remora_iface_init(void*, void*);
|
|
|
|
#undef WP_EXTERN
|
|
#endif /* __SDLA_USB_REMORA_H */
|