summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2021-05-27 12:55:03 +0200
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2021-05-27 12:55:03 +0200
commit6b2fd5f520488ff62c65e0098defab1594832082 (patch)
tree21fc731e61c299178818e3c794c50c9bf3d40b31
parentc0a36a8499bb33acc27afe07fc5a63a9f3c3653c (diff)
downloadexynos-gpio-tool-6b2fd5f520488ff62c65e0098defab1594832082.tar.gz
exynos-gpio-tool-6b2fd5f520488ff62c65e0098defab1594832082.tar.bz2
exynos-gpio-tool-6b2fd5f520488ff62c65e0098defab1594832082.zip
Add command to dump the GPS GPIOs
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
-rw-r--r--main.c34
1 files changed, 30 insertions, 4 deletions
diff --git a/main.c b/main.c
index b043fd2..200a08b 100644
--- a/main.c
+++ b/main.c
@@ -17,7 +17,7 @@
int usage(char* progname)
{
- printf("Usage: %s <flash|gpl1|gpl2|modem|test>\n", progname);
+ printf("Usage: %s <flash|gpl1|gpl2|gps|gpy0|modem|test>\n", progname);
printf("\n");
printf("Available commands:\n");
printf("\tflash: dump flash GPIO (gpj1 1) status\n");
@@ -25,6 +25,7 @@ int usage(char* progname)
" (for tests on gpio127 and gpio128)\n");
printf("\tgpl2: dump GPL2 GPIOs status"
" (for tests on gpio127 and gpio128)\n");
+ printf("\tgps: dump GPS GPIOs status\n");
printf("\tgpy0: dump GPY0 GPIOs status"
" (for tests on gpio127 and gpio128)\n");
printf("\tmodem: dump the modem GPIOs status\n");
@@ -48,6 +49,29 @@ int dump_flash_gpio_status(int debug, char* devmem, int fd, size_t page_size)
return 0;
}
+int dump_flash_gps_status(int debug, char* devmem, int fd, size_t page_size)
+{
+ int rc;
+
+ rc = dump_gpio_infos(devmem, fd, page_size, "gpl2", 1);
+ if (rc == -1) {
+ printf("dump_gpio_infos failed with error %d\n", rc);
+
+ /* TODO: return more precise error */
+ return EX_UNAVAILABLE;
+ }
+
+ rc = dump_gpio_infos(devmem, fd, page_size, "gpl2", 2);
+ if (rc == -1) {
+ printf("dump_gpio_infos failed with error %d\n", rc);
+
+ /* TODO: return more precise error */
+ return EX_UNAVAILABLE;
+ }
+
+ return 0;
+}
+
int dump_gpio_bank_status(int debug, char* devmem, int fd, size_t page_size,
char* bank)
{
@@ -114,9 +138,7 @@ int main(int argc, char *argv[])
return EX_UNAVAILABLE;
}
- if (argc == 2 && !strcmp("test", argv[1])) {
- return run_tests(debug, devmem, fd, page_size);
- } else if (argc == 2 && !strcmp("flash", argv[1])) {
+ if (argc == 2 && !strcmp("flash", argv[1])) {
return dump_flash_gpio_status(debug, devmem, fd, page_size);
} else if (argc == 2 && !strcmp("gpl1", argv[1])) {
return dump_gpio_bank_status(debug, devmem, fd, page_size,
@@ -124,11 +146,15 @@ int main(int argc, char *argv[])
} else if (argc == 2 && !strcmp("gpl2", argv[1])) {
return dump_gpio_bank_status(debug, devmem, fd, page_size,
"gpl2");
+ } else if (argc == 2 && !strcmp("gps", argv[1])) {
+ return dump_flash_gps_status(debug, devmem, fd, page_size);
} else if (argc == 2 && !strcmp("gpy0", argv[1])) {
return dump_gpio_bank_status(debug, devmem, fd, page_size,
"gpy0");
} else if (argc == 2 && !strcmp("modem", argv[1])) {
return dump_modem_gpio_infos(debug, devmem, fd, page_size);
+ } else if (argc == 2 && !strcmp("test", argv[1])) {
+ return run_tests(debug, devmem, fd, page_size);
} else {
usage(argv[0]);
return EX_USAGE;