diff --git a/src/target/arm7tdmi.c b/src/target/arm7tdmi.c
index 377c302..2721502 100644
--- a/src/target/arm7tdmi.c
+++ b/src/target/arm7tdmi.c
@@ -223,7 +223,7 @@ static int arm7tdmi_clock_data_in_endianness(struct arm_jtag *jtag_info,
 	fields[0].out_value = NULL;
 	fields[0].in_value = NULL;
 
-	fields[1].num_bits = 32;
+	fields[1].num_bits = size * 8;
 	fields[1].out_value = NULL;
 	fields[1].in_value = in;
 
diff --git a/src/target/arm9tdmi.c b/src/target/arm9tdmi.c
index 380dca5..e8ad932 100644
--- a/src/target/arm9tdmi.c
+++ b/src/target/arm9tdmi.c
@@ -272,7 +272,7 @@ int arm9tdmi_clock_data_in_endianness(struct arm_jtag *jtag_info,
 	if (retval != ERROR_OK)
 		return retval;
 
-	fields[0].num_bits = 32;
+	fields[0].num_bits = size * 8;
 	fields[0].out_value = NULL;
 	fields[0].in_value = in;
 
