X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=cpu%2Farm920t%2Fat91rm9200%2Fi2c.c;h=826cea8e2641a7a6dc832bc955943cc403b3558f;hb=f8edca2e9a128f526b1fe6f997f7adb852cf5b3c;hp=433dd32a23112057fcc3602a20f6a50e573db798;hpb=a85f9f21aab7ee586cabe1773a02e9d04caa65fa;p=u-boot diff --git a/cpu/arm920t/at91rm9200/i2c.c b/cpu/arm920t/at91rm9200/i2c.c index 433dd32a23..826cea8e26 100644 --- a/cpu/arm920t/at91rm9200/i2c.c +++ b/cpu/arm920t/at91rm9200/i2c.c @@ -65,9 +65,8 @@ at91_xfer(unsigned char chip, unsigned int addr, int alen, | ((rw == 1) ? AT91C_TWI_MREAD : 0); /* Set TWI Internal Address Register with first messages data field */ - /* only one address byte is supported */ if (alen > 0) - twi->TWI_IADR = addr & 0xff; + twi->TWI_IADR = addr; length = len; buf = buffer; @@ -112,7 +111,7 @@ at91_xfer(unsigned char chip, unsigned int addr, int alen, int i2c_probe(unsigned char chip) { - char buffer[1]; + unsigned char buffer[1]; return at91_xfer(chip, 0, 0, buffer, 1, 1); } @@ -138,12 +137,12 @@ i2c_read (unsigned char chip, unsigned int addr, int alen, int i2c_write(unsigned char chip, unsigned int addr, int alen, - unsigned char *buffer, int len) + unsigned char *buffer, int len) { +#ifdef CFG_I2C_EEPROM_ADDR_OVERFLOW int i; unsigned char *buf; -#ifdef CFG_I2C_EEPROM_ADDR_OVERFLOW /* we only allow one address byte */ if (alen > 1) return 1; @@ -189,4 +188,19 @@ i2c_init(int speed, int slaveaddr) debug ("Found AT91 i2c\n"); return; } + +uchar i2c_reg_read(uchar i2c_addr, uchar reg) +{ + unsigned char buf; + + i2c_read(i2c_addr, reg, 1, &buf, 1); + + return(buf); +} + +void i2c_reg_write(uchar i2c_addr, uchar reg, uchar val) +{ + i2c_write(i2c_addr, reg, 1, &val, 1); +} + #endif /* CONFIG_HARD_I2C */