summaryrefslogtreecommitdiff
path: root/keyboard/hhkb_rn42/rn42/battery.h
diff options
context:
space:
mode:
authortmk2014-09-04 05:30:00 +0900
committertmk2014-09-04 05:30:00 +0900
commit02939ab1d831ab7bb02edb28cb0b21fb61bced56 (patch)
treefe55ff730af3c2b4e13a4077725f965d651e3ad5 /keyboard/hhkb_rn42/rn42/battery.h
parent807ed33a9a29ee3c5248226d0e865d0580d7eebc (diff)
Add battery management
Diffstat (limited to 'keyboard/hhkb_rn42/rn42/battery.h')
-rw-r--r--keyboard/hhkb_rn42/rn42/battery.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/keyboard/hhkb_rn42/rn42/battery.h b/keyboard/hhkb_rn42/rn42/battery.h
new file mode 100644
index 000000000..60fc8adfc
--- /dev/null
+++ b/keyboard/hhkb_rn42/rn42/battery.h
@@ -0,0 +1,34 @@
+#ifndef POWER_H
+#define POWER_H
+
+#include <stdint.h>
+#include <stdbool.h>
+
+typedef enum {
+ FULL_CHARGED,
+ CHARGING,
+ DISCHARGING,
+ LOW_VOLTAGE,
+} battery_status_t;
+
+typedef enum {
+ LED_CHARGER = 0,
+ LED_ON,
+ LED_OFF,
+ LED_TOGGLE,
+} battery_led_t;
+
+/* Battery API */
+void battery_init(void);
+void battery_led(battery_led_t val);
+bool battery_charging(void);
+uint16_t battery_voltage(void);
+battery_status_t battery_status(void);
+
+#define BATTERY_VOLTAGE_LOW_LIMIT 3500
+#define BATTERY_VOLTAGE_LOW_RECOVERY 3700
+// ADC offset:16, resolution:5mV
+#define BATTERY_ADC_OFFSET 16
+#define BATTERY_ADC_RESOLUTION 5
+
+#endif