2010-08-28 05:59:27 +08:00
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
int main(int argc, char *argv[])
|
|
|
|
{
|
|
|
|
size_t i;
|
2012-01-11 23:16:34 +08:00
|
|
|
|
2012-01-11 23:22:46 +08:00
|
|
|
for (i = 0; i < (sizeof(fxo_modes) / sizeof(struct fxo_mode)); i++) {
|
|
|
|
if (fxo_modes[i].name == NULL)
|
|
|
|
break;
|
|
|
|
int reg16 = 0, reg26 = 0, reg30 = 0, reg31 = 0x20;
|
|
|
|
char ring_osc[BUFSIZ] = "", ring_x[BUFSIZ] = "";
|
2012-01-11 23:16:34 +08:00
|
|
|
|
2010-08-28 05:59:27 +08:00
|
|
|
reg16 |= (fxo_modes[i].ohs << 6);
|
|
|
|
reg16 |= (fxo_modes[i].rz << 1);
|
|
|
|
reg16 |= (fxo_modes[i].rt);
|
2012-01-11 23:16:34 +08:00
|
|
|
|
2010-08-28 05:59:27 +08:00
|
|
|
reg26 |= (fxo_modes[i].dcv << 6);
|
|
|
|
reg26 |= (fxo_modes[i].mini << 4);
|
|
|
|
reg26 |= (fxo_modes[i].ilim << 1);
|
2012-01-11 23:16:34 +08:00
|
|
|
|
2010-08-28 05:59:27 +08:00
|
|
|
reg30 = (fxo_modes[i].acim);
|
2012-01-11 23:16:34 +08:00
|
|
|
|
2010-08-28 05:59:27 +08:00
|
|
|
reg31 |= (fxo_modes[i].ohs2 << 3);
|
|
|
|
|
|
|
|
if (fxo_modes[i].ring_osc)
|
2012-01-11 23:22:46 +08:00
|
|
|
snprintf(ring_osc, BUFSIZ, "ring_osc=%04X",
|
|
|
|
fxo_modes[i].ring_osc);
|
2010-08-28 05:59:27 +08:00
|
|
|
if (fxo_modes[i].ring_x)
|
2012-01-11 23:22:46 +08:00
|
|
|
snprintf(ring_x, BUFSIZ, "ring_x=%04X",
|
|
|
|
fxo_modes[i].ring_x);
|
2012-01-12 03:56:35 +08:00
|
|
|
printf("%-15s\treg16=%02X\treg26=%02X\treg30=%02X\t"
|
|
|
|
"reg31=%02X\t%s\t%s\n",
|
|
|
|
fxo_modes[i].name, reg16, reg26, reg30, reg31,
|
|
|
|
ring_osc, ring_x);
|
2010-08-28 05:59:27 +08:00
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|