MCU service consistency and a couple more functions (#381)

Also added MCUHWC_GetFwVerHigh and MCUHWC_GetFwVerLow
This commit is contained in:
Joel 2018-01-01 09:42:46 -06:00 committed by fincs
parent c941b0d2d2
commit 3bbd2dca16
2 changed files with 58 additions and 18 deletions

View File

@ -26,7 +26,7 @@ void mcuHwcExit(void);
* @param data Pointer to write the data to.
* @param size Size of data to be read
*/
Result mcuHwcReadRegister(u8 reg, void *data, u32 size);
Result MCUHWC_ReadRegister(u8 reg, void *data, u32 size);
/**
* @brief Writes data to a i2c device3 register
@ -34,40 +34,52 @@ Result mcuHwcReadRegister(u8 reg, void *data, u32 size);
* @param data Pointer to write the data to.
* @param size Size of data to be written
*/
Result mcuHwcWriteRegister(u8 reg, const void *data, u32 size);
Result MCUHWC_WriteRegister(u8 reg, const void *data, u32 size);
/**
* @brief Gets the battery voltage
* @param voltage Pointer to write the battery voltage to.
*/
Result mcuHwcGetBatteryVoltage(u8 *voltage);
Result MCUHWC_GetBatteryVoltage(u8 *voltage);
/**
* @brief Gets the battery level
* @param level Pointer to write the current battery level to.
*/
Result mcuHwcGetBatteryLevel(u8 *level);
Result MCUHWC_GetBatteryLevel(u8 *level);
/**
* @brief Gets the sound slider level
* @param level Pointer to write the slider level to.
*/
Result mcuHwcGetSoundSliderLevel(u8 *level);
Result MCUHWC_GetSoundSliderLevel(u8 *level);
/**
* @brief Sets Wifi LED state
* @param state State of Wifi LED. (True/False)
*/
Result mcuHwcSetWifiLedState(bool state);
Result MCUHWC_SetWifiLedState(bool state);
/**
* @brief Sets Power LED state
* @param state powerLedState State of power LED.
*/
Result mcuHwcSetPowerLedState(powerLedState state);
Result MCUHWC_SetPowerLedState(powerLedState state);
/**
* @brief Gets 3d slider level
* @param level Pointer to write 3D slider level to.
*/
Result mcuHwcGet3dSliderLevel(u8 *level);
Result MCUHWC_Get3dSliderLevel(u8 *level);
/**
* @brief Gets the major MCU firmware version
* @param out Pointer to write the major firmware version to.
*/
Result MCUHWC_GetFwVerHigh(u8 *out);
/**
* @brief Gets the minor MCU firmware version
* @param out Pointer to write the minor firmware version to.
*/
Result MCUHWC_GetFwVerLow(u8 *out);

View File

@ -18,7 +18,7 @@ void mcuHwcExit(void)
svcCloseHandle(mcuHwcHandle);
}
Result mcuHwcReadRegister(u8 reg, void* data, u32 size)
Result MCUHWC_ReadRegister(u8 reg, void* data, u32 size)
{
Result ret = 0;
u32 *cmdbuf = getThreadCommandBuffer();
@ -34,7 +34,7 @@ Result mcuHwcReadRegister(u8 reg, void* data, u32 size)
return (Result)cmdbuf[1];
}
Result mcuHwcWriteRegister(u8 reg, const void *data, u32 size)
Result MCUHWC_WriteRegister(u8 reg, const void *data, u32 size)
{
Result ret = 0;
u32 *cmdbuf = getThreadCommandBuffer();
@ -50,7 +50,7 @@ Result mcuHwcWriteRegister(u8 reg, const void *data, u32 size)
return (Result)cmdbuf[1];
}
Result mcuHwcGetBatteryVoltage(u8 *voltage)
Result MCUHWC_GetBatteryVoltage(u8 *voltage)
{
Result ret = 0;
u32 *cmdbuf = getThreadCommandBuffer();
@ -64,7 +64,7 @@ Result mcuHwcGetBatteryVoltage(u8 *voltage)
return (Result)cmdbuf[1];
}
Result mcuHwcGetBatteryLevel(u8 *level)
Result MCUHWC_GetBatteryLevel(u8 *level)
{
Result ret = 0;
u32 *cmdbuf = getThreadCommandBuffer();
@ -78,7 +78,7 @@ Result mcuHwcGetBatteryLevel(u8 *level)
return (Result)cmdbuf[1];
}
Result mcuHwcSetPowerLedState(powerLedState state)
Result MCUHWC_SetPowerLedState(powerLedState state)
{
Result ret = 0;
u32 *cmdbuf = getThreadCommandBuffer();
@ -91,7 +91,7 @@ Result mcuHwcSetPowerLedState(powerLedState state)
return (Result)cmdbuf[1];
}
Result mcuHwcSetWifiLedState(bool state)
Result MCUHWC_SetWifiLedState(bool state)
{
Result ret = 0;
u32 *cmdbuf = getThreadCommandBuffer();
@ -104,7 +104,7 @@ Result mcuHwcSetWifiLedState(bool state)
return (Result)cmdbuf[1];
}
Result mcuHwcGetSoundSliderLevel(u8 *level)
Result MCUHWC_GetSoundSliderLevel(u8 *level)
{
Result ret = 0;
u32 *cmdbuf = getThreadCommandBuffer();
@ -118,7 +118,35 @@ Result mcuHwcGetSoundSliderLevel(u8 *level)
return (Result)cmdbuf[1];
}
Result mcuHwcGet3dSliderLevel(u8 *level)
Result MCUHWC_Get3dSliderLevel(u8 *level)
{
return mcuHwcReadRegister(8, &level, 1);
}
return MCUHWC_ReadRegister(8, &level, 1);
}
Result MCUHWC_GetFwVerHigh(u8 *out)
{
Result ret = 0;
u32 *cmdbuf = getThreadCommandBuffer();
cmdbuf[0] = IPC_MakeHeader(0x10,0,0); // 0x100000
if(R_FAILED(ret = svcSendSyncRequest(mcuHwcHandle)))return ret;
*out = cmdbuf[2];
return (Result)cmdbuf[1];
}
Result MCUHWC_GetFwVerLow(u8 *out)
{
Result ret = 0;
u32 *cmdbuf = getThreadCommandBuffer();
cmdbuf[0] = IPC_MakeHeader(0x11,0,0); // 0x110000
if(R_FAILED(ret = svcSendSyncRequest(mcuHwcHandle)))return ret;
*out = cmdbuf[2];
return (Result)cmdbuf[1];
}