summaryrefslogtreecommitdiff
path: root/firmware/export/i2c-coldfire.h
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2005-07-31 17:31:33 +0000
committerChristian Gmeiner <christian.gmeiner@gmail.com>2005-07-31 17:31:33 +0000
commit4894a06a152fc0da99d8812958c3eb60d40de610 (patch)
tree859d3848ebf0f007a3fbba0e51801d254fdd2495 /firmware/export/i2c-coldfire.h
parent6109a3b0bee921ffe4f2a4cd06b5b8dcbc9bfe1f (diff)
iAudio, iRiver: As both platforms use the same i2c interface i have renamed i2c-h100.c/h to i2c-coldfire.c/h. Also i have changed some stuff in config.h and config-xx.h. Hope everybody agrees with this patch, else we can unroll and improve it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7271 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/export/i2c-coldfire.h')
-rw-r--r--firmware/export/i2c-coldfire.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/firmware/export/i2c-coldfire.h b/firmware/export/i2c-coldfire.h
new file mode 100644
index 0000000000..d4a5781116
--- /dev/null
+++ b/firmware/export/i2c-coldfire.h
@@ -0,0 +1,64 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * Copyright (C) 2002 by Linus Nielsen Feltzing
+ *
+ * All files in this archive are subject to the GNU General Public License.
+ * See the file COPYING in the source tree root for full license agreement.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+
+/*
+ * Driver for MCF52xx's I2C interface
+ * 2005-02-17 hubble@mochine.com
+ *
+ */
+
+#ifndef _I2C_COLDFIRE_H
+#define _I2C_COLDFIRE_H
+
+void i2c_init(void);
+int i2c_write(int device, unsigned char *buf, int count);
+void i2c_close(void);
+
+
+#define MAX_LOOP 0x100 /* TODO: select a better value */
+
+/* PLLCR control */
+#define QSPISEL (1 << 11) /* Selects QSPI or I2C interface */
+
+/* Offsets to I2C registers from base address */
+#define O_MADR 0x00 /* Slave Address */
+#define O_MFDR 0x04 /* Frequency divider */
+#define O_MBCR 0x08 /* Control register */
+#define O_MBSR 0x0c /* Status register */
+#define O_MBDR 0x10 /* Data register */
+
+/* MBSR - Status register */
+#define ICF (1 << 7) /* Transfer Complete */
+#define IAAS (1 << 6) /* Addressed As Alave */
+#define IBB (1 << 5) /* Bus Busy */
+#define IAL (1 << 4) /* Arbitration Lost */
+#define SRW (1 << 2) /* Slave R/W */
+#define IFF (1 << 1) /* I2C Interrupt */
+#define RXAK (1 << 0) /* No Ack bit */
+
+/* MBCR - Control register */
+#define IEN (1 << 7) /* I2C Enable */
+#define IIEN (1 << 6) /* Interrupt Enable */
+#define MSTA (1 << 5) /* Master/Slave select */
+#define MTX (1 << 4) /* Transmit/Receive */
+#define TXAK (1 << 3) /* Transfer ACK */
+#define RSTA (1 << 2) /* Restart.. */
+
+
+#endif