summaryrefslogtreecommitdiffstats
path: root/firmware/drivers/mas.c
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-05-16 21:12:57 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-05-16 21:12:57 +0000
commit0e085999d50578eff8bf89e71a88b9a9e05e3463 (patch)
tree3dbf4cebcd548f41102cd5c9083a71dc31c44903 /firmware/drivers/mas.c
parent2f54401455ab5b27e134d6739e1ef4e5edcc4dbc (diff)
downloadrockbox-0e085999d50578eff8bf89e71a88b9a9e05e3463.tar.gz
rockbox-0e085999d50578eff8bf89e71a88b9a9e05e3463.zip
Changed default_read prototype
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@606 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers/mas.c')
-rw-r--r--firmware/drivers/mas.c31
1 files changed, 28 insertions, 3 deletions
diff --git a/firmware/drivers/mas.c b/firmware/drivers/mas.c
index 97017e8db5..38344ecc23 100644
--- a/firmware/drivers/mas.c
+++ b/firmware/drivers/mas.c
@@ -20,9 +20,34 @@
#include "debug.h"
#include "mas.h"
-int mas_default_read(unsigned long *buf)
+int mas_default_read(unsigned short *buf)
{
- return mas_devread(buf, 1);
+ unsigned char *dest = (unsigned char *)buf;
+ int ret = 0;
+
+ i2c_start();
+ i2c_outb(MAS_DEV_WRITE);
+ if (i2c_getack()) {
+ i2c_outb(MAS_DATA_READ);
+ if (i2c_getack()) {
+ i2c_start();
+ i2c_outb(MAS_DEV_READ);
+ if (i2c_getack()) {
+ dest[0] = i2c_inb(0);
+ dest[1] = i2c_inb(1);
+ }
+ else
+ ret = -3;
+ }
+ else
+ ret = -2;
+ }
+ else
+ ret = -1;
+
+ i2c_stop();
+
+ return ret;
}
int mas_run(unsigned short address)
@@ -126,7 +151,7 @@ int mas_readreg(int reg)
return buf[0] | buf[1] << 8 | buf[3] << 16;
}
-int mas_writereg(int reg, unsigned short val)
+int mas_writereg(int reg, unsigned int val)
{
int i;
unsigned char buf[16];