summaryrefslogtreecommitdiff
path: root/fw
diff options
context:
space:
mode:
authorUros Majstorovic <majstor@majstor.org>2024-09-04 20:51:36 +0200
committerUros Majstorovic <majstor@majstor.org>2024-09-04 20:51:36 +0200
commit16d2bc9cc097da10dcadd2fb7425e20da4834a3a (patch)
tree5f652d595dd5f2180468b1a639e9c1b743505f79 /fw
parenteef5b5504018cfef386dab7e088c12b619039413 (diff)
power driver fix
Diffstat (limited to 'fw')
-rw-r--r--fw/fe310/eos/net/pwr.c8
-rw-r--r--fw/fe310/eos/soc/pwr.c13
-rw-r--r--fw/fe310/eos/soc/pwr.h2
3 files changed, 9 insertions, 14 deletions
diff --git a/fw/fe310/eos/net/pwr.c b/fw/fe310/eos/net/pwr.c
index 89f1817..308a05a 100644
--- a/fw/fe310/eos/net/pwr.c
+++ b/fw/fe310/eos/net/pwr.c
@@ -8,8 +8,10 @@
#include "soc/pwr.h"
#include "soc/spi.h"
#include "dev/spi.h"
+#include "dev/net.h"
#include "dev/lcd.h"
#include "eve/eve.h"
+#include "dev/flash.h"
#include "pwr.h"
@@ -51,7 +53,11 @@ static void pwr_handle_btn(unsigned char type, unsigned char *buffer, uint16_t l
eos_spi_deselect();
}
- rv = eos_pwr_sleep();
+ rv = eos_net_sleep(1000);
+
+ eos_flash_norm();
+
+ eos_pwr_sleep();
}
void eos_pwr_net_init(void) {
diff --git a/fw/fe310/eos/soc/pwr.c b/fw/fe310/eos/soc/pwr.c
index 970db8b..db9f273 100644
--- a/fw/fe310/eos/soc/pwr.c
+++ b/fw/fe310/eos/soc/pwr.c
@@ -6,8 +6,6 @@
#include "eos.h"
#include "timer.h"
-#include "dev/flash.h"
-#include "dev/net.h"
#include "pwr.h"
@@ -34,18 +32,9 @@ uint8_t eos_pwr_reset_cause(void) {
return (AON_REG(AON_PMUCAUSE) >> 8) & 0xff;
}
-int eos_pwr_sleep(void) {
- int rv;
-
- rv = eos_net_sleep(1000);
- if (rv) return rv;
-
- eos_flash_norm();
-
+void eos_pwr_sleep(void) {
AON_REG(AON_PMUKEY) = 0x51F15E;
AON_REG(AON_PMUSLEEP) = 1;
-
- return EOS_OK;
}
void eos_pwr_wake_at(uint32_t msec) {
diff --git a/fw/fe310/eos/soc/pwr.h b/fw/fe310/eos/soc/pwr.h
index 1a0d17a..0af4c1b 100644
--- a/fw/fe310/eos/soc/pwr.h
+++ b/fw/fe310/eos/soc/pwr.h
@@ -11,6 +11,6 @@
int eos_pwr_init(uint8_t wakeup_cause);
uint8_t eos_pwr_wakeup_cause(void);
uint8_t eos_pwr_reset_cause(void);
-int eos_pwr_sleep(void);
+void eos_pwr_sleep(void);
void eos_pwr_wake_at(uint32_t msec);
void eos_pwr_wake_disable(void);