Commit 6ac9888a authored by John Robert Gill's avatar John Robert Gill

Merging software support.

parents f056bd1c b57cd0f1
......@@ -424,17 +424,17 @@ static unsigned libwr2rf_lemo_to_bit(unsigned lemo)
switch (lemo)
{
case LIBWR2RF_LEMO_TMGIO1:
return 1 << 0;
case LIBWR2RF_LEMO_TMGIO2:
return 1 << 1;
case LIBWR2RF_LEMO_TMGIO3:
case LIBWR2RF_LEMO_TMGIO2:
return 1 << 2;
case LIBWR2RF_LEMO_TMGIO4:
case LIBWR2RF_LEMO_TMGIO3:
return 1 << 3;
case LIBWR2RF_LEMO_TMGCLK1:
case LIBWR2RF_LEMO_TMGIO4:
return 1 << 4;
case LIBWR2RF_LEMO_TMGCLK2:
case LIBWR2RF_LEMO_TMGCLK1:
return 1 << 5;
case LIBWR2RF_LEMO_TMGCLK2:
return 1 << 6;
default:
return 0;
}
......
......@@ -2154,20 +2154,26 @@ parse_lemo_str2reg(char *str)
static unsigned
parse_lemo_str2sel(char *str)
{
unsigned val;
if (strcmp(str, "tmgio1") == 0)
return 1;
val = 1;
else if (strcmp(str, "tmgio2") == 0)
return 2;
val = 2;
else if (strcmp(str, "tmgio3") == 0)
return 4;
val = 4;
else if (strcmp(str, "tmgio4") == 0)
return 8;
val = 8;
else if (strcmp(str, "tmgclk1") == 0)
return 16;
val = 16;
else if (strcmp(str, "tmgclk2") == 0)
return 32;
val = 32;
else
return 0;
val = 0;
val = val << 1;
return val;
}
static unsigned
......@@ -2208,19 +2214,23 @@ parse_dbg_str2reg(char *str)
else if (strcmp(str, "rf1_nco_reset_cdelayed") == 0)
return 2;
else if (strcmp(str, "rf2_nco_reset_cdelayed") == 0)
return 3;
else if (strcmp(str, "rf1_frev") == 0)
return 4;
else if (strcmp(str, "rf1_frev") == 0)
return 8;
else if (strcmp(str, "rf1_frev_main") == 0)
return 5;
return 0x10;
else if (strcmp(str, "rf2_frev") == 0)
return 6;
return 0x20;
else if (strcmp(str, "rf2_frev_main") == 0)
return 7;
return 0x40;
else if (strcmp(str, "wrs_rx_valid") == 0)
return 8;
return 0x80;
else if (strcmp(str, "wrs_tx_valid") == 0)
return 9;
return 0x100;
else if (strcmp(str, "gpio1") == 0)
return 0x200;
else if (strcmp(str, "gpio2") == 0)
return 0x400;
else
return 0;
}
......@@ -2261,6 +2271,43 @@ usage:
printf(" rf1_frev, rf1_frev_main, \n");
printf(" rf2_frev, rf2_frev_main, \n");
printf(" wrs_rx_valid, wrs_tx_valid \n");
printf(" gpio1, gpio2 \n");
}
static void
lemo_gpio (struct libwr2rf_dev *dev, int argc, char **argv)
{
unsigned addr = WR2RF_VME_REGS_INIT + WR2RF_INIT_REGS_LEMO;
unsigned lemo;
unsigned val;
unsigned bit;
if (argc != 2 && argc != 3) {
goto usage;
}
if (strcmp(argv[1], "gpio1") == 0)
lemo = 0;
else if (strcmp(argv[1], "gpio2") == 0)
lemo = 1;
else
goto usage;
val = libwr2rf_read16(dev, addr);
if (argc == 3) {
bit = strtoul (argv[2], NULL, 0) & 1;
val &= ~(1 << lemo);
val |= (bit << lemo);
libwr2rf_write16(dev, addr, val);
}
else
printf ("gpio: %u\n", (val >> lemo) & 1);
return;
usage:
printf ("usage: %s gpio1|gpio2 [0 | 1] \n", argv[0]);
}
static void
......@@ -2310,6 +2357,7 @@ lemo_stop_sel (struct libwr2rf_dev *dev, int argc, char **argv)
libwr2rf_write16(dev, addr + vtu, sel);
}
printf("%s = %02x, addr=%x\n", argv[2], libwr2rf_read16(dev, addr + vtu), addr + vtu);
return;
usage:
......@@ -3055,12 +3103,15 @@ api_vtu_stop_lemo (struct libwr2rf_dev *dev, int argc, char **argv)
unsigned long id;
unsigned long lemo;
if (argc != 3) {
printf ("usage: %s VTU-ID LEMO-ID\n", argv[0]);
return;
}
id = strtoul (argv[1], NULL, 0);
id = parse_api_vtu (argv[1]);
if (id == BADADDR)
return;
lemo = strtoul (argv[2], NULL, 0);
res = libwr2rf_vtu_stop_lemo(dev, id, lemo);
if (res != 0)
......@@ -3413,6 +3464,7 @@ static struct cmds cmds[] =
{ "lemo-dbg-sel", lemo_dbg_sel, "configure debug to lemo output connector"},
{ "lemo-start-sel", lemo_start_sel, "configure lemo input to trigger unit start"},
{ "lemo-stop-sel", lemo_stop_sel, "configure lemo input to trigger unit stop"},
{ "lemo-gpio", lemo_gpio, "configure lemo gpio output signals"},
{ "ext-ref", ext_ref, "set or read ext_ref (pps+10Mhz) direction"},
{ "rf-diag", rf_diag, "rf diagnostics"},
{ "vtu", vtu, "trigger unit"},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment