diff --git a/flashrom.8.tmpl b/flashrom.8.tmpl
index e830d87..924a4f9 100644
--- a/flashrom.8.tmpl
+++ b/flashrom.8.tmpl
@@ -1322,6 +1322,9 @@
 .sp
 syntax where \fBfrequency\fP is the SPI clock frequency in kHz.
 The maximum speed depends on the device in use.
+.sp
+The \fBpower=on\fP option can be used to activate the 5 V power supply (PWR_5V)
+of the J-Link during a flash operation.
 .SS
 .BR "stlinkv3_spi " programmer
 .IP
diff --git a/jlink_spi.c b/jlink_spi.c
index 8a1b36c..eabc789 100644
--- a/jlink_spi.c
+++ b/jlink_spi.c
@@ -54,6 +54,7 @@
 static struct jaylink_context *jaylink_ctx;
 static struct jaylink_device_handle *jaylink_devh;
 static bool reset_cs;
+static bool enable_target_power;
 
 static bool assert_cs(void)
 {
@@ -166,11 +167,20 @@
 
 static int jlink_spi_shutdown(void *data)
 {
-	if (jaylink_devh)
+	if (jaylink_devh) {
+		if (enable_target_power) {
+			int ret = jaylink_set_target_power(jaylink_devh, false);
+
+			if (ret != JAYLINK_OK) {
+				msg_perr("jaylink_set_target_power() failed: %s.\n",
+					jaylink_strerror(ret));
+			}
+		}
+
 		jaylink_close(jaylink_devh);
+	}
 
 	jaylink_exit(jaylink_ctx);
-
 	return 0;
 }
 
@@ -258,6 +268,21 @@
 	else
 		msg_pdbg("Using TRST as chip select signal.\n");
 
+	enable_target_power = false;
+	arg = extract_programmer_param("power");
+
+	if (arg) {
+		if (!strcasecmp(arg, "on")) {
+			enable_target_power = true;
+		} else {
+			msg_perr("Invalid value for 'power' argument: '%s'.\n", arg);
+			free(arg);
+			return 1;
+		}
+	}
+
+	free(arg);
+
 	ret = jaylink_init(&jaylink_ctx);
 
 	if (ret != JAYLINK_OK) {
@@ -367,6 +392,13 @@
 		}
 	}
 
+	if (enable_target_power) {
+		if (!jaylink_has_cap(caps, JAYLINK_DEV_CAP_SET_TARGET_POWER)) {
+			msg_perr("Device does not support target power.\n");
+			return 1;
+		}
+	}
+
 	uint32_t ifaces;
 
 	ret = jaylink_get_available_interfaces(jaylink_devh, &ifaces);
@@ -388,6 +420,18 @@
 		return 1;
 	}
 
+	if (enable_target_power) {
+		ret = jaylink_set_target_power(jaylink_devh, true);
+
+		if (ret != JAYLINK_OK) {
+			msg_perr("jaylink_set_target_power() failed: %s.\n", jaylink_strerror(ret));
+			return 1;
+		}
+
+		/* Wait some time until the target is powered up. */
+		internal_sleep(10000);
+	}
+
 	struct jaylink_hardware_status hwstat;
 
 	ret = jaylink_get_hardware_status(jaylink_devh, &hwstat);
