blob: c080a8bbcf4d442c7f158e76a5f2452c8a43ce74 [file] [log] [blame]
/*
** Copyright (c) 2007 by Silicon Laboratories
**
** $Id: si324x.h 1832 2010-04-19 21:39:12Z cdp $
**
** Author(s):
** laj
**
** Distributed by:
** Silicon Laboratories, Inc
**
** This file contains proprietary information.
** No dissemination allowed without prior written permission from
** Silicon Laboratories, Inc.
**
*/
#ifndef SI324XH_H
#define SI324XH_H
#include "proslic.h"
/*
** Si324x DataTypes/Function Definitions
*/
#define NUMIRQ 4
/*
** Defines structure for configuring gpio
*/
typedef struct {
uInt8 outputEn;
uInt8 analog;
uInt8 direction;
uInt8 manual;
uInt8 polarity;
uInt8 openDrain;
} Si324x_GPIO_Cfg;
/*
** Defines structure for configuring dc feed
*/
typedef struct {
ramData slope_vlim;
ramData slope_rfeed;
ramData slope_ilim;
ramData delta1;
ramData delta2;
ramData v_vlim;
ramData v_rfeed;
ramData v_ilim;
ramData const_rfeed;
ramData const_ilim;
ramData i_vlim;
ramData lcronhk;
ramData lcroffhk;
ramData lcrdbi;
ramData longhith;
ramData longloth;
ramData longdbi;
ramData lcrmask;
ramData lcrmask_polrev;
ramData lcrmask_state;
ramData lcrmask_linecap;
ramData vcm_oh;
ramData vov_bat;
ramData vov_gnd;
} Si324x_DCfeed_Cfg;
/*
** Defines structure for configuring general parameters
*/
typedef struct {
ramData vbatr_expect;
ramData coef_p_hvic;
ramData p_th_hvic;
ramData vbath_expect;
uInt8 cm_clamp;
uInt8 autoRegister;
ramData cm_dbi;
ramData bat_dbi;
ramData bat_hyst;
ramData bat_settle;
uInt8 batselmap;
ramData coef_p_offld;
uInt8 offld;
ramData p_th_offld;
ramData vbatl_expect;
uInt8 irqen1;
uInt8 irqen2;
uInt8 irqen3;
uInt8 irqen4;
} Si324x_General_Cfg;
/*
** Defines structure for configuring pcm
*/
typedef struct {
uInt8 pcmFormat;
uInt8 widebandEn;
uInt8 pcm_tri;
uInt8 tx_edge;
uInt8 tx_both;
uInt8 tx_hwy;
uInt8 rx_hwy;
uInt8 alaw_inv;
} Si324x_PCM_Cfg;
/*
** Defines structure for configuring pulse metering
*/
typedef struct {
ramData pm_amp_thresh;
uInt8 pmFreq;
uInt8 pmRampRate;
} Si324x_PulseMeter_Cfg;
/*
** Defines structure for configuring FSK generation
*/
typedef struct {
ramData fsk01;
ramData fsk10;
ramData fskamp0;
ramData fskamp1;
ramData fskfreq0;
ramData fskfreq1;
uInt8 eightBit;
uInt8 fskdepth;
} Si324x_FSK_Cfg;
/*
** Defines structure for configuring dtmf decode
*/
typedef struct {
ramData dtmfdtf_b0_1;
ramData dtmfdtf_b1_1;
ramData dtmfdtf_b2_1;
ramData dtmfdtf_a1_1;
ramData dtmfdtf_a2_1;
ramData dtmfdtf_b0_2;
ramData dtmfdtf_b1_2;
ramData dtmfdtf_b2_2;
ramData dtmfdtf_a1_2;
ramData dtmfdtf_a2_2;
ramData dtmfdtf_b0_3;
ramData dtmfdtf_b1_3;
ramData dtmfdtf_b2_3;
ramData dtmfdtf_a1_3;
ramData dtmfdtf_a2_3;
} Si324x_DTMFDec_Cfg;
/*
** Defines structure for configuring impedence synthesis
*/
typedef struct {
ramData zsynth_b0;
ramData zsynth_b1;
ramData zsynth_b2;
ramData zsynth_a1;
ramData zsynth_a2;
uInt8 ra;
} Si324x_Zsynth_Cfg;
/*
** Defines structure for configuring hybrid
*/
typedef struct {
ramData ecfir_c2;
ramData ecfir_c3;
ramData ecfir_c4;
ramData ecfir_c5;
ramData ecfir_c6;
ramData ecfir_c7;
ramData ecfir_c8;
ramData ecfir_c9;
ramData eciir_b0;
ramData eciir_b1;
ramData eciir_a1;
ramData eciir_a2;
} Si324x_hybrid_Cfg;
/*
** Defines structure for configuring GCI CI bits
*/
typedef struct {
uInt8 gci_ci;
} Si324x_CI_Cfg;
/*
** Defines structure for configuring modem tone detect
*/
typedef struct {
ramData rxmodpwr;
ramData rxpwr;
ramData modem_gain;
ramData txmodpwr;
ramData txpwr;
} Si324x_modemDet_Cfg;
/*
** Defines structure for configuring audio eq
*/
typedef struct {
ramData txaceq_c0;
ramData txaceq_c1;
ramData txaceq_c2;
ramData txaceq_c3;
ramData rxaceq_c0;
ramData rxaceq_c1;
ramData rxaceq_c2;
ramData rxaceq_c3;
} Si324x_audioEQ_Cfg;
/*
** Defines structure for configuring audio gain
*/
typedef struct {
ramData acgain;
uInt8 mute;
} Si324x_audioGain_Cfg;
typedef struct {
Si324x_audioEQ_Cfg audioEQ;
Si324x_hybrid_Cfg hybrid;
Si324x_Zsynth_Cfg zsynth;
Si324x_audioGain_Cfg txgain;
Si324x_audioGain_Cfg rxgain;
ramData rxachpf_b0_1;
ramData rxachpf_b1_1;
ramData rxachpf_a1_1;
} Si324x_Impedance_Cfg;
/*
** Defines structure for configuring tone generator
*/
typedef struct {
Oscillator_Cfg osc1;
Oscillator_Cfg osc2;
uInt8 omode;
} Si324x_Tone_Cfg;
/*
** Defines structure for configuring ring generator
*/
typedef struct {
ramData freq;
ramData amp;
ramData offset;
ramData phas;
ramData rtper;
uInt8 talo;
uInt8 tahi;
uInt8 tilo;
uInt8 tihi;
uInt8 ringcon;
ramData rtcount;
ramData adap_ring_min_i;
ramData slope_ring;
ramData rrd_delay;
ramData rrd_delay2;
ramData counter_vtr_val;
ramData rtacdb;
ramData rtacth;
ramData rtdcdb;
ramData rtdcth;
ramData vov_ring_bat;
ramData vov_ring_gnd;
ramData vcm_ring;
} Si324x_Ring_Cfg;
/*
** This defines names for the interrupts in the ProSLIC
*/
typedef enum {
OSC1_T1_SI324X,
OSC1_T2_SI324X,
OSC2_T1_SI324X,
OSC2_T2_SI324X,
RING_T1_SI324X,
RING_T2_SI324X,
FSKBUF_AVAIL_SI324X,
VBAT_SI324X,
RING_TRIP_SI324X,
LOOP_STAT_SI324X,
LONG_STAT_SI324X,
VOC_TRACK_SI324X,
DTMF_SI324X,
INDIRECT_SI324X,
TXMDM_SI324X,
RXMDM_SI324X,
PQ1_SI324X,
PQ2_SI324X,
PQ3_SI324X,
PQ4_SI324X,
PQ5_SI324X,
PQ6_SI324X,
RING_FAIL_SI324X,
CM_BAL_SI324X,
USER_IRQ0_SI324X,
USER_IRQ1_SI324X,
USER_IRQ2_SI324X,
USER_IRQ3_SI324X,
USER_IRQ4_SI324X,
USER_IRQ5_SI324X,
USER_IRQ6_SI324X,
USER_IRQ7_SI324X
}Si324xProslicInt;
#endif