summaryrefslogtreecommitdiff
path: root/ports/stm32/sdram.c
diff options
context:
space:
mode:
Diffstat (limited to 'ports/stm32/sdram.c')
-rw-r--r--ports/stm32/sdram.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/ports/stm32/sdram.c b/ports/stm32/sdram.c
index 4615c4fe1..4ca79f270 100644
--- a/ports/stm32/sdram.c
+++ b/ports/stm32/sdram.c
@@ -259,7 +259,7 @@ static void sdram_init_seq(SDRAM_HandleTypeDef
void sdram_enter_low_power(void) {
// Enter self-refresh mode.
- // In self-refresh mode the SDRAM retains data with external clocking.
+ // In self-refresh mode the SDRAM retains data without external clocking.
FMC_SDRAM_DEVICE->SDCMR |= (FMC_SDRAM_CMD_SELFREFRESH_MODE | // Command Mode
FMC_SDRAM_CMD_TARGET_BANK | // Command Target
(0 << 5U) | // Auto Refresh Number -1
@@ -276,6 +276,14 @@ void sdram_leave_low_power(void) {
(0 << 9U)); // Mode Register Definition
}
+void sdram_enter_power_down(void) {
+ // Enter power-down mode.
+ FMC_SDRAM_DEVICE->SDCMR |= (FMC_SDRAM_CMD_POWERDOWN_MODE | // Command Mode
+ FMC_SDRAM_CMD_TARGET_BANK | // Command Target
+ (0 << 5U) | // Auto Refresh Number -1
+ (0 << 9U)); // Mode Register Definition
+}
+
#if __GNUC__ >= 11
// Prevent array bounds warnings when accessing SDRAM_START_ADDRESS as a memory pointer.
#pragma GCC diagnostic push