diff options
author | Tzafrir Cohen <tzafrir.cohen@xorcom.com> | 2008-06-19 13:36:15 +0000 |
---|---|---|
committer | Tzafrir Cohen <tzafrir.cohen@xorcom.com> | 2008-06-19 13:36:15 +0000 |
commit | 9d886a8e34490fabc3a1e3a0ebba5f8a43a6fd49 (patch) | |
tree | 8ac596c49aed7284efdb19c2b97900248436aa44 /drivers/dahdi/xpp/print_fxo_modes.c | |
parent | 55896756afb1dc68c66712885cd310f8a11494e2 (diff) |
Further XPP driver adjustments:
* More complete Kconfig.
* Verification of FXO init script moved here from tools.
* Perl init scripts are verified.
* Correct name XppConf*ig*.
* Add the files for xpp_mmap .
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@4408 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers/dahdi/xpp/print_fxo_modes.c')
-rw-r--r-- | drivers/dahdi/xpp/print_fxo_modes.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/drivers/dahdi/xpp/print_fxo_modes.c b/drivers/dahdi/xpp/print_fxo_modes.c new file mode 100644 index 0000000..6d7d747 --- /dev/null +++ b/drivers/dahdi/xpp/print_fxo_modes.c @@ -0,0 +1,32 @@ +#include <stdio.h> + +int main(int argc, char *argv[]) +{ + size_t i; + + 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] = ""; + + reg16 |= (fxo_modes[i].ohs << 6); + reg16 |= (fxo_modes[i].rz << 1); + reg16 |= (fxo_modes[i].rt); + + reg26 |= (fxo_modes[i].dcv << 6); + reg26 |= (fxo_modes[i].mini << 4); + reg26 |= (fxo_modes[i].ilim << 1); + + reg30 = (fxo_modes[i].acim); + + reg31 |= (fxo_modes[i].ohs2 << 3); + + if (fxo_modes[i].ring_osc) + snprintf(ring_osc, BUFSIZ, "ring_osc=%04X", fxo_modes[i].ring_osc); + if (fxo_modes[i].ring_x) + snprintf(ring_x, BUFSIZ, "ring_x=%04X", fxo_modes[i].ring_x); + printf("%-15s\treg16=%02X\treg26=%02X\treg30=%02X\treg31=%02X\t%s\t%s\n", + fxo_modes[i].name, reg16, reg26, reg30, reg31, ring_osc, ring_x); + } + return 0; +} |