diff options
Diffstat (limited to 'xpp/init_card_4_29')
-rwxr-xr-x | xpp/init_card_4_29 | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/xpp/init_card_4_29 b/xpp/init_card_4_29 new file mode 100755 index 0000000..93cbf33 --- /dev/null +++ b/xpp/init_card_4_29 @@ -0,0 +1,165 @@ +#! /bin/sh +# +# Written by Oron Peled <oron@actcom.co.il> +# Copyright (C) 2006, Xorcom +# +# All rights reserved. +# +# 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. +# +# See the file LICENSE in the top level of this tarball. +# + +# +# $Id$ +# +# Data format: +# - A comment start with ';' or '#' until the end of line +# - Blank lines are ignored +# - Fields are whitespace separated (spaces or tabs) +# +# The fields are (in command line order): +# 1. DAA select in decimal (range 0-7). +# 31 is a special value which means ALL DAAs (only some registers +# accept settings for ALL DAAs). +# 2. Command word: +# - RD Read Direct register. +# - WD Write Direct register. +# 3. Register number in hexadecimal. +# 4. Data byte in hexadecimal. (for WD command). +# + +# ----------------------------------==== 8-channel FXO unit initialization ===----------------------------------------- + +set -e + +opermode='FCC' + +me=`basename $0` +INIT_DIR=`dirname $0` +XPP_BASE=/proc/xpp +export XPP_BASE +LOGGER="logger -s -t $me" + +ZAPTEL_BOOT_DEBIAN=${ZAPTEL_BOOT_DEBIAN:-/etc/default/zaptel} +ZAPTEL_BOOT_FEDORA=${ZAPTEL_BOOT_FEDORA:-/etc/sysconfig/zaptel} + +# read default configuration from /etc/default/zaptel +if [ -r $ZAPTEL_BOOT_DEBIAN ]; then . $ZAPTEL_BOOT_DEBIAN; fi +if [ -r $ZAPTEL_BOOT_FEDORA ]; then . $ZAPTEL_BOOT_FEDORA; fi + +if [ "$DEBUG_CALIBRATION"=1 ]; then + LOGGER=":" +fi + +# Always redirect stderr somewhere, otherwise the shell script will die +# when it tries to do I/O related stuff on closed file descriptor. +# Our default is to throw it down the bit-bucket. +exec 2> /dev/console +## If you wish to trace this script: +#exec 2> /tmp/xpp_init_$XPD_NAME +## Altenativly, if you have multiple XBUS'es: +#exec 2> /tmp/xpp_init_$XBUS_NAME_$XPD_NAME +#set -x + +# redirect script output to the "slics" (registers command) file: +exec 1> "$XPP_BASE/$XPD_BUS/$XPD_NAME/slics" + +$LOGGER -p kern.info "$XPD_BUS/$XPD_NAME: Initializing '$0'" + +# Several countries (South Africa, UAE, anybody else) +# require a shorter delay: +case "$opermode" in +SOUTHAFRICA|UAE) echo 31 WD 17 2B;; +esac + +# Remove empty lines and commets. Not strictly necessary +# but works around some limitations of the proc interface: +echo " + + +31 WD 21 28 +31 WD 18 99 +31 WD 06 00 + +# ----------- DAA PCM start offset ---------- + +0 WD 22 00 +0 WD 23 00 +0 WD 24 00 +0 WD 25 00 + +1 WD 22 08 +1 WD 23 00 +1 WD 24 08 +1 WD 25 00 + +2 WD 22 10 +2 WD 23 00 +2 WD 24 10 +2 WD 25 00 + +3 WD 22 18 +3 WD 23 00 +3 WD 24 18 +3 WD 25 00 + +4 WD 22 20 +4 WD 23 00 +4 WD 24 20 +4 WD 25 00 + +5 WD 22 28 +5 WD 23 00 +5 WD 24 28 +5 WD 25 00 + +6 WD 22 30 +6 WD 23 00 +6 WD 24 30 +6 WD 25 00 + +7 WD 22 38 +7 WD 23 00 +7 WD 24 38 +7 WD 25 00 + +# ----------- DAA ONHOOK -------------------- +31 WD 05 00 + +# Set tip to ring voltage to 3.5 volts while off-hook +# instead of default of 3.1 +31 WD 1A C0 +" | sed -e 's/[;#].*$//' -e '/^[ ]*$/d' + +# Turning off red LEDs +# Warning: do not send WD 31 20 A0 ! +for i in `seq 0 7`; do + echo "$i WD 20 A0" +done + +# based on fxo_modes from wctdm.c . TODO: more decent calculation? +reg16=00; reg26=00; reg30=00; reg31=A3; ring_osc=; ring_x=; +mode="$openmode" +if [ -r $INIT_DIR/init_fxo_modes ]; then + . $INIT_DIR/init_fxo_modes +fi +# Our register numbers are HEXADECIMAL! +echo " +31 WD 10 $reg16 +31 WD 1A $reg26 +31 WD 1E $reg30 +31 WD 1F $reg31 +" +# for the FXS: +#if [ "$ring_osc" != '' ]; then +# /bin/echo "31 WI __ $ring_osc" +#fi +#if [ "$ring_x" != '' ]; then +# /bin/echo "31 WI __ $ring_x" +#fi +$LOGGER -p kern.info "$XPD_BUS/$XPD_NAME: Ending '$0'" +exit 0 |