Index: uspace/drv/time/cmos-rtc/cmos-rtc.c
===================================================================
--- uspace/drv/time/cmos-rtc/cmos-rtc.c	(revision 917797f1cec4a09619bf92bcb7aaec9ac4de9839)
+++ uspace/drv/time/cmos-rtc/cmos-rtc.c	(revision 3322d95e29bc0129633971c3a72532ca5f76ae29)
@@ -82,4 +82,6 @@
 static rtc_t *dev_rtc(ddf_dev_t *dev);
 static rtc_t *fun_rtc(ddf_fun_t *fun);
+static int
+rtc_battery_status_get(ddf_fun_t *fun, battery_status_t *status);
 static int  rtc_time_get(ddf_fun_t *fun, struct tm *t);
 static int  rtc_time_set(ddf_fun_t *fun, struct tm *t);
@@ -120,5 +122,5 @@
 /** Battery powered device interface */
 static battery_dev_ops_t rtc_battery_dev_ops = {
-	.battery_status_get = NULL,
+	.battery_status_get = rtc_battery_status_get,
 	.battery_charge_level_get = NULL,
 };
@@ -503,4 +505,23 @@
 }
 
+/** Get the status of the real time clock battery
+ *
+ * @param fun    The RTC function
+ * @param status The status of the battery
+ *
+ * @return       EOK on success or a negative error code
+ */
+static int
+rtc_battery_status_get(ddf_fun_t *fun, battery_status_t *status)
+{
+	rtc_t *rtc = fun_rtc(fun);
+	const bool batt_ok = rtc_register_read(rtc, RTC_STATUS_D) &
+	    RTC_D_BATTERY_OK;
+
+	*status = batt_ok ? BATTERY_OK : BATTERY_LOW;
+
+	return EOK;
+}
+
 /** The dev_add callback of the rtc driver
  *
