board/common: Add support for QIXIS read/write using i2c

QIXIS FPGA is accessable via both i2c and flash controller.
Only flash controller access is supported.

Add support of i2c based access. It is quite useful in the scenario
where either flash controller path is broken or not present.

Signed-off-by: Ruchika Gupta <ruchika.gupta@freescale.com>
Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
Signed-off-by: Andy Fleming <afleming@freescale.com>
This commit is contained in:
Prabhakar Kushwaha 2013-01-23 17:59:37 +00:00 committed by Andy Fleming
parent 72bd83cd0a
commit 960aa89bda
2 changed files with 23 additions and 0 deletions

View file

@ -15,8 +15,22 @@
#include <command.h>
#include <asm/io.h>
#include <linux/time.h>
#include <i2c.h>
#include "qixis.h"
#ifdef CONFIG_SYS_I2C_FPGA_ADDR
u8 qixis_read_i2c(unsigned int reg)
{
return i2c_reg_read(CONFIG_SYS_I2C_FPGA_ADDR, reg);
}
void qixis_write_i2c(unsigned int reg, u8 value)
{
u8 val = value;
i2c_reg_write(CONFIG_SYS_I2C_FPGA_ADDR, reg, val);
}
#endif
u8 qixis_read(unsigned int reg)
{
void *p = (void *)QIXIS_BASE;

View file

@ -92,8 +92,17 @@ u16 qixis_read_minor(void);
char *qixis_read_time(char *result);
char *qixis_read_tag(char *buf);
const char *byte_to_binary_mask(u8 val, u8 mask, char *buf);
#ifdef CONFIG_SYS_I2C_FPGA_ADDR
u8 qixis_read_i2c(unsigned int reg);
void qixis_write_i2c(unsigned int reg, u8 value);
#endif
#define QIXIS_READ(reg) qixis_read(offsetof(struct qixis, reg))
#define QIXIS_WRITE(reg, value) qixis_write(offsetof(struct qixis, reg), value)
#ifdef CONFIG_SYS_I2C_FPGA_ADDR
#define QIXIS_READ_I2C(reg) qixis_read_i2c(offsetof(struct qixis, reg))
#define QIXIS_WRITE_I2C(reg, value) \
qixis_write_i2c(offsetof(struct qixis, reg), value)
#endif
#endif