[U-Boot-Users] soft_i2c
Christian Hohnstaedt
chohnstaedt at innominate.com
Fri Apr 23 15:38:14 CEST 2004
Hi,
a small patch for soft I2C to make it more readable
and more general - should not break anything.
best regards
Christian
--
Christian Hohnstaedt Innominate Security Technologies AG
software engineer networking people
tel: +49.30.6392-3308 http://www.innominate.com
-------------- next part --------------
Index: soft_i2c.c
===================================================================
RCS file: /cvsroot/u-boot/u-boot/common/soft_i2c.c,v
retrieving revision 1.4
diff -u -r1.4 soft_i2c.c
--- soft_i2c.c 27 Jun 2003 21:32:32 -0000 1.4
+++ soft_i2c.c 23 Apr 2004 13:45:49 -0000
@@ -30,9 +30,17 @@
#include <ioports.h>
#endif
#include <i2c.h>
+#include <asm/hardware.h>
#if defined(CONFIG_SOFT_I2C)
+#ifdef CONFIG_MPC8260
+ #define DECLARE_I2C_PORT volatile ioport_t *iop = ioport_addr((immap_t *)CFG_IMMR, I2C_PORT);
+#endif
+#ifdef CONFIG_8xx
+ #define DECLARE_I2C_PORT volatile immap_t *immr = (immap_t *)CFG_IMMR;
+#endif
+
/* #define DEBUG_I2C */
@@ -75,12 +83,8 @@
*/
static void send_reset(void)
{
-#ifdef CONFIG_MPC8260
- volatile ioport_t *iop = ioport_addr((immap_t *)CFG_IMMR, I2C_PORT);
-#endif
-#ifdef CONFIG_8xx
- volatile immap_t *immr = (immap_t *)CFG_IMMR;
-#endif
+ DECLARE_I2C_PORT
+
int j;
I2C_SCL(1);
@@ -106,12 +110,7 @@
*/
static void send_start(void)
{
-#ifdef CONFIG_MPC8260
- volatile ioport_t *iop = ioport_addr((immap_t *)CFG_IMMR, I2C_PORT);
-#endif
-#ifdef CONFIG_8xx
- volatile immap_t *immr = (immap_t *)CFG_IMMR;
-#endif
+ DECLARE_I2C_PORT
I2C_DELAY;
I2C_SDA(1);
@@ -128,12 +127,7 @@
*/
static void send_stop(void)
{
-#ifdef CONFIG_MPC8260
- volatile ioport_t *iop = ioport_addr((immap_t *)CFG_IMMR, I2C_PORT);
-#endif
-#ifdef CONFIG_8xx
- volatile immap_t *immr = (immap_t *)CFG_IMMR;
-#endif
+ DECLARE_I2C_PORT
I2C_SCL(0);
I2C_DELAY;
@@ -153,12 +147,7 @@
*/
static void send_ack(int ack)
{
-#ifdef CONFIG_MPC8260
- volatile ioport_t *iop = ioport_addr((immap_t *)CFG_IMMR, I2C_PORT);
-#endif
-#ifdef CONFIG_8xx
- volatile immap_t *immr = (immap_t *)CFG_IMMR;
-#endif
+ DECLARE_I2C_PORT
I2C_ACTIVE;
I2C_SCL(0);
@@ -181,12 +170,8 @@
*/
static int write_byte(uchar data)
{
-#ifdef CONFIG_MPC8260
- volatile ioport_t *iop = ioport_addr((immap_t *)CFG_IMMR, I2C_PORT);
-#endif
-#ifdef CONFIG_8xx
- volatile immap_t *immr = (immap_t *)CFG_IMMR;
-#endif
+ DECLARE_I2C_PORT
+
int j;
int nack;
@@ -229,12 +214,8 @@
*/
static uchar read_byte(int ack)
{
-#ifdef CONFIG_MPC8260
- volatile ioport_t *iop = ioport_addr((immap_t *)CFG_IMMR, I2C_PORT);
-#endif
-#ifdef CONFIG_8xx
- volatile immap_t *immr = (immap_t *)CFG_IMMR;
-#endif
+ DECLARE_I2C_PORT
+
int data;
int j;
More information about the U-Boot
mailing list