Added more mcuHwc functions. (#378)

This commit is contained in:
Kartik 2017-11-16 04:48:07 +05:30 committed by fincs
parent 8e2d82ae9a
commit 65673fd3f3
2 changed files with 61 additions and 2 deletions

View File

@ -4,6 +4,16 @@
*/
#pragma once
typedef enum
{
LED_NORMAL = 1, ///< The normal mode of the led
LED_SLEEP_MODE, ///< The led pulses slowly as it does in the sleep mode
LED_OFF, ///< Switch off power led
LED_RED, ///< Red state of the led
LED_BLUE, ///< Blue state of the led
LED_BLINK_RED, ///< Blinking red state of power led and notification led
}powerLedState;
/// Initializes mcuHwc.
Result mcuHwcInit(void);
@ -11,7 +21,7 @@ Result mcuHwcInit(void);
void mcuHwcExit(void);
/**
* @brief Reads data from a mcuHwc Register
* @brief Reads data from an i2c device3 register
* @param reg Register number. See https://www.3dbrew.org/wiki/I2C_Registers#Device_3 for more info
* @param data Pointer to write the data to.
* @param size Size of data to be read
@ -19,7 +29,7 @@ void mcuHwcExit(void);
Result mcuHwcReadRegister(u8 reg, void *data, u32 size);
/**
* @brief Writes data to a mcuHwc Register
* @brief Writes data to a i2c device3 register
* @param reg Register number. See https://www.3dbrew.org/wiki/I2C_Registers#Device_3 for more info
* @param data Pointer to write the data to.
* @param size Size of data to be written
@ -43,3 +53,21 @@ Result mcuHwcGetBatteryLevel(u8 *level);
* @param level Pointer to write the slider level to.
*/
Result mcuHwcGetSoundSliderLevel(u8 *level);
/**
* @brief Sets Wifi LED state
* @param state State of Wifi LED. (True/False)
*/
Result mcuHwcSetWifiLedState(bool state);
/**
* @brief Sets Power LED state
* @param state powerLedState State of power LED.
*/
Result mcuHwcSetPowerLedState(powerLedState state);
/**
* @brief Gets 3d slider level
* @param level Pointer to write 3D slider level to.
*/
Result mcuHwcGet3dSliderLevel(u8 *level);

View File

@ -78,6 +78,32 @@ Result mcuHwcGetBatteryLevel(u8 *level)
return (Result)cmdbuf[1];
}
Result mcuHwcSetPowerLedState(powerLedState state)
{
Result ret = 0;
u32 *cmdbuf = getThreadCommandBuffer();
cmdbuf[0] = IPC_MakeHeader(0x6,2,0); // 0x60040
cmdbuf[1] = state;
if(R_FAILED(ret = svcSendSyncRequest(mcuHwcHandle)))return ret;
return (Result)cmdbuf[1];
}
Result mcuHwcSetWifiLedState(bool state)
{
Result ret = 0;
u32 *cmdbuf = getThreadCommandBuffer();
cmdbuf[0] = IPC_MakeHeader(0x7,0,0); // 0x70000
cmdbuf[1] = state;
if(R_FAILED(ret = svcSendSyncRequest(mcuHwcHandle)))return ret;
return (Result)cmdbuf[1];
}
Result mcuHwcGetSoundSliderLevel(u8 *level)
{
Result ret = 0;
@ -90,4 +116,9 @@ Result mcuHwcGetSoundSliderLevel(u8 *level)
*level = cmdbuf[2];
return (Result)cmdbuf[1];
}
Result mcuHwcGet3dSliderLevel(u8 *level)
{
return mcuHwcReadRegister(8, &level, 1);
}