Commit ec2c81c5 authored by mario.six@gdsys.cc's avatar mario.six@gdsys.cc Committed by Heiko Schocher

dm: fsl_i2c: Rename I2C register structure

Signed-off-by: default avatarMario Six <mario.six@gdsys.cc>
parent b6a77b0c
......@@ -16,7 +16,7 @@
#include <asm/types.h>
typedef struct fsl_i2c {
typedef struct fsl_i2c_base {
u8 adr; /* I2C slave address */
u8 res0[3];
......
......@@ -16,7 +16,7 @@
#include <asm/types.h>
typedef struct fsl_i2c {
typedef struct fsl_i2c_base {
u8 adr; /* I2C slave address */
u8 res0[3];
......
......@@ -120,8 +120,8 @@ typedef struct ccsr_local_ecm {
/* I2C Registers */
typedef struct ccsr_i2c {
struct fsl_i2c i2c[1];
u8 res[4096 - 1 * sizeof(struct fsl_i2c)];
struct fsl_i2c_base i2c[1];
u8 res[4096 - 1 * sizeof(struct fsl_i2c_base)];
} ccsr_i2c_t;
#if defined(CONFIG_MPC8540) \
......
......@@ -92,8 +92,8 @@ typedef struct ccsr_local_mcm {
/* Daul I2C Registers(0x3000-0x4000) */
typedef struct ccsr_i2c {
struct fsl_i2c i2c[2];
u8 res[4096 - 2 * sizeof(struct fsl_i2c)];
struct fsl_i2c_base i2c[2];
u8 res[4096 - 2 * sizeof(struct fsl_i2c_base)];
} ccsr_i2c_t;
/* DUART Registers(0x4000-0x5000) */
......
......@@ -13,31 +13,33 @@
static void i2c_write_start_seq(void)
{
struct fsl_i2c *dev;
dev = (struct fsl_i2c *) (CONFIG_SYS_IMMR + CONFIG_SYS_I2C_OFFSET);
struct fsl_i2c_base *base;
base = (struct fsl_i2c_base *)(CONFIG_SYS_IMMR +
CONFIG_SYS_I2C_OFFSET);
udelay(DELAY_ABORT_SEQ);
out_8(&dev->cr, (I2C_CR_MEN | I2C_CR_MSTA));
out_8(&base->cr, (I2C_CR_MEN | I2C_CR_MSTA));
udelay(DELAY_ABORT_SEQ);
out_8(&dev->cr, (I2C_CR_MEN));
out_8(&base->cr, (I2C_CR_MEN));
}
int i2c_make_abort(void)
{
struct fsl_i2c *dev;
dev = (struct fsl_i2c *) (CONFIG_SYS_IMMR + CONFIG_SYS_I2C_OFFSET);
struct fsl_i2c_base *base;
base = (struct fsl_i2c_base *)(CONFIG_SYS_IMMR +
CONFIG_SYS_I2C_OFFSET);
uchar last;
int nbr_read = 0;
int i = 0;
int ret = 0;
/* wait after each operation to finsh with a delay */
out_8(&dev->cr, (I2C_CR_MSTA));
out_8(&base->cr, (I2C_CR_MSTA));
udelay(DELAY_ABORT_SEQ);
out_8(&dev->cr, (I2C_CR_MEN | I2C_CR_MSTA));
out_8(&base->cr, (I2C_CR_MEN | I2C_CR_MSTA));
udelay(DELAY_ABORT_SEQ);
in_8(&dev->dr);
in_8(&base->dr);
udelay(DELAY_ABORT_SEQ);
last = in_8(&dev->dr);
last = in_8(&base->dr);
nbr_read++;
/*
......@@ -47,7 +49,7 @@ int i2c_make_abort(void)
while (((last & 0x01) != 0x01) &&
(nbr_read < CONFIG_SYS_IVM_EEPROM_MAX_LEN)) {
udelay(DELAY_ABORT_SEQ);
last = in_8(&dev->dr);
last = in_8(&base->dr);
nbr_read++;
}
if ((last & 0x01) != 0x01)
......@@ -56,10 +58,10 @@ int i2c_make_abort(void)
printf("[INFO] i2c abort after %d bytes (0x%02x)\n",
nbr_read, last);
udelay(DELAY_ABORT_SEQ);
out_8(&dev->cr, (I2C_CR_MEN));
out_8(&base->cr, (I2C_CR_MEN));
udelay(DELAY_ABORT_SEQ);
/* clear status reg */
out_8(&dev->sr, 0);
out_8(&base->sr, 0);
for (i = 0; i < 5; i++)
i2c_write_start_seq();
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment