This is an automated email from Gerrit.

"Laszlo Sitzer <dlsit...@gmail.com>" just uploaded a new patch set to Gerrit, 
which you can find at https://review.openocd.org/c/openocd/+/6715

-- gerrit

commit 1d4c5eb4cd6ec60b9985e55e823e02b59365acbe
Author: Laszlo Sitzer <dlsit...@gmail.com>
Date:   Fri Nov 19 14:25:03 2021 +0100

    linuxgpiod: Refactor to allow passing chip number after pin number (or use 
default from gpiochip).
    
    Change-Id: I1af4026cf3fcd040fbbe8fbef3bac7b39df9bb2b
    Signed-off-by: Laszlo Sitzer <dlsit...@gmail.com>

diff --git a/src/jtag/drivers/linuxgpiod.c b/src/jtag/drivers/linuxgpiod.c
index 940e42797..1bc4c58ef 100644
--- a/src/jtag/drivers/linuxgpiod.c
+++ b/src/jtag/drivers/linuxgpiod.c
@@ -28,7 +28,7 @@ static int srst_gpio = -1;
 static int swclk_gpio = -1;
 static int swdio_gpio = -1;
 static int led_gpio = -1;
-
+static int gpiochip = -1;
 static int tck_gpiochip = -1;
 static int tms_gpiochip = -1;
 static int tdi_gpiochip = -1;
@@ -498,55 +498,67 @@ COMMAND_HANDLER(linuxgpiod_handle_jtag_gpionums)
 
 COMMAND_HANDLER(linuxgpiod_handle_jtag_gpionum_tck)
 {
-       if (CMD_ARGC == 1)
+       if (CMD_ARGC > 0)
                COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], tck_gpio);
+       if (CMD_ARGC > 1)
+               COMMAND_PARSE_NUMBER(int, CMD_ARGV[1], tck_gpiochip);
 
-       command_print(CMD, "LinuxGPIOD num: tck = %d", tck_gpio);
+       command_print(CMD, "LinuxGPIOD num: tck = %d, chip = %d", tck_gpio, 
tck_gpiochip);
        return ERROR_OK;
 }
 
 COMMAND_HANDLER(linuxgpiod_handle_jtag_gpionum_tms)
 {
-       if (CMD_ARGC == 1)
+       if (CMD_ARGC > 0)
                COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], tms_gpio);
+       if (CMD_ARGC > 1)
+               COMMAND_PARSE_NUMBER(int, CMD_ARGV[1], tms_gpiochip);
 
-       command_print(CMD, "LinuxGPIOD num: tms = %d", tms_gpio);
+       command_print(CMD, "LinuxGPIOD num: tms = %d, chip = %d", tms_gpio, 
tms_gpiochip);
        return ERROR_OK;
 }
 
 COMMAND_HANDLER(linuxgpiod_handle_jtag_gpionum_tdo)
 {
-       if (CMD_ARGC == 1)
+       if (CMD_ARGC > 0)
                COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], tdo_gpio);
+       if (CMD_ARGC > 1)
+               COMMAND_PARSE_NUMBER(int, CMD_ARGV[1], tdo_gpiochip);
 
-       command_print(CMD, "LinuxGPIOD num: tdo = %d", tdo_gpio);
+       command_print(CMD, "LinuxGPIOD num: tdo = %d, chip = %d", tdo_gpio, 
tdo_gpiochip);
        return ERROR_OK;
 }
 
 COMMAND_HANDLER(linuxgpiod_handle_jtag_gpionum_tdi)
 {
-       if (CMD_ARGC == 1)
+       if (CMD_ARGC > 0)
                COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], tdi_gpio);
+       if (CMD_ARGC > 1)
+               COMMAND_PARSE_NUMBER(int, CMD_ARGV[1], tdi_gpiochip);
 
-       command_print(CMD, "LinuxGPIOD num: tdi = %d", tdi_gpio);
+       command_print(CMD, "LinuxGPIOD num: tdi = %d, chip = %d", tdi_gpio, 
tdi_gpiochip);
        return ERROR_OK;
 }
 
 COMMAND_HANDLER(linuxgpiod_handle_jtag_gpionum_srst)
 {
-       if (CMD_ARGC == 1)
+       if (CMD_ARGC > 0)
                COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], srst_gpio);
+       if (CMD_ARGC > 1)
+               COMMAND_PARSE_NUMBER(int, CMD_ARGV[1], srst_gpiochip);
 
-       command_print(CMD, "LinuxGPIOD num: srst = %d", srst_gpio);
+       command_print(CMD, "LinuxGPIOD num: srst = %d, chip = %d", srst_gpio, 
srst_gpiochip);
        return ERROR_OK;
 }
 
 COMMAND_HANDLER(linuxgpiod_handle_jtag_gpionum_trst)
 {
-       if (CMD_ARGC == 1)
+       if (CMD_ARGC > 0)
                COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], trst_gpio);
+       if (CMD_ARGC > 1)
+               COMMAND_PARSE_NUMBER(int, CMD_ARGV[1], trst_gpiochip);
 
-       command_print(CMD, "LinuxGPIOD num: trst = %d", trst_gpio);
+       command_print(CMD, "LinuxGPIOD num: trst = %d, chip = %d", trst_gpio, 
trst_gpiochip);
        return ERROR_OK;
 }
 
@@ -568,109 +580,53 @@ COMMAND_HANDLER(linuxgpiod_handle_swd_gpionums)
 
 COMMAND_HANDLER(linuxgpiod_handle_swd_gpionum_swclk)
 {
-       if (CMD_ARGC == 1)
+       if (CMD_ARGC > 0)
                COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], swclk_gpio);
+       if (CMD_ARGC > 1)
+               COMMAND_PARSE_NUMBER(int, CMD_ARGV[1], swclk_gpiochip);
 
-       command_print(CMD, "LinuxGPIOD num: swclk = %d", swclk_gpio);
+       command_print(CMD, "LinuxGPIOD num: swclk = %d, chip = %d", swclk_gpio, 
swclk_gpiochip);
        return ERROR_OK;
 }
 
 COMMAND_HANDLER(linuxgpiod_handle_swd_gpionum_swdio)
 {
-       if (CMD_ARGC == 1)
+       if (CMD_ARGC > 0)
                COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], swdio_gpio);
+       if (CMD_ARGC > 1)
+               COMMAND_PARSE_NUMBER(int, CMD_ARGV[1], swdio_gpiochip);
 
-       command_print(CMD, "LinuxGPIOD num: swdio = %d", swdio_gpio);
+       command_print(CMD, "LinuxGPIOD num: swdio = %d, chip = %d", swdio_gpio, 
swdio_gpiochip);
        return ERROR_OK;
 }
 
 COMMAND_HANDLER(linuxgpiod_handle_gpionum_led)
 {
-       if (CMD_ARGC == 1)
+       if (CMD_ARGC > 0)
                COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], led_gpio);
+       if (CMD_ARGC > 1)
+               COMMAND_PARSE_NUMBER(int, CMD_ARGV[1], led_gpiochip);
 
-       command_print(CMD, "LinuxGPIOD num: led = %d", led_gpio);
-       return ERROR_OK;
-}
-
-COMMAND_HANDLER(linuxgpiod_handle_tck_gpiochip)
-{
-       if (CMD_ARGC == 1)
-               COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], tck_gpiochip);
-
-       command_print(CMD, "LinuxGPIOD tck_gpiochip = %d", tck_gpiochip);
-       return ERROR_OK;
-}
-
-COMMAND_HANDLER(linuxgpiod_handle_tms_gpiochip)
-{
-       if (CMD_ARGC == 1)
-               COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], tms_gpiochip);
-
-       command_print(CMD, "LinuxGPIOD tms_gpiochip = %d", tms_gpiochip);
-       return ERROR_OK;
-}
-
-COMMAND_HANDLER(linuxgpiod_handle_tdi_gpiochip)
-{
-       if (CMD_ARGC == 1)
-               COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], tdi_gpiochip);
-
-       command_print(CMD, "LinuxGPIOD tdi_gpiochip = %d", tdi_gpiochip);
-       return ERROR_OK;
-}
-
-COMMAND_HANDLER(linuxgpiod_handle_tdo_gpiochip)
-{
-       if (CMD_ARGC == 1)
-               COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], tdo_gpiochip);
-
-       command_print(CMD, "LinuxGPIOD tdo_gpiochip = %d", tdo_gpiochip);
-       return ERROR_OK;
-}
-
-COMMAND_HANDLER(linuxgpiod_handle_trst_gpiochip)
-{
-       if (CMD_ARGC == 1)
-               COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], trst_gpiochip);
-
-       command_print(CMD, "LinuxGPIOD trst_gpiochip = %d", trst_gpiochip);
-       return ERROR_OK;
-}
-
-COMMAND_HANDLER(linuxgpiod_handle_srst_gpiochip)
-{
-       if (CMD_ARGC == 1)
-               COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], srst_gpiochip);
-
-       command_print(CMD, "LinuxGPIOD srst_gpiochip = %d", srst_gpiochip);
-       return ERROR_OK;
-}
-
-COMMAND_HANDLER(linuxgpiod_handle_swclk_gpiochip)
-{
-       if (CMD_ARGC == 1)
-               COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], swclk_gpiochip);
-
-       command_print(CMD, "LinuxGPIOD swclk_gpiochip = %d", swclk_gpiochip);
+       command_print(CMD, "LinuxGPIOD num: led = %d, chip = %d", led_gpio, 
led_gpiochip);
        return ERROR_OK;
 }
 
-COMMAND_HANDLER(linuxgpiod_handle_swdio_gpiochip)
+COMMAND_HANDLER(linuxgpiod_handle_gpiochip)
 {
-       if (CMD_ARGC == 1)
-               COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], swdio_gpiochip);
-
-       command_print(CMD, "LinuxGPIOD swdio_gpiochip = %d", swdio_gpiochip);
-       return ERROR_OK;
-}
-
-COMMAND_HANDLER(linuxgpiod_handle_led_gpiochip)
-{
-       if (CMD_ARGC == 1)
-               COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], led_gpiochip);
+       if (CMD_ARGC == 1) {
+               COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], gpiochip);
+               tck_gpiochip = gpiochip;
+               tms_gpiochip = gpiochip;
+               tdi_gpiochip = gpiochip;
+               tdo_gpiochip = gpiochip;
+               trst_gpiochip = gpiochip;
+               srst_gpiochip = gpiochip;
+               swclk_gpiochip = gpiochip;
+               swdio_gpiochip = gpiochip;
+               led_gpiochip = gpiochip;
+       }
 
-       command_print(CMD, "LinuxGPIOD led_gpiochip = %d", led_gpiochip);
+       command_print(CMD, "LinuxGPIOD gpiochip = %d", gpiochip);
        return ERROR_OK;
 }
 
@@ -686,42 +642,42 @@ static const struct command_registration 
linuxgpiod_subcommand_handlers[] = {
                .name = "tck_num",
                .handler = linuxgpiod_handle_jtag_gpionum_tck,
                .mode = COMMAND_CONFIG,
-               .help = "gpio number for tck.",
+               .help = "gpio number for tck (optionally followed by gpio chip 
number).",
                .usage = "tck",
        },
        {
                .name = "tms_num",
                .handler = linuxgpiod_handle_jtag_gpionum_tms,
                .mode = COMMAND_CONFIG,
-               .help = "gpio number for tms.",
+               .help = "gpio number for tms (optionally followed by gpio chip 
number).",
                .usage = "tms",
        },
        {
                .name = "tdo_num",
                .handler = linuxgpiod_handle_jtag_gpionum_tdo,
                .mode = COMMAND_CONFIG,
-               .help = "gpio number for tdo.",
+               .help = "gpio number for tdo (optionally followed by gpio chip 
number).",
                .usage = "tdo",
        },
        {
                .name = "tdi_num",
                .handler = linuxgpiod_handle_jtag_gpionum_tdi,
                .mode = COMMAND_CONFIG,
-               .help = "gpio number for tdi.",
+               .help = "gpio number for tdi (optionally followed by gpio chip 
number).",
                .usage = "tdi",
        },
        {
                .name = "srst_num",
                .handler = linuxgpiod_handle_jtag_gpionum_srst,
                .mode = COMMAND_CONFIG,
-               .help = "gpio number for srst.",
+               .help = "gpio number for srst (optionally followed by gpio chip 
number).",
                .usage = "srst",
        },
        {
                .name = "trst_num",
                .handler = linuxgpiod_handle_jtag_gpionum_trst,
                .mode = COMMAND_CONFIG,
-               .help = "gpio number for trst.",
+               .help = "gpio number for trst (optionally followed by gpio chip 
number).",
                .usage = "trst",
        },
        {
@@ -735,85 +691,29 @@ static const struct command_registration 
linuxgpiod_subcommand_handlers[] = {
                .name = "swclk_num",
                .handler = linuxgpiod_handle_swd_gpionum_swclk,
                .mode = COMMAND_CONFIG,
-               .help = "gpio number for swclk.",
+               .help = "gpio number for swclk (optionally followed by gpio 
chip number).",
                .usage = "swclk",
        },
        {
                .name = "swdio_num",
                .handler = linuxgpiod_handle_swd_gpionum_swdio,
                .mode = COMMAND_CONFIG,
-               .help = "gpio number for swdio.",
+               .help = "gpio number for swdio (optionally followed by gpio 
chip number).",
                .usage = "swdio",
        },
        {
                .name = "led_num",
                .handler = linuxgpiod_handle_gpionum_led,
                .mode = COMMAND_CONFIG,
-               .help = "gpio number for LED.",
+               .help = "gpio number for LED (optionally followed by gpio chip 
number).",
                .usage = "led",
        },
        {
-               .name = "tck_gpiochip",
-               .handler = linuxgpiod_handle_tck_gpiochip,
-               .mode = COMMAND_CONFIG,
-               .help = "number of the tck gpiochip.",
-               .usage = "tck_gpiochip",
-       },
-       {
-               .name = "tms_gpiochip",
-               .handler = linuxgpiod_handle_tms_gpiochip,
-               .mode = COMMAND_CONFIG,
-               .help = "number of the tms_gpiochip.",
-               .usage = "tms_gpiochip",
-       },
-       {
-               .name = "tdi_gpiochip",
-               .handler = linuxgpiod_handle_tdi_gpiochip,
-               .mode = COMMAND_CONFIG,
-               .help = "number of the tdi_gpiochip.",
-               .usage = "tdi_gpiochip",
-       },
-       {
-               .name = "tdo_gpiochip",
-               .handler = linuxgpiod_handle_tdo_gpiochip,
-               .mode = COMMAND_CONFIG,
-               .help = "number of the tdo_gpiochip.",
-               .usage = "tdo_gpiochip",
-       },
-       {
-               .name = "trst_gpiochip",
-               .handler = linuxgpiod_handle_trst_gpiochip,
-               .mode = COMMAND_CONFIG,
-               .help = "number of the trst_gpiochip.",
-               .usage = "trst_gpiochip",
-       },
-       {
-               .name = "srst_gpiochip",
-               .handler = linuxgpiod_handle_srst_gpiochip,
-               .mode = COMMAND_CONFIG,
-               .help = "number of the srst_gpiochip.",
-               .usage = "srst_gpiochip",
-       },
-       {
-               .name = "swclk_gpiochip",
-               .handler = linuxgpiod_handle_swclk_gpiochip,
-               .mode = COMMAND_CONFIG,
-               .help = "number of the swclk_gpiochip.",
-               .usage = "swclk_gpiochip",
-       },
-       {
-               .name = "swdio_gpiochip",
-               .handler = linuxgpiod_handle_swdio_gpiochip,
-               .mode = COMMAND_CONFIG,
-               .help = "number of the swdio_gpiochip.",
-               .usage = "swdio_gpiochip",
-       },
-       {
-               .name = "led_gpiochip",
-               .handler = linuxgpiod_handle_led_gpiochip,
+               .name = "gpiochip",
+               .handler = linuxgpiod_handle_gpiochip,
                .mode = COMMAND_CONFIG,
-               .help = "number of the led_gpiochip.",
-               .usage = "led_gpiochip",
+               .help = "number of the gpiochip.",
+               .usage = "gpiochip",
        },
        COMMAND_REGISTRATION_DONE
 };

-- 

Reply via email to