From 7d0a133d009f623ec724b9cea6a317933562f744 Mon Sep 17 00:00:00 2001 From: d0k3 Date: Thu, 23 Nov 2017 14:33:09 +0100 Subject: [PATCH] Fixed I2C_init() code (thanks @profi200) --- arm9/source/godmode.c | 3 +++ arm9/source/system/i2c.c | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/arm9/source/godmode.c b/arm9/source/godmode.c index c48dd3d..1c117c8 100644 --- a/arm9/source/godmode.c +++ b/arm9/source/godmode.c @@ -15,6 +15,7 @@ #include "rtc.h" #include "power.h" #include "vram0.h" +#include "i2c.h" #define N_PANES 2 @@ -1782,6 +1783,7 @@ u32 GodMode(int entrypoint) { return exit_mode; } + I2C_init(); InitSDCardFS(); AutoEmuNandBase(true); InitNandCrypto(entrypoint != ENTRY_B9S); @@ -2291,6 +2293,7 @@ u32 ScriptRunner(int entrypoint) { SplashInit("scriptrunner mode"); u64 timer = timer_start(); + I2C_init(); InitSDCardFS(); AutoEmuNandBase(true); InitNandCrypto(entrypoint != ENTRY_B9S); diff --git a/arm9/source/system/i2c.c b/arm9/source/system/i2c.c index 0c027d8..43969d9 100644 --- a/arm9/source/system/i2c.c +++ b/arm9/source/system/i2c.c @@ -136,15 +136,15 @@ static bool i2cStartTransfer(I2cDevice devId, u8 regAddr, bool read, vu8 *regsBa void I2C_init(void) { - i2cWaitBusy(i2cGetBusRegsBase(0)); + i2cWaitBusy(i2cGetBusRegsBase(0) + 1); REG_I2C1_CNTEX = 2; // ? REG_I2C1_SCL = 1280; // ? - i2cWaitBusy(i2cGetBusRegsBase(1)); + i2cWaitBusy(i2cGetBusRegsBase(1) + 1); REG_I2C2_CNTEX = 2; // ? REG_I2C2_SCL = 1280; // ? - i2cWaitBusy(i2cGetBusRegsBase(2)); + i2cWaitBusy(i2cGetBusRegsBase(2) + 1); REG_I2C3_CNTEX = 2; // ? REG_I2C3_SCL = 1280; // ? }