diff --git a/include/arm11/hardware/i2c.h b/include/arm11/hardware/i2c.h index 4550f98..940adad 100644 --- a/include/arm11/hardware/i2c.h +++ b/include/arm11/hardware/i2c.h @@ -100,11 +100,35 @@ */ bool I2C_writeReg(I2cDevice devId, u8 regAddr, u8 data); -u8 i2cmcu_readreg_hid_irq(void); -u8 i2cmcu_readreg_hid_held(void); -bool i2cmcu_lcd_poweron(void); -bool i2cmcu_lcd_backlight_poweron(void); -bool i2cmcu_lcd_poweroff(void); + +static inline u8 i2cmcu_readreg_hid_irq(void) +{ + u8 data; + if(!I2C_readRegBuf(I2C_DEV_MCU, 0x10, &data, 1)) return 0; + return data; +} + +static inline u8 i2cmcu_readreg_hid_held(void) +{ + u8 data[19]; + if(!I2C_readRegBuf(I2C_DEV_MCU, 0x7F, data, sizeof(data))) return 0; + return data[18]; +} + +static inline bool i2cmcu_lcd_poweron(void) +{ + return I2C_writeReg(I2C_DEV_MCU, 0x22, 1<<1); // bit1 = lcd power enable for both screens +} + +static inline bool i2cmcu_lcd_backlight_poweron(void) +{ + return I2C_writeReg(I2C_DEV_MCU, 0x22, 1<<5 | 1<<3); // bit3 = lower screen, bit5 = upper +} + +static bool i2cmcu_lcd_poweroff(void) +{ + return I2C_writeReg(I2C_DEV_MCU, 0x22, 1); // bit0 = lcd power disable for both screens (also disabled backlight) +} #define MCU_HID_POWER_BUTTON_PRESSED (1u) #define MCU_HID_POWER_BUTTON_LONG_PRESSED (1u<<1) diff --git a/include/arm11/hardware/timer.h b/include/arm11/hardware/timer.h index ec3d997..a7338cd 100644 --- a/include/arm11/hardware/timer.h +++ b/include/arm11/hardware/timer.h @@ -63,11 +63,14 @@ /** * @brief Halts the CPU for the specified number of ticks. - * Use the macro below for a milliseconds version. + * Use the function below for a milliseconds version. * * @param[in] ticks The number of ticks to sleep. */ void TIMER_sleepTicks(u32 ticks); // Sleeps ms milliseconds. ms can be up to 32000. -#define TIMER_sleepMs(ms) TIMER_sleepTicks(TIMER_FREQ(0, 1000.0) * (ms)) +static inline void TIMER_sleepMs(u32 ms) +{ + TIMER_sleepTicks(TIMER_FREQ(0, 1000.0) * ms); +} diff --git a/source/arm11/hardware/i2c.c b/source/arm11/hardware/i2c.c index b746f7f..746856a 100644 --- a/source/arm11/hardware/i2c.c +++ b/source/arm11/hardware/i2c.c @@ -232,34 +232,3 @@ { return I2C_writeRegBuf(devId, regAddr, &data, 1); } - -u8 i2cmcu_readreg_hid_irq(void) -{ - u8 data; - if(!I2C_readRegBuf(I2C_DEV_MCU, 0x10, &data, 1)) return 0; - return data; -} - -u8 i2cmcu_readreg_hid_held(void) -{ - u8 data[19]; - if(!I2C_readRegBuf(I2C_DEV_MCU, 0x7F, data, sizeof(data))) return 0; - return data[18]; -} - -// aka i2cmcu_write_reg0x20_0x22 -bool i2cmcu_lcd_poweron(void) -{ - return I2C_writeReg(I2C_DEV_MCU, 0x22, 2); // bit1 = lcd power enable for both screens -} - -// aka i2cmcu_write_reg0x20_0x22_2 -bool i2cmcu_lcd_backlight_poweron(void) -{ - return I2C_writeReg(I2C_DEV_MCU, 0x22, 0x28); // bit3 = lower screen, bit5 = upper -} - -bool i2cmcu_lcd_poweroff(void) -{ - return I2C_writeReg(I2C_DEV_MCU, 0x22, 1); // bit0 = lcd power disable for both screens (also disabled backlight) -}