mirror of
https://github.com/d0k3/GodMode9.git
synced 2025-06-26 13:42:47 +00:00
Wait 3ms for i2c reads/writes to workaround N3DS MCU bugs
This commit is contained in:
parent
dedf0f8327
commit
093438413b
@ -1,5 +1,7 @@
|
|||||||
#include "i2c.h"
|
#include "i2c.h"
|
||||||
|
|
||||||
|
void wait(u64 amount);
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
static const struct { u8 bus_id, reg_addr; } dev_data[] = {
|
static const struct { u8 bus_id, reg_addr; } dev_data[] = {
|
||||||
@ -93,6 +95,9 @@ u8 i2cReadRegister(u8 dev_id, u8 reg) {
|
|||||||
*i2cGetCntReg(bus_id) = 0xC5;
|
*i2cGetCntReg(bus_id) = 0xC5;
|
||||||
i2cWaitBusy(bus_id);
|
i2cWaitBusy(bus_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wait(3ULL);
|
||||||
|
|
||||||
return 0xff;
|
return 0xff;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,6 +130,9 @@ bool i2cReadRegisterBuffer(unsigned int dev_id, int reg, u8* buffer, size_t buf_
|
|||||||
*i2cGetCntReg(bus_id) = 0xE1;
|
*i2cGetCntReg(bus_id) = 0xE1;
|
||||||
i2cWaitBusy(bus_id);
|
i2cWaitBusy(bus_id);
|
||||||
buffer[buf_size - 1] = *i2cGetDataReg(bus_id);
|
buffer[buf_size - 1] = *i2cGetDataReg(bus_id);
|
||||||
|
|
||||||
|
wait(3ULL);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,5 +153,7 @@ bool i2cWriteRegister(u8 dev_id, u8 reg, u8 data) {
|
|||||||
i2cWaitBusy(bus_id);
|
i2cWaitBusy(bus_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wait(3ULL);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user