X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=tools%2Fcarlu%2Fsrc%2Ftest.c;h=e453eb37c7439a5e17b35fa9df55925edef7a2d8;hb=007045ac7c9822009b704b856e2f92934cca2401;hp=30b3fb336432bfe5e9f6aea693b1c2102617c900;hpb=e72388a0aa23da8bc8e24a0cbe9d523c5a9ce294;p=carl9170fw.git diff --git a/tools/carlu/src/test.c b/tools/carlu/src/test.c index 30b3fb3..e453eb3 100644 --- a/tools/carlu/src/test.c +++ b/tools/carlu/src/test.c @@ -37,6 +37,7 @@ #include "debug.h" #include "frame.h" #include "usb.h" +#include "cmd.h" void debug_test(void) { @@ -82,12 +83,9 @@ static int carlu_loopback_cmd(struct carlu *ar __unused, dbg("received tx feedback (%d).\n", n); for (i = 0; i < n; i++) { - dbg("cookie:%x success:%d rix:%d tries:%d queue:%d\n", - cmd->tx_status[i].cookie, - cmd->tx_status[i].success, - cmd->tx_status[i].rix, - cmd->tx_status[i].tries, - cmd->tx_status[i].queue); + dbg("cookie:%x info:%x\n", + cmd->_tx_status[i].cookie, + cmd->_tx_status[i].info); } return -1; @@ -192,3 +190,48 @@ void carlu_loopback_test(struct carlu *ar, const unsigned int total_runs, ar->cmd_cb = NULL; ar->tx_cb = NULL; } + +int carlu_gpio_test(struct carlu *ar) +{ + uint32_t gpio; + +#define CHK(cmd) \ + do { \ + int __err; \ + if ((__err = cmd)) \ + return __err; \ + } while (0) + + CHK(carlu_cmd_read_mem(ar, AR9170_GPIO_REG_PORT_DATA, &gpio)); + info("GPIO state:%x\n", gpio); + + /* turn both LEDs on */ + CHK(carlu_cmd_write_mem(ar, AR9170_GPIO_REG_PORT_DATA, + AR9170_GPIO_PORT_LED_0 | AR9170_GPIO_PORT_LED_1)); + + SDL_Delay(700); + + CHK(carlu_cmd_read_mem(ar, AR9170_GPIO_REG_PORT_DATA, &gpio)); + info("GPIO state:%x\n", gpio); + + /* turn LEDs off everything */ + CHK(carlu_cmd_write_mem(ar, AR9170_GPIO_REG_PORT_DATA, 0)); + + CHK(carlu_cmd_read_mem(ar, AR9170_GPIO_REG_PORT_DATA, &gpio)); + info("GPIO state:%x\n", gpio); +} + +int carlu_random_test(struct carlu *ar) +{ + uint32_t buf[4096]; + int err, i; + + err = carlu_cmd_mem_watch(ar, AR9170_RAND_REG_NUM, sizeof(buf), buf); + if (err) + return err; + + for (i = 0; i < ARRAY_SIZE(buf); i++) + info("%.2x %.2x ", buf[i] & 0xff, buf[i] >> 8); + + info("\n"); +}