1.1 --- a/pkg/devices/lib/rtc/include/rtc-x1600.h Fri Nov 17 14:09:08 2023 +0100
1.2 +++ b/pkg/devices/lib/rtc/include/rtc-x1600.h Fri Nov 17 14:09:35 2023 +0100
1.3 @@ -44,6 +44,7 @@
1.4 uint32_t read_checked(unsigned reg);
1.5 void wait();
1.6 void write_enable();
1.7 + void _power_down();
1.8
1.9 public:
1.10 explicit Rtc_x1600_chip(l4_addr_t addr, Cpm_x1600_chip *cpm = NULL);
2.1 --- a/pkg/devices/lib/rtc/src/x1600.cc Fri Nov 17 14:09:08 2023 +0100
2.2 +++ b/pkg/devices/lib/rtc/src/x1600.cc Fri Nov 17 14:09:35 2023 +0100
2.3 @@ -255,15 +255,7 @@
2.4 }
2.5
2.6 void
2.7 -Rtc_x1600_chip::hibernate()
2.8 -{
2.9 - alarm_enable();
2.10 - wakeup_alarm_enable();
2.11 - power_down();
2.12 -}
2.13 -
2.14 -void
2.15 -Rtc_x1600_chip::power_down()
2.16 +Rtc_x1600_chip::_power_down()
2.17 {
2.18 /* Set CPU frequency to L2 cache frequency before powering down. This is
2.19 apparently necessary according to the X1600 manual. */
2.20 @@ -275,6 +267,21 @@
2.21 _regs[Hibernate_control] = _regs[Hibernate_control] | Hibernate_power_down;
2.22 }
2.23
2.24 +void
2.25 +Rtc_x1600_chip::hibernate()
2.26 +{
2.27 + alarm_enable();
2.28 + wakeup_alarm_enable();
2.29 + _power_down();
2.30 +}
2.31 +
2.32 +void
2.33 +Rtc_x1600_chip::power_down()
2.34 +{
2.35 + wakeup_alarm_disable();
2.36 + _power_down();
2.37 +}
2.38 +
2.39
2.40
2.41 // C language interface functions.