diff options
-rw-r--r-- | board/freescale/common/qixis.c | 14 | ||||
-rw-r--r-- | board/freescale/common/qixis.h | 9 |
2 files changed, 23 insertions, 0 deletions
diff --git a/board/freescale/common/qixis.c b/board/freescale/common/qixis.c index f7d2f46..2b74d02 100644 --- a/board/freescale/common/qixis.c +++ b/board/freescale/common/qixis.c @@ -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; diff --git a/board/freescale/common/qixis.h b/board/freescale/common/qixis.h index 2b8f607..8d914d5 100644 --- a/board/freescale/common/qixis.h +++ b/board/freescale/common/qixis.h @@ -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 |