Merge pull request #2682 from agross-korg/devmode-ram-loader-fix

da1469x: Increase size of loadable binaries in development mode
diff --git a/hw/mcu/dialog/da1469x/src/hal_gpio.c b/hw/mcu/dialog/da1469x/src/hal_gpio.c
index 06ab25b..2b3b1a8 100644
--- a/hw/mcu/dialog/da1469x/src/hal_gpio.c
+++ b/hw/mcu/dialog/da1469x/src/hal_gpio.c
@@ -477,17 +477,19 @@
         return;
     }
 
-    /* Save pins states and their latched values */
-    g_mcu_gpio_data_latch_state[0] = GPIO->P0_DATA_REG;
-    g_mcu_gpio_data_latch_state[1] = GPIO->P1_DATA_REG;
+    if (da1469x_pd_get_ref_cnt(MCU_PD_DOMAIN_COM) == 1) {
+        /* Save pins states and their latched values */
+        g_mcu_gpio_data_latch_state[0] = GPIO->P0_DATA_REG;
+        g_mcu_gpio_data_latch_state[1] = GPIO->P1_DATA_REG;
 
-    g_mcu_gpio_latch_state[0] = CRG_TOP->P0_PAD_LATCH_REG;
-    g_mcu_gpio_latch_state[1] = CRG_TOP->P1_PAD_LATCH_REG;
+        g_mcu_gpio_latch_state[0] = CRG_TOP->P0_PAD_LATCH_REG;
+        g_mcu_gpio_latch_state[1] = CRG_TOP->P1_PAD_LATCH_REG;
 
-    da1469x_retreg_update(g_mcu_gpio_retained, g_mcu_gpio_retained_num);
+        da1469x_retreg_update(g_mcu_gpio_retained, g_mcu_gpio_retained_num);
 
-    CRG_TOP->P0_RESET_PAD_LATCH_REG = CRG_TOP_P0_PAD_LATCH_REG_P0_LATCH_EN_Msk;
-    CRG_TOP->P1_RESET_PAD_LATCH_REG = CRG_TOP_P1_PAD_LATCH_REG_P1_LATCH_EN_Msk;
+        CRG_TOP->P0_RESET_PAD_LATCH_REG = CRG_TOP_P0_PAD_LATCH_REG_P0_LATCH_EN_Msk;
+        CRG_TOP->P1_RESET_PAD_LATCH_REG = CRG_TOP_P1_PAD_LATCH_REG_P1_LATCH_EN_Msk;
+    }
 
     da1469x_pd_release(MCU_PD_DOMAIN_COM);
 #endif
@@ -503,13 +505,15 @@
 
     da1469x_pd_acquire(MCU_PD_DOMAIN_COM);
 
-    da1469x_retreg_restore(g_mcu_gpio_retained, g_mcu_gpio_retained_num);
+    if (da1469x_pd_get_ref_cnt(MCU_PD_DOMAIN_COM) == 1) {
+        da1469x_retreg_restore(g_mcu_gpio_retained, g_mcu_gpio_retained_num);
 
-    /* Set pins states to their latched values */
-    GPIO->P0_DATA_REG = g_mcu_gpio_data_latch_state[0];
-    GPIO->P1_DATA_REG = g_mcu_gpio_data_latch_state[1];
+        /* Set pins states to their latched values */
+        GPIO->P0_DATA_REG = g_mcu_gpio_data_latch_state[0];
+        GPIO->P1_DATA_REG = g_mcu_gpio_data_latch_state[1];
 
-    CRG_TOP->P0_PAD_LATCH_REG = g_mcu_gpio_latch_state[0];
-    CRG_TOP->P1_PAD_LATCH_REG = g_mcu_gpio_latch_state[1];
+        CRG_TOP->P0_PAD_LATCH_REG = g_mcu_gpio_latch_state[0];
+        CRG_TOP->P1_PAD_LATCH_REG = g_mcu_gpio_latch_state[1];
+    }
 #endif
 }