summaryrefslogtreecommitdiffstats
path: root/keyboard/hhkb_rn42/rn42/battery.h
blob: 180d4dcfaaaac19c34da7a753f592b79e9be04d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#ifndef POWER_H
#define POWER_H

#include <stdint.h>
#include <stdbool.h>

typedef enum {
    FULL_CHARGED,
    CHARGING,
    DISCHARGING,
    LOW_VOLTAGE,
    UNKNOWN,
} 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