aboutsummaryrefslogtreecommitdiff
path: root/src/jtag
diff options
context:
space:
mode:
Diffstat (limited to 'src/jtag')
-rw-r--r--src/jtag/drivers/sysfsgpio.c39
1 files changed, 29 insertions, 10 deletions
diff --git a/src/jtag/drivers/sysfsgpio.c b/src/jtag/drivers/sysfsgpio.c
index 05d9a9dc..1cad2689 100644
--- a/src/jtag/drivers/sysfsgpio.c
+++ b/src/jtag/drivers/sysfsgpio.c
@@ -199,6 +199,7 @@ static void sysfsgpio_write(int tck, int tms, int tdi)
static int last_tdi;
static int first_time;
+ size_t bytes_written;
if (!first_time) {
last_tck = !tck;
@@ -207,13 +208,24 @@ static void sysfsgpio_write(int tck, int tms, int tdi)
first_time = 1;
}
- if (tdi != last_tdi)
- write(tdi_fd, tdi ? &one : &zero, 1);
- if (tms != last_tms)
- write(tms_fd, tms ? &one : &zero, 1);
+ if (tdi != last_tdi) {
+ bytes_written = write(tdi_fd, tdi ? &one : &zero, 1);
+ if (bytes_written != 1)
+ LOG_WARNING("writing tdi failed");
+ }
+
+ if (tms != last_tms) {
+ bytes_written = write(tms_fd, tms ? &one : &zero, 1);
+ if (bytes_written != 1)
+ LOG_WARNING("writing tms failed");
+ }
+
/* write clk last */
- if (tck != last_tck)
- write(tck_fd, tck ? &one : &zero, 1);
+ if (tck != last_tck) {
+ bytes_written = write(tck_fd, tck ? &one : &zero, 1);
+ if (bytes_written != 1)
+ LOG_WARNING("writing tck failed");
+ }
last_tdi = tdi;
last_tms = tms;
@@ -229,14 +241,21 @@ static void sysfsgpio_reset(int trst, int srst)
{
const char one[] = "1";
const char zero[] = "0";
+ size_t bytes_written;
/* assume active low */
- if (srst_fd >= 0)
- write(srst_fd, srst ? &zero : &one, 1);
+ if (srst_fd >= 0) {
+ bytes_written = write(srst_fd, srst ? &zero : &one, 1);
+ if (bytes_written != 1)
+ LOG_WARNING("writing srst failed");
+ }
/* assume active low */
- if (trst_fd >= 0)
- write(trst_fd, trst ? &zero : &one, 1);
+ if (trst_fd >= 0) {
+ bytes_written = write(trst_fd, trst ? &zero : &one, 1);
+ if (bytes_written != 1)
+ LOG_WARNING("writing trst failed");
+ }
}
/* No speed control is implemented yet */