]> Chaos Git - corbenik/corbenik.git/commitdiff
Misc cleanup
authorchaoskagami <chaos.kagami@gmail.com>
Fri, 8 Jul 2016 23:54:48 +0000 (19:54 -0400)
committerchaoskagami <chaos.kagami@gmail.com>
Fri, 8 Jul 2016 23:54:48 +0000 (19:54 -0400)
source/common.h
source/i2c.c [deleted file]
source/i2c.h [deleted file]
source/menu.c
source/screeninit.c

index 7c0845e09905ead7e271b192459e177e5d0ee5ac..46eedd1143df8d392e1b676ddcaa8aad7a01c214 100644 (file)
@@ -17,6 +17,4 @@
 #include "input.h"
 #include "patcher.h"
 
-#include "i2c.h"
-
 #endif
diff --git a/source/i2c.c b/source/i2c.c
deleted file mode 100644 (file)
index 16db5c8..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-#include "i2c.h"
-
-//-----------------------------------------------------------------------------
-
-static const struct
-{
-    uint8_t bus_id, reg_addr;
-} dev_data[] = {
-    { 0, 0x4A }, { 0, 0x7A }, { 0, 0x78 }, { 1, 0x4A }, { 1, 0x78 }, { 1, 0x2C }, { 1, 0x2E }, { 1, 0x40 },
-    { 1, 0x44 }, { 2, 0xD6 }, { 2, 0xD0 }, { 2, 0xD2 }, { 2, 0xA4 }, { 2, 0x9A }, { 2, 0xA0 },
-};
-
-uint8_t
-i2cGetDeviceBusId(uint8_t device_id)
-{
-    return dev_data[device_id].bus_id;
-}
-
-uint8_t
-i2cGetDeviceRegAddr(uint8_t device_id)
-{
-    return dev_data[device_id].reg_addr;
-}
-
-//-----------------------------------------------------------------------------
-
-static volatile uint8_t *const reg_data_addrs[] = {
-    (volatile uint8_t *)(I2C1_REG_OFF + I2C_REG_DATA), (volatile uint8_t *)(I2C2_REG_OFF + I2C_REG_DATA), (volatile uint8_t *)(I2C3_REG_OFF + I2C_REG_DATA),
-};
-
-volatile uint8_t *
-i2cGetDataReg(uint8_t bus_id)
-{
-    return reg_data_addrs[bus_id];
-}
-
-//-----------------------------------------------------------------------------
-
-static volatile uint8_t *const reg_cnt_addrs[] = {
-    (volatile uint8_t *)(I2C1_REG_OFF + I2C_REG_CNT), (volatile uint8_t *)(I2C2_REG_OFF + I2C_REG_CNT), (volatile uint8_t *)(I2C3_REG_OFF + I2C_REG_CNT),
-};
-
-volatile uint8_t *
-i2cGetCntReg(uint8_t bus_id)
-{
-    return reg_cnt_addrs[bus_id];
-}
-
-//-----------------------------------------------------------------------------
-
-void
-i2cWaitBusy(uint8_t bus_id)
-{
-    while (*i2cGetCntReg(bus_id) & 0x80)
-        ;
-}
-
-int
-i2cGetResult(uint8_t bus_id)
-{
-    i2cWaitBusy(bus_id);
-    return (*i2cGetCntReg(bus_id) >> 4) & 1;
-}
-
-void
-i2cStop(uint8_t bus_id, uint8_t arg0)
-{
-    *i2cGetCntReg(bus_id) = (arg0 << 5) | 0xC0;
-    i2cWaitBusy(bus_id);
-    *i2cGetCntReg(bus_id) = 0xC5;
-}
-
-//-----------------------------------------------------------------------------
-
-int
-i2cSelectDevice(uint8_t bus_id, uint8_t dev_reg)
-{
-    i2cWaitBusy(bus_id);
-    *i2cGetDataReg(bus_id) = dev_reg;
-    *i2cGetCntReg(bus_id) = 0xC2;
-    return i2cGetResult(bus_id);
-}
-
-int
-i2cSelectRegister(uint8_t bus_id, uint8_t reg)
-{
-    i2cWaitBusy(bus_id);
-    *i2cGetDataReg(bus_id) = reg;
-    *i2cGetCntReg(bus_id) = 0xC0;
-    return i2cGetResult(bus_id);
-}
-
-//-----------------------------------------------------------------------------
-
-uint8_t
-i2cReadRegister(uint8_t dev_id, uint8_t reg)
-{
-    uint8_t bus_id = i2cGetDeviceBusId(dev_id);
-    uint8_t dev_addr = i2cGetDeviceRegAddr(dev_id);
-
-    for (size_t i = 0; i < 8; i++) {
-        if (i2cSelectDevice(bus_id, dev_addr) && i2cSelectRegister(bus_id, reg)) {
-            if (i2cSelectDevice(bus_id, dev_addr | 1)) {
-                i2cWaitBusy(bus_id);
-                i2cStop(bus_id, 1);
-                i2cWaitBusy(bus_id);
-                return *i2cGetDataReg(bus_id);
-            }
-        }
-        *i2cGetCntReg(bus_id) = 0xC5;
-        i2cWaitBusy(bus_id);
-    }
-    return 0xff;
-}
-
-int
-i2cReadRegisterBuffer(unsigned int dev_id, int reg, uint8_t *buffer, size_t buf_size)
-{
-    uint8_t bus_id = i2cGetDeviceBusId(dev_id);
-    uint8_t dev_addr = i2cGetDeviceRegAddr(dev_id);
-
-    size_t j = 0;
-    while (!i2cSelectDevice(bus_id, dev_addr) || !i2cSelectRegister(bus_id, reg) || !i2cSelectDevice(bus_id, dev_addr | 1)) {
-        i2cWaitBusy(bus_id);
-        *i2cGetCntReg(bus_id) = 0xC5;
-        i2cWaitBusy(bus_id);
-        if (++j >= 8)
-            return 0;
-    }
-
-    if (buf_size != 1) {
-        for (size_t i = 0; i < buf_size - 1; i++) {
-            i2cWaitBusy(bus_id);
-            *i2cGetCntReg(bus_id) = 0xF0;
-            i2cWaitBusy(bus_id);
-            buffer[i] = *i2cGetDataReg(bus_id);
-        }
-    }
-
-    i2cWaitBusy(bus_id);
-    *i2cGetCntReg(bus_id) = 0xE1;
-    i2cWaitBusy(bus_id);
-    *buffer = *i2cGetDataReg(bus_id);
-    return 1;
-}
-
-int
-i2cWriteRegister(uint8_t dev_id, uint8_t reg, uint8_t data)
-{
-    uint8_t bus_id = i2cGetDeviceBusId(dev_id);
-    uint8_t dev_addr = i2cGetDeviceRegAddr(dev_id);
-
-    for (int i = 0; i < 8; i++) {
-        if (i2cSelectDevice(bus_id, dev_addr) && i2cSelectRegister(bus_id, reg)) {
-            i2cWaitBusy(bus_id);
-            *i2cGetDataReg(bus_id) = data;
-            *i2cGetCntReg(bus_id) = 0xC1;
-            i2cStop(bus_id, 0);
-            if (i2cGetResult(bus_id))
-                return 1;
-        }
-        *i2cGetCntReg(bus_id) = 0xC5;
-        i2cWaitBusy(bus_id);
-    }
-
-    return 0;
-}
diff --git a/source/i2c.h b/source/i2c.h
deleted file mode 100644 (file)
index e3e9f85..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef __I2C_H
-#define __I2C_H
-
-#include "common.h"
-
-#define I2C1_REG_OFF 0x10161000
-#define I2C2_REG_OFF 0x10144000
-#define I2C3_REG_OFF 0x10148000
-
-#define I2C_REG_DATA 0
-#define I2C_REG_CNT 1
-#define I2C_REG_CNTEX 2
-#define I2C_REG_SCL 4
-
-#define I2C_DEV_MCU 3
-#define I2C_DEV_GYRO 10
-#define I2C_DEV_IR 13
-
-uint8_t i2cGetDeviceBusId(uint8_t device_id);
-uint8_t i2cGetDeviceRegAddr(uint8_t device_id);
-
-volatile uint8_t *i2cGetDataReg(uint8_t bus_id);
-volatile uint8_t *i2cGetCntReg(uint8_t bus_id);
-
-void i2cWaitBusy(uint8_t bus_id);
-int i2cGetResult(uint8_t bus_id);
-uint8_t i2cGetData(uint8_t bus_id);
-void i2cStop(uint8_t bus_id, uint8_t arg0);
-
-int i2cSelectDevice(uint8_t bus_id, uint8_t dev_reg);
-int i2cSelectRegister(uint8_t bus_id, uint8_t reg);
-
-uint8_t i2cReadRegister(uint8_t dev_id, uint8_t reg);
-int i2cWriteRegister(uint8_t dev_id, uint8_t reg, uint8_t data);
-
-int i2cReadRegisterBuffer(unsigned int dev_id, int reg, uint8_t *buffer, size_t buf_size);
-
-#endif
index e589c73e83395429fbbd84db6886ec717afdfea1..1392b595fb290991428c69ca7e0ceb73a48834e6 100644 (file)
@@ -3,6 +3,8 @@
 #include "firm/headers.h"
 #include "std/unused.h"
 
+#include <ctr9/ctr_system.h>
+
 #define MAX_PATCHES ((FCRAM_SPACING / 2) / sizeof(struct options_s))
 struct options_s *patches = (struct options_s *)FCRAM_MENU_LOC;
 uint8_t *enable_list = (uint8_t *)FCRAM_PATCHLIST_LOC;
@@ -242,9 +244,8 @@ reset()
 
     // Reboot.
     fprintf(BOTTOM_SCREEN, "Rebooting system...\n");
-    i2cWriteRegister(I2C_DEV_MCU, 0x20, 1 << 2);
-    while (1)
-        ;
+
+    ctr_system_reset();
 }
 
 void
@@ -254,11 +255,10 @@ poweroff()
 
     fumount(); // Unmount SD.
 
-    // Reboot.
+    // Power off
     fprintf(BOTTOM_SCREEN, "Powering off system...\n");
-    i2cWriteRegister(I2C_DEV_MCU, 0x20, 1 << 0);
-    while (1)
-        ;
+
+    ctr_system_poweroff();
 }
 
 #if defined(CHAINLOADER) && CHAINLOADER == 1
index 81cc4c8f937a76d2c40d69d1c39e69e7ca65ad81..42689fce850c916dae4b52527b32e82beb3b597f 100644 (file)
@@ -1,5 +1,6 @@
+#include <ctr9/io.h>
+#include <ctr9/ctr_screen.h>
 #include "std/fs.h"
-#include "i2c.h"
 #include "patch_format.h"
 
 #define PDN_GPU_CNT (*(volatile uint8_t *)0x10141200)
@@ -20,10 +21,9 @@ screen_init()
         screenInitAddress[2] = 0x5F;
         *a11_entry = (uint32_t)screenInitAddress;
 
-        while (*a11_entry)
-            ;
+        while (*a11_entry);
 
         // Turn on backlight
-        i2cWriteRegister(I2C_DEV_MCU, 0x22, 0x2A);
+        ctr_screen_enable_backlight(CTR_SCREEN_BOTH);
     }
 }