diff options
| author | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2021-05-25 19:55:39 +0200 |
|---|---|---|
| committer | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2021-05-25 20:03:34 +0200 |
| commit | 9a44d04385208a35d9d0e1127c50c5585876447b (patch) | |
| tree | 2d6a7a0e5e76d81bd0400930bcdd11598eb5aa35 | |
| parent | 7b1070087f866f0bb7a262ad2d3cde30d28a8314 (diff) | |
| download | exynos-gpio-tool-9a44d04385208a35d9d0e1127c50c5585876447b.tar.gz exynos-gpio-tool-9a44d04385208a35d9d0e1127c50c5585876447b.tar.bz2 exynos-gpio-tool-9a44d04385208a35d9d0e1127c50c5585876447b.zip | |
main: Add usage
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
| -rw-r--r-- | main.c | 45 |
1 files changed, 38 insertions, 7 deletions
@@ -1,3 +1,4 @@ +#include <assert.h> #include <errno.h> #include <fcntl.h> #include <stdint.h> @@ -13,6 +14,32 @@ #include "modem_gpios_data.h" #include "tests.h" +int usage(char* progname) +{ + printf("Usage: %s [test|flash]\n", progname); + printf("\n"); + printf("Available commands:\n"); + printf("\ttest: run self tests\n"); + printf("\tflash: dump flash GPIO (gpj1 1) status\n"); + + return 0; +} + +int dump_flash_gpio_status(int debug, char* devmem, int fd, size_t page_size) +{ + int rc; + + rc = dump_gpio_infos(devmem, fd, page_size, "gpj1", 1); + if (rc == -1) { + printf("dump_gpio_infos failed with error %d\n", rc); + + /* TODO: return more precise error */ + return EX_UNAVAILABLE; + } + + return 0; +} + int main(int argc, char *argv[]) { int fd = 0; @@ -22,6 +49,13 @@ int main(int argc, char *argv[]) char *devmem = "/dev/mem"; size_t page_size = 4096; + assert(argc >= 1); + + if (argc != 2) { + usage(argv[0]); + return EX_USAGE; + } + if (!device_is_compatible(debug)) { printf("Exiting due to incompatible device\n"); return 0; @@ -44,14 +78,11 @@ int main(int argc, char *argv[]) if (argc == 2 && !strcmp("test", argv[1])) { return run_tests(debug, devmem, fd, page_size); + } else if (argc == 2 && !strcmp("flash", argv[1])) { + return dump_flash_gpio_status(debug, devmem, fd, page_size); } else { - rc = dump_gpio_infos(devmem, fd, page_size, "gpj1", 1); - if (rc == -1) { - printf("dump_gpio_infos failed with error %d\n", rc); - - /* TODO: return more precise error */ - return EX_UNAVAILABLE; - } + usage(argv[0]); + return EX_USAGE; } rc = close(fd); |
