diff options
| -rw-r--r-- | firmware/drivers/mas.c | 34 | ||||
| -rw-r--r-- | firmware/drivers/mas.h | 1 |
2 files changed, 35 insertions, 0 deletions
diff --git a/firmware/drivers/mas.c b/firmware/drivers/mas.c index e954bce..ec4de76 100644 --- a/firmware/drivers/mas.c +++ b/firmware/drivers/mas.c @@ -409,4 +409,38 @@ int mas_codec_readreg(int reg) i2c_end(); return ret; } + +unsigned long mas_readver(void) +{ + int ret = 0; + unsigned char buf[16]; + unsigned long value; + + i2c_begin(); + + buf[0] = MAS_DATA_WRITE; + buf[1] = MAS_CMD_READ_IC_VER; + buf[2] = 0; + + /* send read command */ + if (i2c_write(MAS_DEV_WRITE,buf,3)) + { + ret = -1; + } + else + { + if(mas_devread(&value, 1)) + { + ret = -2; + } + else + { + ret = value; + } + } + + i2c_end(); + return ret; +} + #endif diff --git a/firmware/drivers/mas.h b/firmware/drivers/mas.h index 71604fb..b2c164d 100644 --- a/firmware/drivers/mas.h +++ b/firmware/drivers/mas.h @@ -109,5 +109,6 @@ int mas_direct_config_read(unsigned char reg); int mas_direct_config_write(unsigned char reg, unsigned int val); int mas_codec_writereg(int reg, unsigned int val); int mas_codec_readreg(int reg); +unsigned long mas_readver(void); #endif |