diff --git a/linux_spi.c b/linux_spi.c
index 3e60492..711ab4a 100644
--- a/linux_spi.c
+++ b/linux_spi.c
@@ -18,6 +18,8 @@
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
+#include <stdint.h>
+#include <inttypes.h>
 #include <fcntl.h>
 #include <errno.h>
 #include <ctype.h>
@@ -66,7 +68,7 @@
 int linux_spi_init(void)
 {
 	char *p, *endp, *dev;
-	uint32_t speed_hz = 0;
+	uint32_t speed_hz = 2 * 1000 * 1000;
 	/* FIXME: make the following configurable by CLI options. */
 	/* SPI mode 0 (beware this also includes: MSB first, CS active low and others */
 	const uint8_t mode = SPI_MODE_0;
@@ -75,11 +77,15 @@
 	p = extract_programmer_param("spispeed");
 	if (p && strlen(p)) {
 		speed_hz = (uint32_t)strtoul(p, &endp, 10) * 1000;
-		if (p == endp) {
+		if (p == endp || speed_hz == 0) {
 			msg_perr("%s: invalid clock: %s kHz\n", __func__, p);
 			free(p);
 			return 1;
 		}
+	} else {
+		msg_pinfo("Using default %"PRIu32
+			  "kHz clock. Use 'spispeed' parameter to override.\n",
+			  speed_hz / 1000);
 	}
 	free(p);
 
@@ -104,15 +110,12 @@
 		return 1;
 	/* We rely on the shutdown function for cleanup from here on. */
 
-	if (speed_hz > 0) {
-		if (ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed_hz) == -1) {
-			msg_perr("%s: failed to set speed to %d Hz: %s\n",
-				 __func__, speed_hz, strerror(errno));
-			return 1;
-		}
-
-		msg_pdbg("Using %d kHz clock\n", speed_hz/1000);
+	if (ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed_hz) == -1) {
+		msg_perr("%s: failed to set speed to %"PRIu32"Hz: %s\n",
+			 __func__, speed_hz, strerror(errno));
+		return 1;
 	}
+	msg_pdbg("Using %"PRIu32"kHz clock\n", speed_hz / 1000);
 
 	if (ioctl(fd, SPI_IOC_WR_MODE, &mode) == -1) {
 		msg_perr("%s: failed to set SPI mode to 0x%02x: %s\n",
