diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_profile.cpp b/Source/rewrite-hoc-clk/sysmodule/src/board/board_profile.cpp new file mode 100644 index 00000000..8c86828f --- /dev/null +++ b/Source/rewrite-hoc-clk/sysmodule/src/board/board_profile.cpp @@ -0,0 +1,56 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + +#include +#include +#include + +namespace board { + + SysClkProfile GetProfile() { + u32 mode = 0; + Result rc = apmExtGetPerformanceMode(&mode); + ASSERT_RESULT_OK(rc, "apmExtGetPerformanceMode"); + + if (mode) { + return SysClkProfile_Docked; + } + + PsmChargerType chargerType; + + rc = psmGetChargerType(&chargerType); + ASSERT_RESULT_OK(rc, "psmGetChargerType"); + + if (chargerType == PsmChargerType_EnoughPower) { + return SysClkProfile_HandheldChargingOfficial; + } else if (chargerType == PsmChargerType_LowPower) { + return SysClkProfile_HandheldChargingUSB; + } + + return SysClkProfile_Handheld; + } + +} diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_profile.hpp b/Source/rewrite-hoc-clk/sysmodule/src/board/board_profile.hpp new file mode 100644 index 00000000..a36d990b --- /dev/null +++ b/Source/rewrite-hoc-clk/sysmodule/src/board/board_profile.hpp @@ -0,0 +1,34 @@ +/* + * Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/* -------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * , , + * wrote this file. As long as you retain this notice you can do whatever you + * want with this stuff. If you meet any of us some day, and you think this + * stuff is worth it, you can buy us a beer in return. - The sys-clk authors + * -------------------------------------------------------------------------- + */ + +#pragma once +#include + +namespace board { + + SysClkProfile GetProfile(); + +}