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 */ }; --