]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - keyboards/xd96/pca9555.h
[Keyboard] Inital port of xd96 (#5401)
[qmk_firmware.git] / keyboards / xd96 / pca9555.h
diff --git a/keyboards/xd96/pca9555.h b/keyboards/xd96/pca9555.h
new file mode 100644 (file)
index 0000000..6aaee8a
--- /dev/null
@@ -0,0 +1,55 @@
+/* Copyright 2019
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+/*
+            PCA9555
+         ,----------.
+   SDA --| SDA  P00 |-- P1
+   SCL --| SCL  P01 |-- P2
+   INT --| INT  P02 |-- P3
+         |      P03 |-- P4
+   A0  --| A0   P04 |-- P5
+   A1  --| A1   P05 |-- P6
+   A2  --| A2   P06 |-- P7
+         |      P07 |-- P8
+         |          |      
+         |      P10 |-- P10
+         |      P11 |-- P11
+         |      P12 |-- P12
+         |      P13 |-- P13
+         |      P14 |-- P14
+         |      P15 |-- P15
+         |      P16 |-- P16
+         |      P17 |-- P17
+         `----------'      
+*/
+
+#define PCA9555_PORT0 0
+#define PCA9555_PORT1 1
+
+#define ALL_OUTPUT 0
+#define ALL_INPUT 0xFF
+#define ALL_LOW 0
+#define ALL_HIGH 0xFF
+
+void pca9555_init(uint8_t slave_addr);
+
+void pca9555_set_config(uint8_t slave_addr, uint8_t port, uint8_t conf);
+
+void pca9555_set_output(uint8_t slave_addr, uint8_t port, uint8_t conf);
+
+uint8_t pca9555_readPins(uint8_t slave_addr, uint8_t port);
\ No newline at end of file