summaryrefslogtreecommitdiff
path: root/protocol/ps2_io_mbed.c
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2014-11-24 15:36:53 +0900
committertmk <nobody@nowhere>2014-11-24 15:36:53 +0900
commited52ebb9870a26496b13a0565c1aaca8ded3465b (patch)
treecddad806a3408e05bc29310254c564ee94e3e710 /protocol/ps2_io_mbed.c
parenteb90ed6238426db9367e294abfaefb5de07564f5 (diff)
parente2077cad45f1736e878e317c43bd94117c61b5e0 (diff)
Merge branch 'merge_rn42'
Diffstat (limited to 'protocol/ps2_io_mbed.c')
-rw-r--r--protocol/ps2_io_mbed.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/protocol/ps2_io_mbed.c b/protocol/ps2_io_mbed.c
new file mode 100644
index 0000000000..83bdcef7f5
--- /dev/null
+++ b/protocol/ps2_io_mbed.c
@@ -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);
+}