Infineon: Rework custom UART pins, 20829 b0 rev support, fix known issues, v1.9.1-cypress
diff --git a/boot/cypress/MCUBootApp/main.c b/boot/cypress/MCUBootApp/main.c
index 926e36d..86f37fe 100644
--- a/boot/cypress/MCUBootApp/main.c
+++ b/boot/cypress/MCUBootApp/main.c
@@ -212,6 +212,23 @@
     return false;
 }
 
+static void DeepSleep_Prepare(void)
+{
+    static cy_stc_syspm_callback_params_t syspmSleepAppParams;
+    static cy_stc_syspm_callback_t syspmAppSleepCallbackHandler =
+        {
+            Cy_SCB_UART_DeepSleepCallback, CY_SYSPM_DEEPSLEEP, 0u, &syspmSleepAppParams,
+            NULL, NULL, 0};
+
+    syspmSleepAppParams.base = cy_retarget_io_uart_obj.base;
+    syspmSleepAppParams.context = (void *)&(cy_retarget_io_uart_obj.context);
+
+    if (!Cy_SysPm_RegisterCallback(&syspmAppSleepCallbackHandler)) {
+        BOOT_LOG_ERR("Failed to register syspmAppSleepCallbackHandler");
+        CY_ASSERT(false);
+    }
+}
+
 int main(void)
 {
     struct boot_rsp rsp = {};
@@ -221,7 +238,7 @@
 
 
     if (rc != CY_RSLT_SUCCESS) {
-        CY_ASSERT((bool)0);
+        CY_ASSERT(false);
         /* Loop forever... */
         while (true) {
             __WFI();
@@ -257,7 +274,7 @@
                              CY_RETARGET_IO_BAUDRATE);
 
     if (rc != CY_RSLT_SUCCESS) {
-        CY_ASSERT((bool)0);
+        CY_ASSERT(false);
         /* Loop forever... */
         while (true) {
             __WFI();
@@ -286,7 +303,7 @@
         /* Check service application completion status */
         if (check_service_app_status() != 0) {
             BOOT_LOG_ERR("Service application failed");
-            CY_ASSERT((bool)0);
+            CY_ASSERT(false);
             /* Loop forever... */
             while (true) {
                 __WFI();
@@ -331,6 +348,8 @@
         }
     }
 
+    DeepSleep_Prepare();
+
     while (true) {
         if (boot_succeeded) {
             (void)Cy_SysPm_CpuEnterDeepSleep(CY_SYSPM_WAIT_FOR_INTERRUPT);