This is an automated email from Gerrit.

"Steve Marple <stevemar...@googlemail.com>" just uploaded a new patch set to 
Gerrit, which you can find at https://review.openocd.org/c/openocd/+/7126

-- gerrit

commit 133baf3f9e4d0247c2921b2dca22f4f58c4c0cdd
Author: Steve Marple <stevemar...@googlemail.com>
Date:   Mon Aug 15 20:43:39 2022 +0100

    jtag/adapter: Add GPIOs for power and srst sensing
    
    Adds a power control GPIO.
    Adds GPIOs to sense srst asserted and power loss.
    
    Signed-off-by: Steve Marple <stevemar...@googlemail.com>
    Change-Id: I15e49110e3479d6d1508f0359d46794d2fec6f82

diff --git a/src/jtag/adapter.c b/src/jtag/adapter.c
index 76a2aaba60..d15b670b26 100644
--- a/src/jtag/adapter.c
+++ b/src/jtag/adapter.c
@@ -68,6 +68,9 @@ static const struct gpio_map {
        [ADAPTER_GPIO_IDX_TRST] = { "trst", ADAPTER_GPIO_DIRECTION_OUTPUT, 
false, true, },
        [ADAPTER_GPIO_IDX_SRST] = { "srst", ADAPTER_GPIO_DIRECTION_OUTPUT, 
false, true, },
        [ADAPTER_GPIO_IDX_LED] = { "led", ADAPTER_GPIO_DIRECTION_OUTPUT, true, 
true, },
+       [ADAPTER_GPIO_IDX_PWR_CTRL] = { "pwr_ctrl", 
ADAPTER_GPIO_DIRECTION_OUTPUT, true, true, },
+       [ADAPTER_GPIO_IDX_PWR_SENSE] = { "pwr_sense", 
ADAPTER_GPIO_DIRECTION_INPUT, false, false, },
+       [ADAPTER_GPIO_IDX_SRST_SENSE] = { "srst_sense", 
ADAPTER_GPIO_DIRECTION_INPUT, false, false, },
 };
 
 bool is_adapter_initialized(void)
@@ -108,11 +111,15 @@ static void adapter_driver_gpios_init(void)
         * lines so should be the default. */
        adapter_config.gpios[ADAPTER_GPIO_IDX_SRST].active_low = true;
        adapter_config.gpios[ADAPTER_GPIO_IDX_TRST].active_low = true;
+       adapter_config.gpios[ADAPTER_GPIO_IDX_PWR_SENSE].active_low = true;
+       adapter_config.gpios[ADAPTER_GPIO_IDX_SRST_SENSE].active_low = true;
        sync_adapter_reset_with_gpios();
 
        /* JTAG GPIOs should be inactive except for tms */
        adapter_config.gpios[ADAPTER_GPIO_IDX_TMS].init_state = 
ADAPTER_GPIO_INIT_STATE_ACTIVE;
 
+       adapter_config.gpios[ADAPTER_GPIO_IDX_PWR_CTRL].init_state = 
ADAPTER_GPIO_INIT_STATE_ACTIVE;
+
        adapter_config.gpios_initialized = true;
 }
 
@@ -1169,7 +1176,7 @@ static const struct command_registration 
adapter_command_handlers[] = {
                .handler = adapter_gpio_config_handler,
                .mode = COMMAND_CONFIG,
                .help = "gpio adapter command group",
-               .usage = "[ tdo|tdi|tms|tck|trst|swdio|swdio_dir|swclk|srst|led"
+               .usage = "[ 
tdo|tdi|tms|tck|trst|swdio|swdio_dir|swclk|srst|led|pwr_ctrl|pwr_sense|srst_sense"
                        "[gpio_number] "
                        "[-chip chip_number] "
                        "[-active-high|-active-low] "
diff --git a/src/jtag/adapter.h b/src/jtag/adapter.h
index 625a0b269a..30fddf3231 100644
--- a/src/jtag/adapter.h
+++ b/src/jtag/adapter.h
@@ -51,6 +51,9 @@ enum adapter_gpio_config_index {
        ADAPTER_GPIO_IDX_SWCLK,
        ADAPTER_GPIO_IDX_SRST,
        ADAPTER_GPIO_IDX_LED,
+       ADAPTER_GPIO_IDX_PWR_CTRL,
+       ADAPTER_GPIO_IDX_PWR_SENSE,
+       ADAPTER_GPIO_IDX_SRST_SENSE,
        ADAPTER_GPIO_IDX_NUM, /* must be the last item */
 };
 

-- 

Reply via email to