diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_temp.cpp b/Source/rewrite-hoc-clk/sysmodule/src/board/board_temp.cpp
new file mode 100644
index 00000000..d102241a
--- /dev/null
+++ b/Source/rewrite-hoc-clk/sysmodule/src/board/board_temp.cpp
@@ -0,0 +1,61 @@
+/*
+ * 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
+#include
+#include
+#include
+#include "board.hpp"
+
+namespace board {
+
+ u32 GetTemperatureMilli(SysClkThermalSensor sensor) {
+ u32 millis = 0;
+
+ if (sensor == SysClkThermalSensor_SOC) {
+ millis = tmp451TempSoc();
+ } else if (sensor == SysClkThermalSensor_PCB) {
+ millis = tmp451TempPcb();
+ } else if (sensor == SysClkThermalSensor_Skin) {
+ if (HOSSVC_HAS_TC) {
+ Result rc;
+ rc = tcGetSkinTemperatureMilliC(&millis);
+ ASSERT_RESULT_OK(rc, "tcGetSkinTemperatureMilliC");
+ }
+ } else if (sensor == HorizonOCThermalSensor_Battery) {
+ batteryInfoGetChargeInfo(&info);
+ millis = batteryInfoGetTemperatureMiliCelsius(&info);
+ /* } else if (sensor == HorizonOCThermalSensor_PMIC) {
+ millis = 50000; */
+ } else {
+ ASSERT_ENUM_VALID(SysClkThermalSensor, sensor);
+ }
+
+ return std::max(0, millis);
+ }
+
+}
diff --git a/Source/rewrite-hoc-clk/sysmodule/src/board/board_temp.hpp b/Source/rewrite-hoc-clk/sysmodule/src/board/board_temp.hpp
new file mode 100644
index 00000000..16818b60
--- /dev/null
+++ b/Source/rewrite-hoc-clk/sysmodule/src/board/board_temp.hpp
@@ -0,0 +1,35 @@
+/*
+ * 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
+#include
+
+namespace board {
+
+
+
+}