[PATCH] was RE: [Asterisk-Dev] Raising loop current limit on
the Proslic(reg.71)
Brancaleoni Matteo
mbrancaleoni at espia.it
Fri Mar 5 16:28:08 MST 2004
small printk typo. doesn't affect functionality and/or compilation.
Matteo.
--
Brancaleoni Matteo <mbrancaleoni at espia.it>
Espia - Emmegi Srl
-------------- next part --------------
--- zaptel/wcfxs.c 2004-03-06 00:09:51.000000000 +0100
+++ wcfxs.c 2004-03-06 00:25:14.000000000 +0100
@@ -35,6 +35,22 @@
#include "proslic.h"
#include "wcfxs.h"
+/*
+ Experimental max loop current limit for the proslic
+ Loop current limit is from 20 mA to 41 mA in steps of 3
+ (according to datasheet)
+ So set the value below to:
+ 0x00 : 20mA (default)
+ 0x01 : 23mA
+ 0x02 : 26mA
+ 0x03 : 29mA
+ 0x04 : 32mA
+ 0x05 : 35mA
+ 0x06 : 37mA
+ 0x07 : 41mA
+*/
+#define WC_ILIM 0x05
+
static alpha indirect_regs[] =
{
{0,"DTMF_ROW_0_PEAK",0x55C2},
@@ -744,6 +760,9 @@
printk("ProSLIC on module %d powered up to -%d volts (%02x) in %d ms\n",
card, vbat * 376 / 1000, vbat, (int)(((jiffies - origjiffies) * 1000 / HZ)));
}
+
+ /* Proslic max allowed loop current, reg 71 */
+ wcfxs_setreg(wc,card,71,WC_ILIM);
#if 0
/* Perform DC-DC calibration */
@@ -1345,6 +1364,7 @@
unsigned char ver;
unsigned char x,y;
int failed;
+ int ilim;
/* Signal Reset */
outb(0x01, wc->ioaddr + WC_CNTL);
@@ -1426,6 +1446,9 @@
if (!(ret=wcfxs_init_proslic(wc, x, 0, 0, sane))) {
wc->cardflag |= (1 << x);
printk("Module %d: Installed -- AUTO FXS\n",x);
+ ilim = wcfxs_getreg(wc,x,71);
+ printk("Proslic module %d current is %dmA\n",x,
+ ((ilim*3)+20));
} else {
if(ret!=-2) {
sane=1;
@@ -1433,6 +1456,9 @@
if (!wcfxs_init_proslic(wc, x, 0, 1, sane)) {
wc->cardflag |= (1 << x);
printk("Module %d: Installed -- MANUAL FXS\n",x);
+ ilim = wcfxs_getreg(wc,x,71);
+ printk("Proslic module %d current is %dmA\n",x,
+ ((ilim*3)+20));
} else {
printk("Module %d: FAILED FXS\n", x);
}
More information about the asterisk-dev
mailing list