summaryrefslogtreecommitdiff
path: root/fw/fe310/eos/dev/aon.c
diff options
context:
space:
mode:
Diffstat (limited to 'fw/fe310/eos/dev/aon.c')
-rw-r--r--fw/fe310/eos/dev/aon.c71
1 files changed, 62 insertions, 9 deletions
diff --git a/fw/fe310/eos/dev/aon.c b/fw/fe310/eos/dev/aon.c
index 7e4f5ec..abf75d3 100644
--- a/fw/fe310/eos/dev/aon.c
+++ b/fw/fe310/eos/dev/aon.c
@@ -7,24 +7,62 @@
#include "aon.h"
#define AON_EVE_REG 0
-#define AON_EVE_MASK 0x03
-
#define AON_NET_REG 0
-#define AON_NET_MASK 0x04
+#define AON_APP_REG 0
+
+#define AON_EVE_PWM_MASK 0x000000FF
+#define AON_EVE_PWR_MASK 0x00000300
+#define AON_EVE_LCD_MASK 0x00000400
+#define AON_NET_MASK 0x00000800
+#define AON_APP_MASK 0x00001000
+
+void eos_aon_save4eve_pwm(uint8_t brightness) {
+ uint32_t reg;
+
+ reg = eos_aon_get_reg(AON_EVE_REG);
+ reg &= ~AON_EVE_PWM_MASK;
+ reg |= brightness;
+
+ eos_aon_set_reg(AON_EVE_REG, reg);
+}
+
+uint8_t eos_aon_load4eve_pwm(void) {
+ uint32_t reg;
+
+ reg = eos_aon_get_reg(AON_EVE_REG) & AON_EVE_PWM_MASK;
+ return reg;
+}
+
+void eos_aon_save4eve_pwr(uint8_t power_state) {
+ uint32_t reg;
+
+ reg = eos_aon_get_reg(AON_EVE_REG);
+ reg &= ~AON_EVE_PWR_MASK;
+ reg |= ((uint32_t)power_state << 8) & AON_EVE_PWR_MASK;
+
+ eos_aon_set_reg(AON_EVE_REG, reg);
+}
+
+uint8_t eos_aon_load4eve_pwr(void) {
+ uint32_t reg;
+
+ reg = eos_aon_get_reg(AON_EVE_REG) & AON_EVE_PWR_MASK;
+ reg = reg >> 8;
+ return reg;
+}
-void eos_aon_save4eve(uint8_t power_state) {
+void eos_aon_save4eve_lcd(int absent) {
uint32_t reg;
- power_state &= AON_EVE_MASK;
reg = eos_aon_get_reg(AON_EVE_REG);
- reg &= ~AON_EVE_MASK;
- reg |= power_state;
+ reg &= ~AON_EVE_LCD_MASK;
+ if (absent) reg |= AON_EVE_LCD_MASK;
eos_aon_set_reg(AON_EVE_REG, reg);
}
-uint8_t eos_aon_load4eve(void) {
- return (eos_aon_get_reg(AON_EVE_REG) & AON_EVE_MASK);
+int eos_aon_load4eve_lcd(void) {
+ return !!(eos_aon_get_reg(AON_EVE_REG) & AON_EVE_LCD_MASK);
}
void eos_aon_save4net(int absent) {
@@ -39,4 +77,19 @@ void eos_aon_save4net(int absent) {
int eos_aon_load4net(void) {
return !!(eos_aon_get_reg(AON_NET_REG) & AON_NET_MASK);
+}
+
+void eos_aon_save4app(int ctp_sel) {
+ uint32_t reg;
+
+ reg = eos_aon_get_reg(AON_APP_REG);
+ reg &= ~AON_APP_MASK;
+ if (ctp_sel) reg |= AON_APP_MASK;
+
+ eos_aon_set_reg(AON_APP_REG, reg);
+
+}
+
+int eos_aon_load4app(void) {
+ return !!(eos_aon_get_reg(AON_APP_REG) & AON_APP_MASK);
} \ No newline at end of file