summaryrefslogtreecommitdiff
path: root/include/pca953x.h
diff options
context:
space:
mode:
authorPeter Tyser <ptyser@xes-inc.com>2008-12-17 16:36:21 -0600
committerAndrew Fleming-AFLEMING <afleming@freescale.com>2008-12-19 18:11:49 -0600
commite92739d34e2d6b6aca93b2598248210710897ce8 (patch)
tree48e948a4280720cebc824335dab61f68558e13fc /include/pca953x.h
parent7a8979591171676417ab36852d8811a8c46accd8 (diff)
downloadu-boot-imx-e92739d34e2d6b6aca93b2598248210710897ce8.zip
u-boot-imx-e92739d34e2d6b6aca93b2598248210710897ce8.tar.gz
u-boot-imx-e92739d34e2d6b6aca93b2598248210710897ce8.tar.bz2
Add support for PCA953x I2C gpio devices
Initial support for NXP's 4 and 8 bit I2C gpio expanders (eg pca9537, pca9557, etc). The CONFIG_PCA953X define enables support for the devices while the CONFIG_CMD_PCA953X define enables the pca953x command. The CONFIG_CMD_PCA953X_INFO define enables an 'info' sub-command which provides summary information for the given pca953x device. Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
Diffstat (limited to 'include/pca953x.h')
-rw-r--r--include/pca953x.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/include/pca953x.h b/include/pca953x.h
new file mode 100644
index 0000000..6c2b58c
--- /dev/null
+++ b/include/pca953x.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2008 Extreme Engineering Solutions, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * Version 2 as published by the Free Software Foundation.
+ *
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef __PCA953X_H_
+#define __PCA953X_H_
+
+#define PCA953X_IN 0x00
+#define PCA953X_OUT 0x01
+#define PCA953X_POL 0x02
+#define PCA953X_CONF 0x03
+
+#define PCA953X_OUT_LOW 0
+#define PCA953X_OUT_HIGH 1
+#define PCA953X_POL_NORMAL 0
+#define PCA953X_POL_INVERT 1
+#define PCA953X_DIR_OUT 0
+#define PCA953X_DIR_IN 1
+
+int pca953x_set_val(u8 chip, uint mask, uint data);
+int pca953x_set_pol(u8 chip, uint mask, uint data);
+int pca953x_set_dir(u8 chip, uint mask, uint data);
+int pca953x_get_val(u8 chip);
+
+#endif /* __PCA953X_H_ */