]> git.donarmstrong.com Git - tmk_firmware.git/blobdiff - protocol/ps2_io_mbed.c
Merge remote-tracking branch 'tmk/master' into cub_layout
[tmk_firmware.git] / protocol / ps2_io_mbed.c
diff --git a/protocol/ps2_io_mbed.c b/protocol/ps2_io_mbed.c
new file mode 100644 (file)
index 0000000..83bdcef
--- /dev/null
@@ -0,0 +1,60 @@
+#include <stdbool.h>
+#include "ps2_io.h"
+#include "gpio_api.h"
+
+
+static gpio_t clock;
+static gpio_t data;
+
+/*
+ * Clock
+ */
+void clock_init(void)
+{
+    gpio_init(&clock, P0_9);
+    gpio_mode(&clock, OpenDrain|PullNone);
+}
+
+void clock_lo(void)
+{
+    gpio_dir(&clock, PIN_OUTPUT);
+    gpio_write(&clock, 0);
+}
+void clock_hi(void)
+{
+    gpio_dir(&clock, PIN_OUTPUT);
+    gpio_write(&clock, 1);
+}
+
+bool clock_in(void)
+{
+    gpio_dir(&clock, PIN_INPUT);
+    return gpio_read(&clock);
+}
+
+/*
+ * Data
+ */
+void data_init(void)
+{
+    gpio_init(&data, P0_8);
+    gpio_mode(&data, OpenDrain|PullNone);
+}
+
+void data_lo(void)
+{
+    gpio_dir(&data, PIN_OUTPUT);
+    gpio_write(&data, 0);
+}
+
+void data_hi(void)
+{
+    gpio_dir(&data, PIN_OUTPUT);
+    gpio_write(&data, 1);
+}
+
+bool data_in(void)
+{
+    gpio_dir(&data, PIN_INPUT);
+    return gpio_read(&data);
+}