/*
 * profiles8-le88264_abs_zsi.c --
 *
 * This file contains profile data in byte format
 *
 * Project Info --
 *   File:   
 *   Type:   Line Module LE71HR1865 RevA PBX VBL Reg
 *   Date:   Monday, March 07, 2011 08:40:06
 *   Device: VoicePort Le88264
 *
 *   This file was generated with Profile Wizard Version: P2.0.0
 */

#include "profiles8-le88264_abs_zsi.h"


/************** Device Parameters **************/

/* Le88264 Power Optimized With Free Run */
const VpProfileDataType DEV_PROFILE_LE88264_ABS_ZSI[] =
{
  /* Device Profile for VoicePort Device Family */
 0x00, 0xFF, 0x00, 0x20, /* Profile Index and Length */
 0x05, 0x00, /* Version and MPI Command */
 0x08, 0x00, /* PCLK Frequency */
 0x02, 0x00, /* Device Config 1, Battery Control Mode */
 0x46, 0x02, /* Clock Slot and Max Events */
 0x05, 0x00, /* Device Tickrate */
 0xE4, 0x00, 0x04, 0x00, /* Switching Regulator Parameters */
 0x1B, 0x05, /* Y-Voltage, Z-Voltage */
 0x00, 0x00, 0x00, 0x00, /* RSVD */
 0xB1, 0x00, 0xB1, 0x00, 0xB0, 0x40, /* Regulator Timing Parameters */
 0x2C, 0x40, 0x2C, 0x40, 0x2C, 0x40  /* FreeRun Timing Parameters */
};

/************** AC Filter Coefficients **************/

/* AC FXS RF14 600 Coefficients */
const VpProfileDataType AC_PROFILE_LE88264_ABS_ZSI[] =
{
  /* AC Profile */
 0xA4, 0x00, 0xF4, 0x4C, 0x01, 0x49, 0xCA, 0xF5, 0x98, 0xAA, 0x7B, 0xAB,
 0x2C, 0xA3, 0x25, 0xA5, 0x24, 0xB2, 0x3D, 0x9A, 0x2A, 0xAA, 0xA6, 0x9F,
 0x01, 0x8A, 0x1D, 0x01, 0xA3, 0xA0, 0x2E, 0xB2, 0xB2, 0xBA, 0xAC, 0xA2,
 0xA6, 0xCB, 0x3B, 0x45, 0x88, 0x2A, 0x20, 0x3C, 0xBC, 0x4E, 0xA6, 0x2B,
 0xA5, 0x2B, 0x3E, 0xBA, 0x8F, 0x82, 0xA8, 0x71, 0x80, 0xA9, 0xF0, 0x50,
 0x00, 0x86, 0x2A, 0x42, 0xA1, 0xCB, 0x1B, 0xA3, 0xA8, 0xFB, 0x87, 0xAA,
 0xFB, 0x9F, 0xA9, 0xF0, 0x96, 0x2E, 0x01, 0x00
};


/************** DC Feed Parameters **************/

/* 25mA  current feed */
const VpProfileDataType DC_PROFILE_LE88264_ABS_ZSI[] =
{
 /* DC Profile */
 0x00, 0x01, 0x01, 0x0B, 0x01, 0x08, 0xC2, 0x19, 0x84, 0xB0, 0x05, 0xC6,
 0x11, 0x07, 0x01
};

/************** Ring Signal Parameters **************/

/* 20Hz, Sinewave ringing, 70Vpk */
const VpProfileDataType RING_PROFILE_LE88264_ABS_ZSI[] =
{
  /* Sine, 20 Hz, 1.41 CF, 70.00 Vpk, 0.00 Bias */
  /* Ringing Profile */
 0x00, 0x04, 0x01, 0x12, 0x00, 0x0E, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x37,
 0x3A, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00
};

/* 2 on 4 off */
const VpProfileDataType RING_CAD_LE88264_ABS_ZSI[] = 
{
  /* Cadence Profile */
 0x00, 0x08, 0x01, 0x16, 0x00, 0x00, 0x00, 0x12, 0x01, 0x07, 0x21, 0x90,
 0x01, 0x05, 0x02, 0x01, 0x23, 0x20, 0x01, 0x07, 0x21, 0x90, 0x01, 0x05,
 0x44, 0x00
};

/* end of file profiles8-le88264_abs_zsi.c */
