diff libpwon/duart28c.c @ 736:7d1df6d831e4

libpwon: added -Pdtr and -Prts support for DUART28C
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 16 Sep 2020 03:40:51 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libpwon/duart28c.c	Wed Sep 16 03:40:51 2020 +0000
@@ -0,0 +1,46 @@
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <strings.h>
+#include <unistd.h>
+
+extern int target_fd;
+
+int bootctrl_duart28c_mode;
+static int mctl_arg;
+
+bootctrl_check_duart28c(bc_name)
+	char *bc_name;
+{
+	if (!strcmp(bc_name, "dtr")) {
+		bootctrl_duart28c_mode = 1;
+		mctl_arg = TIOCM_DTR;
+		return 1;
+	}
+	if (!strcmp(bc_name, "rts")) {
+		bootctrl_duart28c_mode = 1;
+		mctl_arg = TIOCM_RTS;
+		return 1;
+	}
+	return 0;
+}
+
+void
+fork_duart28c_pulse()
+{
+	int i;
+
+	i = fork();
+	if (i < 0) {
+		perror("fork");
+		exit(1);
+	}
+	if (i)
+		return;
+	ioctl(target_fd, TIOCMBIS, &mctl_arg);
+	usleep(50000);
+	ioctl(target_fd, TIOCMBIC, &mctl_arg);
+	exit(0);
+}