Browse Source

[bsp][ifx] add bt support (#8028)

guo 1 year ago
parent
commit
23794d2cf9

+ 1 - 1
bsp/Infineon/libraries/IFX_PSOC6_HAL/SConscript

@@ -114,7 +114,7 @@ if GetDepend('BSP_USING_RTC'):
     src += ['mtb-hal-cat1/source/cyhal_rtc.c']
     src += ['mtb-hal-cat1/source/cyhal_rtc.c']
     src += ['mtb-pdl-cat1/drivers/source/cy_rtc.c']
     src += ['mtb-pdl-cat1/drivers/source/cy_rtc.c']
 
 
-if GetDepend('BSP_USING_ON_CHIP_FLASH'):
+if GetDepend('BSP_USING_ON_CHIP_FLASH') or GetDepend('BSP_USING_CYW43012_BT') :
     src += ['mtb-hal-cat1/source/cyhal_flash.c']
     src += ['mtb-hal-cat1/source/cyhal_flash.c']
     src += ['mtb-pdl-cat1/drivers/source/cy_flash.c']
     src += ['mtb-pdl-cat1/drivers/source/cy_flash.c']
 
 

+ 4 - 0
bsp/Infineon/psoc6-evaluationkit-062S2/board/Kconfig

@@ -423,6 +423,10 @@ menu "Board extended module Drivers"
         bool "Enable cyw43012 wifi"
         bool "Enable cyw43012 wifi"
         select PKG_USING_WLAN_CYW43012
         select PKG_USING_WLAN_CYW43012
         default n
         default n
+    config BSP_USING_CYW43012_BT
+        bool "Enable cyw43012 Bluetooth"
+        select PKG_USING_BT_CYW43012
+        default n
 endmenu
 endmenu
 
 
 endmenu
 endmenu

+ 42 - 0
bsp/Infineon/psoc6-evaluationkit-062S2/board/SConscript

@@ -46,6 +46,48 @@ if GetDepend(['BSP_USING_CYW43012_WIFI']):
         "CY_RTOS_AWARE",
         "CY_RTOS_AWARE",
         "CY_SUPPORTS_DEVICE_VALIDATION",
         "CY_SUPPORTS_DEVICE_VALIDATION",
         ]
         ]
+if GetDepend(['BSP_USING_CYW43012_BT']):
+    CPPDEFINES += [
+        "COMPONENT_43012",
+        "COMPONENT_APP_CY8CKIT_062S2_43012",
+        "COMPONENT_AW_AM497",
+        "COMPONENT_CAT1",
+        "COMPONENT_CAT1A",
+        "COMPONENT_CM0P_SLEEP",
+        "COMPONENT_CM4",
+        "COMPONENT_CM4_0",
+        "COMPONENT_Debug",
+        "COMPONENT_FREERTOS",
+        "COMPONENT_GCC_ARM",
+        "COMPONENT_HCI_UART",
+        "COMPONENT_MW_ABSTRACTION_RTOS",
+        "COMPONENT_MW_BTSTACK",
+        "COMPONENT_MW_BTSTACK_INTEGRATION",
+        "COMPONENT_MW_CLIB_SUPPORT",
+        "COMPONENT_MW_CMSIS",
+        "COMPONENT_MW_CORE_LIB",
+        "COMPONENT_MW_CORE_MAKE",
+        "COMPONENT_MW_FREERTOS",
+        "COMPONENT_MW_KV_STORE",
+        "COMPONENT_MW_MTB_HAL_CAT1",
+        "COMPONENT_MW_MTB_PDL_CAT1",
+        "COMPONENT_MW_RECIPE_MAKE_CAT1A",
+        "COMPONENT_MW_RETARGET_IO",
+        "COMPONENT_MW_SERIAL_FLASH",
+        "COMPONENT_PSOC6_02",
+        "COMPONENT_WICED_BLE",
+        "COMPONENT_WIFI_INTERFACE_SDIO",
+        "CORE_NAME_CM4_0=1",
+        "CY8C624ALQI_S2D42",
+        "CY_APPNAME_mtb_example_btstack_freertos_hello_sensor",
+        "CY_RETARGET_IO_CONVERT_LF_TO_CRLF",
+        "CY_RTOS_AWARE",
+        "CY_SUPPORTS_DEVICE_VALIDATION",
+        "CY_TARGET_BOARD=APP_CY8CKIT_062S2_43012",
+        "CY_USING_HAL",
+        "TARGET_APP_CY8CKIT_062S2_43012",
+        "USE_INTERNAL_FLASH"
+        ]
 group = DefineGroup('Drivers', src, depend=[''], CPPPATH=path, CPPDEFINES=CPPDEFINES)
 group = DefineGroup('Drivers', src, depend=[''], CPPPATH=path, CPPDEFINES=CPPDEFINES)
 
 
 Return('group')
 Return('group')

+ 7 - 1
bsp/Infineon/psoc6-evaluationkit-062S2/libs/SConscript

@@ -16,7 +16,13 @@ elif rtconfig.PLATFORM in ['gcc', 'armclang']:
     src += Glob(cwd + '/TARGET_RTT-062S2/config/GeneratedSource/*.c')
     src += Glob(cwd + '/TARGET_RTT-062S2/config/GeneratedSource/*.c')
 
 
     CPPPATH = [ cwd + '/TARGET_RTT-062S2',
     CPPPATH = [ cwd + '/TARGET_RTT-062S2',
-                cwd + '/TARGET_RTT-062S2/config/GeneratedSource']
+                cwd + '/TARGET_RTT-062S2/config/GeneratedSource',
+                cwd + '/TARGET_RTT-062S2/config',
+                cwd + '/TARGET_RTT-062S2/bluetooth'
+                ]
+    if GetDepend(['BSP_USING_CYW43012_BT']):
+        src += Glob(cwd + '/TARGET_RTT-062S2/bluetooth/*.c')
+
     if rtconfig.PLATFORM in ['gcc']:
     if rtconfig.PLATFORM in ['gcc']:
         src += [cwd + '/TARGET_RTT-062S2/COMPONENT_CM4/TOOLCHAIN_GCC_ARM/startup_psoc6_02_cm4.S']
         src += [cwd + '/TARGET_RTT-062S2/COMPONENT_CM4/TOOLCHAIN_GCC_ARM/startup_psoc6_02_cm4.S']
     elif rtconfig.PLATFORM in ['armclang']:
     elif rtconfig.PLATFORM in ['armclang']:

+ 254 - 0
bsp/Infineon/psoc6-evaluationkit-062S2/libs/TARGET_RTT-062S2/bluetooth/cycfg_bt_settings.c

@@ -0,0 +1,254 @@
+/***************************************************************************//**
+* File Name: cycfg_bt_settings.c
+*
+* Description:
+* Runtime Bluetooth stack configuration parameters.
+* This file should not be modified. It was automatically generated by
+* Bluetooth Configurator 2.60.0.1460
+*
+********************************************************************************
+* Copyright 2023 Cypress Semiconductor Corporation (an Infineon company) or
+* an affiliate of Cypress Semiconductor Corporation.
+* SPDX-License-Identifier: Apache-2.0
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*******************************************************************************/
+
+#include "cycfg_bt_settings.h"
+#include "cycfg_gap.h"
+
+#include "wiced_bt_dev.h"
+#include "wiced_bt_gatt.h"
+#include "wiced_bt_cfg.h"
+
+#if !defined (WICED_BTSTACK_VERSION_MAJOR)
+    #define WICED_BTSTACK_VERSION_MAJOR    (2)
+#endif
+
+/*****************************************************************************
+ * wiced_bt core stack configuration
+ ****************************************************************************/
+#if (WICED_BTSTACK_VERSION_MAJOR >= 3)
+    /* LE scan settings */
+    const wiced_bt_cfg_ble_scan_settings_t cy_bt_cfg_scan_settings =
+    {
+        .scan_mode                       = CY_BT_SCAN_MODE,                                               /* LE scan mode (BTM_BLE_SCAN_MODE_PASSIVE, BTM_BLE_SCAN_MODE_ACTIVE, or BTM_BLE_SCAN_MODE_NONE) */
+
+        /* Advertisement scan configuration */
+        .high_duty_scan_interval         = CY_BT_HIGH_DUTY_SCAN_INTERVAL,                                 /* High duty scan interval (in slots (1 slot = 0.625 ms)) */
+        .high_duty_scan_window           = CY_BT_HIGH_DUTY_SCAN_WINDOW,                                   /* High duty scan window (in slots (1 slot = 0.625 ms)) */
+        .high_duty_scan_duration         = CY_BT_HIGH_DUTY_SCAN_DURATION,                                 /* High duty scan duration in seconds (0 for infinite) */
+
+        .low_duty_scan_interval          = CY_BT_LOW_DUTY_SCAN_INTERVAL,                                  /* Low duty scan interval (in slots (1 slot = 0.625 ms)) */
+        .low_duty_scan_window            = CY_BT_LOW_DUTY_SCAN_WINDOW,                                    /* Low duty scan window (in slots (1 slot = 0.625 ms)) */
+        .low_duty_scan_duration          = CY_BT_LOW_DUTY_SCAN_DURATION,                                  /* Low duty scan duration in seconds (0 for infinite) */
+
+        /* Connection scan configuration */
+        .high_duty_conn_scan_interval    = CY_BT_HIGH_DUTY_CONN_SCAN_INTERVAL,                            /* High duty cycle connection scan interval (in slots (1 slot = 0.625 ms)) */
+        .high_duty_conn_scan_window      = CY_BT_HIGH_DUTY_CONN_SCAN_WINDOW,                              /* High duty cycle connection scan window (in slots (1 slot = 0.625 ms)) */
+        .high_duty_conn_duration         = CY_BT_HIGH_DUTY_CONN_SCAN_DURATION,                            /* High duty cycle connection duration in seconds (0 for infinite) */
+
+        .low_duty_conn_scan_interval     = CY_BT_LOW_DUTY_CONN_SCAN_INTERVAL,                             /* Low duty cycle connection scan interval (in slots (1 slot = 0.625 ms)) */
+        .low_duty_conn_scan_window       = CY_BT_LOW_DUTY_CONN_SCAN_WINDOW,                               /* Low duty cycle connection scan window (in slots (1 slot = 0.625 ms)) */
+        .low_duty_conn_duration          = CY_BT_LOW_DUTY_CONN_SCAN_DURATION,                             /* Low duty cycle connection duration in seconds (0 for infinite) */
+
+        /* Connection configuration */
+        .conn_min_interval               = CY_BT_CONN_MIN_INTERVAL,                                       /* Minimum connection interval (in slots (1 slot = 1.25 ms)) */
+        .conn_max_interval               = CY_BT_CONN_MAX_INTERVAL,                                       /* Maximum connection interval (in slots (1 slot = 1.25 ms)) */
+        .conn_latency                    = CY_BT_CONN_LATENCY,                                            /* Connection latency */
+        .conn_supervision_timeout        = CY_BT_CONN_SUPERVISION_TIMEOUT,                                /* Connection link supervision timeout (in 10 ms) */
+    };
+
+    /* LE advertisement settings */
+    const wiced_bt_cfg_ble_advert_settings_t cy_bt_cfg_adv_settings =
+    {
+        .channel_map                     = CY_BT_CHANNEL_MAP,                                             /* Advertising channel map (mask of BTM_BLE_ADVERT_CHNL_37, BTM_BLE_ADVERT_CHNL_38, BTM_BLE_ADVERT_CHNL_39) */
+
+        .high_duty_min_interval          = CY_BT_HIGH_DUTY_ADV_MIN_INTERVAL,                              /* High duty undirected connectable minimum advertising interval (in slots (1 slot = 0.625 ms)) */
+        .high_duty_max_interval          = CY_BT_HIGH_DUTY_ADV_MAX_INTERVAL,                              /* High duty undirected connectable maximum advertising interval (in slots (1 slot = 0.625 ms)) */
+        .high_duty_duration              = CY_BT_HIGH_DUTY_ADV_DURATION,                                  /* High duty undirected connectable advertising duration in seconds (0 for infinite) */
+
+        .low_duty_min_interval           = CY_BT_LOW_DUTY_ADV_MIN_INTERVAL,                               /* Low duty undirected connectable minimum advertising interval (in slots (1 slot = 0.625 ms)) */
+        .low_duty_max_interval           = CY_BT_LOW_DUTY_ADV_MAX_INTERVAL,                               /* Low duty undirected connectable maximum advertising interval (in slots (1 slot = 0.625 ms)) */
+        .low_duty_duration               = CY_BT_LOW_DUTY_ADV_DURATION,                                   /* Low duty undirected connectable advertising duration in seconds (0 for infinite) */
+
+        .high_duty_directed_min_interval = CY_BT_HIGH_DUTY_DIRECTED_ADV_MIN_INTERVAL,                     /* High duty directed connectable minimum advertising interval (in slots (1 slot = 0.625 ms)) */
+        .high_duty_directed_max_interval = CY_BT_HIGH_DUTY_DIRECTED_ADV_MAX_INTERVAL,                     /* High duty directed connectable maximum advertising interval (in slots (1 slot = 0.625 ms)) */
+
+        .low_duty_directed_min_interval  = CY_BT_LOW_DUTY_DIRECTED_ADV_MIN_INTERVAL,                      /* Low duty directed connectable minimum advertising interval (in slots (1 slot = 0.625 ms)) */
+        .low_duty_directed_max_interval  = CY_BT_LOW_DUTY_DIRECTED_ADV_MAX_INTERVAL,                      /* Low duty directed connectable maximum advertising interval (in slots (1 slot = 0.625 ms)) */
+        .low_duty_directed_duration      = CY_BT_LOW_DUTY_DIRECTED_ADV_DURATION,                          /* Low duty directed connectable advertising duration in seconds (0 for infinite) */
+
+        .high_duty_nonconn_min_interval  = CY_BT_HIGH_DUTY_NONCONN_ADV_MIN_INTERVAL,                      /* High duty non-connectable minimum advertising interval (in slots (1 slot = 0.625 ms)) */
+        .high_duty_nonconn_max_interval  = CY_BT_HIGH_DUTY_NONCONN_ADV_MAX_INTERVAL,                      /* High duty non-connectable maximum advertising interval (in slots (1 slot = 0.625 ms)) */
+        .high_duty_nonconn_duration      = CY_BT_HIGH_DUTY_NONCONN_ADV_DURATION,                          /* High duty non-connectable advertising duration in seconds (0 for infinite) */
+
+        .low_duty_nonconn_min_interval   = CY_BT_LOW_DUTY_NONCONN_ADV_MIN_INTERVAL,                       /* Low duty non-connectable minimum advertising interval (in slots (1 slot = 0.625 ms)) */
+        .low_duty_nonconn_max_interval   = CY_BT_LOW_DUTY_NONCONN_ADV_MAX_INTERVAL,                       /* Low duty non-connectable maximum advertising interval (in slots (1 slot = 0.625 ms)) */
+        .low_duty_nonconn_duration       = CY_BT_LOW_DUTY_NONCONN_ADV_DURATION                            /* Low duty non-connectable advertising duration in seconds (0 for infinite) */
+    };
+
+    /* LE configuration settings */
+    const wiced_bt_cfg_ble_t cy_bt_cfg_ble =
+    {
+        .ble_max_simultaneous_links      = (CY_BT_CLIENT_MAX_LINKS + CY_BT_SERVER_MAX_LINKS),             /* Max number for simultaneous connections for a layer, profile, protocol */
+        .ble_max_rx_pdu_size             = CY_BT_RX_PDU_SIZE,                                             /* Maximum size allowed for any received L2CAP PDU
+                                                                                                           * Minimum value - 65 (to support SM)
+                                                                                                           * Maximum GATT MTU over legacy bearers shall be set to <= this value
+                                                                                                           * Maximum MPS for EATT channels shall be set to <= this value */
+        .appearance                      = CY_BT_APPEARANCE,                                              /* GATT appearance (see gatt_appearance_e) */
+        .rpa_refresh_timeout             = CY_BT_RPA_TIMEOUT,                                             /* Interval of  random address refreshing - secs */
+        .host_addr_resolution_db_size    = 5,                                                             /* LE Address Resolution DB settings - effective only for pre 4.2 controller */
+        .p_ble_scan_cfg                  = &cy_bt_cfg_scan_settings,                                      /* LE scan settings */
+        .p_ble_advert_cfg                = &cy_bt_cfg_adv_settings,                                       /* LE advertisement settings */
+        .default_ble_power_level         = CY_BT_TX_POWER,                                                /* Default LE power level, Refer lm_TxPwrTable table for the power range */
+    };
+
+    /* GATT settings */
+    const wiced_bt_cfg_gatt_t cy_bt_cfg_gatt =
+    {
+        .max_db_service_modules          = 0,                                                             /* Maximum number of service modules in the DB */
+        .max_eatt_bearers                = 0,                                                             /* Maximum number of allowed gatt bearers */
+    };
+
+    /* Application-managed L2CAP protocol configuration */
+    const wiced_bt_cfg_l2cap_application_t cy_bt_cfg_l2cap = 
+    {
+        .max_app_l2cap_psms              = CY_BT_L2CAP_MAX_LE_PSM,                                        /* Maximum number of application-managed PSMs */
+        .max_app_l2cap_channels          = CY_BT_L2CAP_MAX_LE_CHANNELS,                                   /* Maximum number of application-managed channels */
+        .max_app_l2cap_le_fixed_channels = CY_BT_L2CAP_MAX_LE_FIXED_CHANNELS,                             /* Maximum number of application-managed fixed channels supported */
+        .max_app_l2cap_br_edr_ertm_chnls = CY_BT_L2CAP_MAX_BR_ERTM_CHANNELS,                              /* Maximum application ERTM channels, BR/EDR only */
+        .max_app_l2cap_br_edr_ertm_tx_win = CY_BT_L2CAP_MAX_BR_ERTM_TX_WIN,                               /* Maximum application ERTM TX Window, BR/EDR only */
+    };
+
+    /* Bluetooth stack configuration */
+    const wiced_bt_cfg_settings_t wiced_bt_cfg_settings =
+    {
+        .device_name                     = (uint8_t*)app_gap_device_name,                                 /* Local device name (NULL terminated) */
+        .security_required               = CY_BT_SECURITY_LEVEL,                                          /* BTM_SEC_BEST_EFFORT is recommended choice for most applications,
+                                                                                                           * to connect to the widest range of devices. Allows stack to choose
+                                                                                                           * the highest level of security possible between the two devices */
+        .p_ble_cfg                       = &cy_bt_cfg_ble,                                                /* LE related configuration */
+        .p_gatt_cfg                      = &cy_bt_cfg_gatt,                                               /* GATT settings */
+        .p_l2cap_app_cfg                 = &cy_bt_cfg_l2cap,                                              /* Application-managed L2CAP protocol configuration */
+    };
+#else
+    /* Bluetooth stack configuration */    
+    const wiced_bt_cfg_settings_t wiced_bt_cfg_settings =
+    {
+        .device_name                         = (uint8_t*)app_gap_device_name,                             /* Local device name (NULL terminated) */
+        .device_class                        = {0x00, 0x00, 0x00},                                        /* Local device class */
+        .security_requirement_mask           = BTM_SEC_NONE,                                              /* Security requirements mask (BTM_SEC_NONE, or combination of BTM_SEC_IN_AUTHENTICATE, BTM_SEC_OUT_AUTHENTICATE, BTM_SEC_ENCRYPT (see #wiced_bt_sec_level_e)) */
+
+        .max_simultaneous_links              = (CY_BT_CLIENT_MAX_LINKS + CY_BT_SERVER_MAX_LINKS),         /* Maximum number simultaneous links to different devices */
+
+        /* LE scan settings */
+        .ble_scan_cfg =
+        {
+            .scan_mode                       = CY_BT_SCAN_MODE,                                           /* LE scan mode (BTM_BLE_SCAN_MODE_PASSIVE, BTM_BLE_SCAN_MODE_ACTIVE, or BTM_BLE_SCAN_MODE_NONE) */
+
+            /* Advertisement scan configuration */
+            .high_duty_scan_interval         = CY_BT_HIGH_DUTY_SCAN_INTERVAL,                             /* High duty scan interval (in slots (1 slot = 0.625 ms)) */
+            .high_duty_scan_window           = CY_BT_HIGH_DUTY_SCAN_WINDOW,                               /* High duty scan window (in slots (1 slot = 0.625 ms)) */
+            .high_duty_scan_duration         = CY_BT_HIGH_DUTY_SCAN_DURATION,                             /* High duty scan duration in seconds (0 for infinite) */
+
+            .low_duty_scan_interval          = CY_BT_LOW_DUTY_SCAN_INTERVAL,                              /* Low duty scan interval (in slots (1 slot = 0.625 ms)) */
+            .low_duty_scan_window            = CY_BT_LOW_DUTY_SCAN_WINDOW,                                /* Low duty scan window (in slots (1 slot = 0.625 ms)) */
+            .low_duty_scan_duration          = CY_BT_LOW_DUTY_SCAN_DURATION,                              /* Low duty scan duration in seconds (0 for infinite) */
+
+            /* Connection scan configuration */
+            .high_duty_conn_scan_interval    = CY_BT_HIGH_DUTY_CONN_SCAN_INTERVAL,                        /* High duty cycle connection scan interval (in slots (1 slot = 0.625 ms)) */
+            .high_duty_conn_scan_window      = CY_BT_HIGH_DUTY_CONN_SCAN_WINDOW,                          /* High duty cycle connection scan window (in slots (1 slot = 0.625 ms)) */
+            .high_duty_conn_duration         = CY_BT_HIGH_DUTY_CONN_SCAN_DURATION,                        /* High duty cycle connection duration in seconds (0 for infinite) */
+
+            .low_duty_conn_scan_interval     = CY_BT_LOW_DUTY_CONN_SCAN_INTERVAL,                         /* Low duty cycle connection scan interval (in slots (1 slot = 0.625 ms)) */
+            .low_duty_conn_scan_window       = CY_BT_LOW_DUTY_CONN_SCAN_WINDOW,                           /* Low duty cycle connection scan window (in slots (1 slot = 0.625 ms)) */
+            .low_duty_conn_duration          = CY_BT_LOW_DUTY_CONN_SCAN_DURATION,                         /* Low duty cycle connection duration in seconds (0 for infinite) */
+
+            /* Connection configuration */
+            .conn_min_interval               = CY_BT_CONN_MIN_INTERVAL,                                   /* Minimum connection interval (in slots (1 slot = 1.25 ms)) */
+            .conn_max_interval               = CY_BT_CONN_MAX_INTERVAL,                                   /* Maximum connection interval (in slots (1 slot = 1.25 ms)) */
+            .conn_latency                    = CY_BT_CONN_LATENCY,                                        /* Connection latency */
+            .conn_supervision_timeout        = CY_BT_CONN_SUPERVISION_TIMEOUT,                            /* Connection link supervision timeout (in 10 ms) */
+        },
+
+        /* LE advertisement settings */
+        .ble_advert_cfg =
+        {
+            .channel_map                     = CY_BT_CHANNEL_MAP,                                         /* Advertising channel map (mask of BTM_BLE_ADVERT_CHNL_37, BTM_BLE_ADVERT_CHNL_38, BTM_BLE_ADVERT_CHNL_39) */
+
+            .high_duty_min_interval          = CY_BT_HIGH_DUTY_ADV_MIN_INTERVAL,                          /* High duty undirected connectable minimum advertising interval (in slots (1 slot = 0.625 ms)) */
+            .high_duty_max_interval          = CY_BT_HIGH_DUTY_ADV_MAX_INTERVAL,                          /* High duty undirected connectable maximum advertising interval (in slots (1 slot = 0.625 ms)) */
+            .high_duty_duration              = CY_BT_HIGH_DUTY_ADV_DURATION,                              /* High duty undirected connectable advertising duration in seconds (0 for infinite) */
+
+            .low_duty_min_interval           = CY_BT_LOW_DUTY_ADV_MIN_INTERVAL,                           /* Low duty undirected connectable minimum advertising interval (in slots (1 slot = 0.625 ms)) */
+            .low_duty_max_interval           = CY_BT_LOW_DUTY_ADV_MAX_INTERVAL,                           /* Low duty undirected connectable maximum advertising interval (in slots (1 slot = 0.625 ms)) */
+            .low_duty_duration               = CY_BT_LOW_DUTY_ADV_DURATION,                               /* Low duty undirected connectable advertising duration in seconds (0 for infinite) */
+
+            .high_duty_directed_min_interval = CY_BT_HIGH_DUTY_DIRECTED_ADV_MIN_INTERVAL,                 /* High duty directed connectable minimum advertising interval (in slots (1 slot = 0.625 ms)) */
+            .high_duty_directed_max_interval = CY_BT_HIGH_DUTY_DIRECTED_ADV_MAX_INTERVAL,                 /* High duty directed connectable maximum advertising interval (in slots (1 slot = 0.625 ms)) */
+
+            .low_duty_directed_min_interval  = CY_BT_LOW_DUTY_DIRECTED_ADV_MIN_INTERVAL,                  /* Low duty directed connectable minimum advertising interval (in slots (1 slot = 0.625 ms)) */
+            .low_duty_directed_max_interval  = CY_BT_LOW_DUTY_DIRECTED_ADV_MAX_INTERVAL,                  /* Low duty directed connectable maximum advertising interval (in slots (1 slot = 0.625 ms)) */
+            .low_duty_directed_duration      = CY_BT_LOW_DUTY_DIRECTED_ADV_DURATION,                      /* Low duty directed connectable advertising duration in seconds (0 for infinite) */
+
+            .high_duty_nonconn_min_interval  = CY_BT_HIGH_DUTY_NONCONN_ADV_MIN_INTERVAL,                  /* High duty non-connectable minimum advertising interval (in slots (1 slot = 0.625 ms)) */
+            .high_duty_nonconn_max_interval  = CY_BT_HIGH_DUTY_NONCONN_ADV_MAX_INTERVAL,                  /* High duty non-connectable maximum advertising interval (in slots (1 slot = 0.625 ms)) */
+            .high_duty_nonconn_duration      = CY_BT_HIGH_DUTY_NONCONN_ADV_DURATION,                      /* High duty non-connectable advertising duration in seconds (0 for infinite) */
+
+            .low_duty_nonconn_min_interval   = CY_BT_LOW_DUTY_NONCONN_ADV_MIN_INTERVAL,                   /* Low duty non-connectable minimum advertising interval (in slots (1 slot = 0.625 ms)) */
+            .low_duty_nonconn_max_interval   = CY_BT_LOW_DUTY_NONCONN_ADV_MAX_INTERVAL,                   /* Low duty non-connectable maximum advertising interval (in slots (1 slot = 0.625 ms)) */
+            .low_duty_nonconn_duration       = CY_BT_LOW_DUTY_NONCONN_ADV_DURATION                        /* Low duty non-connectable advertising duration in seconds (0 for infinite) */
+        },
+
+        /* GATT configuration */
+        .gatt_cfg =
+        {
+            .appearance                     = CY_BT_APPEARANCE,                                           /* GATT appearance (see gatt_appearance_e) */
+            .client_max_links               = CY_BT_CLIENT_MAX_LINKS,                                     /* Client config: maximum number of servers that local client can connect to */
+            .server_max_links               = CY_BT_SERVER_MAX_LINKS,                                     /* Server config: maximum number of remote clients connections allowed by the local */
+            .max_attr_len                   = CY_BT_MAX_ATTR_LEN,                                         /* Maximum attribute length; gki_cfg must have a corresponding buffer pool that can hold this length */
+            .max_mtu_size                   = CY_BT_MTU_SIZE                                              /* Maximum MTU size for GATT connections, should be between 23 and (max_attr_len + 5) */
+        },
+
+        /* RFCOMM configuration */
+        .rfcomm_cfg =
+        {
+            .max_links                      = 0,                                                          /* Maximum number of simultaneous connected remote devices */
+            .max_ports                      = 0                                                           /* Maximum number of simultaneous RFCOMM ports */
+        },
+
+        /* Application-managed L2CAP protocol configuration */
+        .l2cap_application =
+        {
+            .max_links                      = 0,                                                          /* Maximum number of application-managed l2cap links (BR/EDR and LE) */
+
+            /* BR/EDR l2cap configuration */
+            .max_psm                        = 0,                                                          /* Maximum number of application-managed BR/EDR PSMs */
+            .max_channels                   = 0,                                                          /* Maximum number of application-managed BR/EDR channels */
+
+            /* LE L2cap connection-oriented channels configuration */
+            .max_le_psm                     = CY_BT_L2CAP_MAX_LE_PSM,                                     /* Maximum number of application-managed LE PSMs */
+            .max_le_channels                = CY_BT_L2CAP_MAX_LE_CHANNELS,                                /* Maximum number of application-managed LE channels */
+            /* LE L2cap fixed channel configuration */
+            .max_le_l2cap_fixed_channels    = 0,                                                          /* Maximum number of application-managed fixed channels supported (in addition to mandatory channels 4, 5 and 6) */
+            .max_rx_mtu                     = CY_BT_L2CAP_MTU_SIZE                                        /* Maximum RX MTU allowed */
+        },
+
+        .addr_resolution_db_size            = 5,                                                          /* LE Address Resolution DB settings - effective only for pre 4.2 controller */
+        .rpa_refresh_timeout                = CY_BT_RPA_TIMEOUT,                                          /* Interval of  random address refreshing - secs */
+        .stack_scratch_size                 = WICED_BT_CFG_DEFAULT_STACK_SCRATCH_SIZE,                    /* Memory area reserved for the stack transient memory requirements */
+        .ble_white_list_size                = CY_BT_FILTER_ACCEPT_LIST_SIZE,                              /* Maximum number of filter accept list devices allowed. Cannot be more than 128 */
+        .default_ble_power_level            = CY_BT_TX_POWER                                              /* Default LE power level */
+    };
+#endif

+ 38 - 0
bsp/Infineon/psoc6-evaluationkit-062S2/libs/TARGET_RTT-062S2/bluetooth/cycfg_bt_settings.h

@@ -0,0 +1,38 @@
+/***************************************************************************//**
+* File Name: cycfg_bt_settings.h
+*
+* Description:
+* Bluetooth Configurator configuration.
+* This file should not be modified. It was automatically generated by
+* Bluetooth Configurator 2.60.0.1460
+*
+********************************************************************************
+* Copyright 2023 Cypress Semiconductor Corporation (an Infineon company) or
+* an affiliate of Cypress Semiconductor Corporation.
+* SPDX-License-Identifier: Apache-2.0
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*******************************************************************************/
+
+#if !defined(CYCFG_BT_SETTINGS_H)
+#define CYCFG_BT_SETTINGS_H
+
+#include "wiced_bt_cfg.h"
+#include "wiced_bt_ble.h"
+#include "wiced_bt_constants.h"
+
+extern const wiced_bt_cfg_settings_t wiced_bt_cfg_settings;
+
+#endif /* CYCFG_BT_SETTINGS_H */
+
+/* [] END OF FILE */

+ 55 - 0
bsp/Infineon/psoc6-evaluationkit-062S2/libs/TARGET_RTT-062S2/bluetooth/cycfg_gap.c

@@ -0,0 +1,55 @@
+/***************************************************************************//**
+* File Name: cycfg_gap.c
+*
+* Description:
+* BLE device's GAP configuration.
+* This file should not be modified. It was automatically generated by
+* Bluetooth Configurator 2.60.0.1460
+*
+********************************************************************************
+* Copyright 2023 Cypress Semiconductor Corporation (an Infineon company) or
+* an affiliate of Cypress Semiconductor Corporation.
+* SPDX-License-Identifier: Apache-2.0
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*******************************************************************************/
+
+#include "cycfg_gap.h"
+
+/* Device address */
+wiced_bt_device_address_t cy_bt_device_address = {0x00, 0xA0, 0x50, 0x00, 0x00, 0x00};
+
+const uint8_t cy_bt_adv_packet_elem_0[1] = { 0x06 };
+const uint8_t cy_bt_adv_packet_elem_1[5] = { 0x48, 0x65, 0x6C, 0x6C, 0x6F };
+const uint8_t cy_bt_adv_packet_elem_2[16] = { 0x38, 0x28, 0x2E, 0x5F, 0xA5, 0x1E, 0xC7, 0xA4, 0xC2, 0x46, 0x47, 0x74, 0xB6, 0xC7, 0x81, 0x2F };
+wiced_bt_ble_advert_elem_t cy_bt_adv_packet_data[] = 
+{
+    /* Flags */
+    {
+        .advert_type = BTM_BLE_ADVERT_TYPE_FLAG, 
+        .len = 1, 
+        .p_data = (uint8_t*)cy_bt_adv_packet_elem_0, 
+    },
+    /* Complete local name */
+    {
+        .advert_type = BTM_BLE_ADVERT_TYPE_NAME_COMPLETE, 
+        .len = 5, 
+        .p_data = (uint8_t*)cy_bt_adv_packet_elem_1, 
+    },
+    /* Complete list of 128-bit UUIDs available */
+    {
+        .advert_type = BTM_BLE_ADVERT_TYPE_128SRV_COMPLETE, 
+        .len = 16, 
+        .p_data = (uint8_t*)cy_bt_adv_packet_elem_2, 
+    },
+};

+ 138 - 0
bsp/Infineon/psoc6-evaluationkit-062S2/libs/TARGET_RTT-062S2/bluetooth/cycfg_gap.h

@@ -0,0 +1,138 @@
+/***************************************************************************//**
+* File Name: cycfg_gap.h
+*
+* Description:
+* Definitions for GAP configuration.
+* This file should not be modified. It was automatically generated by
+* Bluetooth Configurator 2.60.0.1460
+*
+********************************************************************************
+* Copyright 2023 Cypress Semiconductor Corporation (an Infineon company) or
+* an affiliate of Cypress Semiconductor Corporation.
+* SPDX-License-Identifier: Apache-2.0
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*******************************************************************************/
+
+#if !defined(CYCFG_GAP_H)
+#define CYCFG_GAP_H
+
+#include "stdint.h"
+#include "wiced_bt_ble.h"
+#include "cycfg_gatt_db.h"
+
+/* Silicon generated 'Company assigned' part of device address */
+#define CY_BT_SILICON_DEVICE_ADDRESS_EN                       0
+
+/* Appearance */
+#define CY_BT_APPEARANCE                                      0
+
+/* TX Power Level */
+#define CY_BT_TX_POWER                                        0
+
+/* Interval of random address refreshing */
+#define CY_BT_RPA_TIMEOUT                                     900
+
+/* Maximum attribute length */
+#define CY_BT_MAX_ATTR_LEN                                    512
+/* Maximum attribute MTU size */
+#define CY_BT_MTU_SIZE                                        23
+
+/* RX PDU size */
+#define CY_BT_RX_PDU_SIZE                                     512
+
+/* Maximum connections */
+#define CY_BT_SERVER_MAX_LINKS                                1
+#define CY_BT_CLIENT_MAX_LINKS                                0
+
+/* LE Filter accept list size */
+#define CY_BT_FILTER_ACCEPT_LIST_SIZE                         0
+/* This define is obsolete and kept for backward compatibility only. */
+#define CY_BT_WHITE_LIST_SIZE                                 CY_BT_FILTER_ACCEPT_LIST_SIZE
+
+/* L2CAP configuration */
+#define CY_BT_L2CAP_MAX_LE_PSM                                1
+#define CY_BT_L2CAP_MAX_LE_CHANNELS                           1
+#define CY_BT_L2CAP_MAX_LE_FIXED_CHANNELS                     0
+#define CY_BT_L2CAP_MAX_BR_ERTM_CHANNELS                      0
+#define CY_BT_L2CAP_MAX_BR_ERTM_TX_WIN                        0
+#define CY_BT_L2CAP_MTU_SIZE                                  512
+
+/* Security level */
+#define CY_BT_SECURITY_LEVEL                                  BTM_SEC_BEST_EFFORT
+
+/* Scan configuration */
+#define CY_BT_SCAN_MODE                                       BTM_BLE_SCAN_MODE_PASSIVE
+
+#define CY_BT_HIGH_DUTY_SCAN_INTERVAL                         WICED_BT_CFG_DEFAULT_HIGH_DUTY_SCAN_INTERVAL
+#define CY_BT_HIGH_DUTY_SCAN_WINDOW                           WICED_BT_CFG_DEFAULT_HIGH_DUTY_SCAN_WINDOW
+#define CY_BT_HIGH_DUTY_SCAN_DURATION                         5
+
+#define CY_BT_LOW_DUTY_SCAN_INTERVAL                          WICED_BT_CFG_DEFAULT_LOW_DUTY_SCAN_INTERVAL
+#define CY_BT_LOW_DUTY_SCAN_WINDOW                            WICED_BT_CFG_DEFAULT_LOW_DUTY_SCAN_WINDOW
+#define CY_BT_LOW_DUTY_SCAN_DURATION                          60
+
+#define CY_BT_HIGH_DUTY_CONN_SCAN_INTERVAL                    WICED_BT_CFG_DEFAULT_HIGH_DUTY_CONN_SCAN_INTERVAL
+#define CY_BT_HIGH_DUTY_CONN_SCAN_WINDOW                      WICED_BT_CFG_DEFAULT_HIGH_DUTY_CONN_SCAN_WINDOW
+#define CY_BT_HIGH_DUTY_CONN_SCAN_DURATION                    30
+
+#define CY_BT_LOW_DUTY_CONN_SCAN_INTERVAL                     WICED_BT_CFG_DEFAULT_LOW_DUTY_CONN_SCAN_INTERVAL
+#define CY_BT_LOW_DUTY_CONN_SCAN_WINDOW                       WICED_BT_CFG_DEFAULT_LOW_DUTY_CONN_SCAN_WINDOW
+#define CY_BT_LOW_DUTY_CONN_SCAN_DURATION                     30
+
+/* Connection configuration */
+#define CY_BT_CONN_MIN_INTERVAL                               WICED_BT_CFG_DEFAULT_CONN_MIN_INTERVAL
+#define CY_BT_CONN_MAX_INTERVAL                               WICED_BT_CFG_DEFAULT_CONN_MAX_INTERVAL
+#define CY_BT_CONN_LATENCY                                    WICED_BT_CFG_DEFAULT_CONN_LATENCY
+#define CY_BT_CONN_SUPERVISION_TIMEOUT                        WICED_BT_CFG_DEFAULT_CONN_SUPERVISION_TIMEOUT
+
+/* Advertisement settings */
+#define CY_BT_CHANNEL_MAP                                     (BTM_BLE_ADVERT_CHNL_37 | BTM_BLE_ADVERT_CHNL_38 | BTM_BLE_ADVERT_CHNL_39)
+
+#define CY_BT_HIGH_DUTY_ADV_MIN_INTERVAL                      48
+#define CY_BT_HIGH_DUTY_ADV_MAX_INTERVAL                      48
+#define CY_BT_HIGH_DUTY_ADV_DURATION                          0
+
+#define CY_BT_LOW_DUTY_ADV_MIN_INTERVAL                       2048
+#define CY_BT_LOW_DUTY_ADV_MAX_INTERVAL                       2048
+#define CY_BT_LOW_DUTY_ADV_DURATION                           0
+
+#define CY_BT_HIGH_DUTY_DIRECTED_ADV_MIN_INTERVAL             400
+#define CY_BT_HIGH_DUTY_DIRECTED_ADV_MAX_INTERVAL             800
+
+#define CY_BT_LOW_DUTY_DIRECTED_ADV_MIN_INTERVAL              48
+#define CY_BT_LOW_DUTY_DIRECTED_ADV_MAX_INTERVAL              48
+#define CY_BT_LOW_DUTY_DIRECTED_ADV_DURATION                  30
+
+#define CY_BT_HIGH_DUTY_NONCONN_ADV_MIN_INTERVAL              160
+#define CY_BT_HIGH_DUTY_NONCONN_ADV_MAX_INTERVAL              160
+#define CY_BT_HIGH_DUTY_NONCONN_ADV_DURATION                  30
+
+#define CY_BT_LOW_DUTY_NONCONN_ADV_MIN_INTERVAL               2048
+#define CY_BT_LOW_DUTY_NONCONN_ADV_MAX_INTERVAL               2048
+#define CY_BT_LOW_DUTY_NONCONN_ADV_DURATION                   30
+
+
+/* Advertisement and scan response packets defines */
+#define CY_BT_ADV_PACKET_ELEM_COUNT                           3
+/* CY_BT_ADV_PACKET_DATA_SIZE is obsolete. Use CY_BT_ADV_PACKET_ELEM_COUNT instead */
+#define CY_BT_ADV_PACKET_DATA_SIZE                            CY_BT_ADV_PACKET_ELEM_COUNT
+
+/* cy_bt_device_name is obsolete. Use app_gap_device_name instead. */
+#define cy_bt_device_name                                     app_gap_device_name
+
+/* External definitions */
+extern wiced_bt_device_address_t cy_bt_device_address;
+extern wiced_bt_ble_advert_elem_t cy_bt_adv_packet_data[];
+
+#endif /* CYCFG_GAP_H */

+ 176 - 0
bsp/Infineon/psoc6-evaluationkit-062S2/libs/TARGET_RTT-062S2/bluetooth/cycfg_gatt_db.c

@@ -0,0 +1,176 @@
+/******************************************************************************
+* File Name: cycfg_gatt_db.c
+*
+* Description:
+* BLE device's GATT database and device configuration.
+* This file should not be modified. It was automatically generated by
+* Bluetooth Configurator 2.60.0.1460
+*
+*******************************************************************************
+* Copyright 2023 Cypress Semiconductor Corporation (an Infineon company) or
+* an affiliate of Cypress Semiconductor Corporation.
+* SPDX-License-Identifier: Apache-2.0
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+******************************************************************************/
+
+#include "cycfg_gatt_db.h"
+#include "wiced_bt_uuid.h"
+#include "wiced_bt_gatt.h"
+
+/******************************************************************************
+* GATT server definitions
+******************************************************************************/
+
+const uint8_t gatt_database[] = 
+{
+    /* Primary Service: Generic Access */
+    PRIMARY_SERVICE_UUID16 (
+            HDLS_GAP,
+            __UUID_SERVICE_GENERIC_ACCESS),
+        /* Characteristic: Device Name */
+        CHARACTERISTIC_UUID16 (
+                HDLC_GAP_DEVICE_NAME,
+                HDLC_GAP_DEVICE_NAME_VALUE,
+                __UUID_CHARACTERISTIC_DEVICE_NAME,
+                GATTDB_CHAR_PROP_READ,
+                GATTDB_PERM_READABLE),
+        /* Characteristic: Appearance */
+        CHARACTERISTIC_UUID16 (
+                HDLC_GAP_APPEARANCE,
+                HDLC_GAP_APPEARANCE_VALUE,
+                __UUID_CHARACTERISTIC_APPEARANCE,
+                GATTDB_CHAR_PROP_READ,
+                GATTDB_PERM_READABLE),
+
+    /* Primary Service: Generic Attribute */
+    PRIMARY_SERVICE_UUID16 (
+            HDLS_GATT,
+            __UUID_SERVICE_GENERIC_ATTRIBUTE),
+        /* Characteristic: Service Changed */
+        CHARACTERISTIC_UUID16 (
+                HDLC_GATT_SERVICE_CHANGED,
+                HDLC_GATT_SERVICE_CHANGED_VALUE,
+                __UUID_CHARACTERISTIC_SERVICE_CHANGED,
+                GATTDB_CHAR_PROP_INDICATE,
+                GATTDB_PERM_NONE),
+            /* Descriptor: Client Characteristic Configuration */
+            CHAR_DESCRIPTOR_UUID16_WRITABLE (
+                    HDLD_GATT_SERVICE_CHANGED_CLIENT_CHAR_CONFIG,
+                    __UUID_DESCRIPTOR_CLIENT_CHARACTERISTIC_CONFIGURATION,
+                    GATTDB_PERM_READABLE | GATTDB_PERM_WRITE_REQ),
+
+    /* Primary Service: Hello Sensor */
+    PRIMARY_SERVICE_UUID128 (
+            HDLS_HELLO_SENSOR,
+            __UUID_SERVICE_HELLO_SENSOR),
+        /* Characteristic: Notify */
+        CHARACTERISTIC_UUID128 (
+                HDLC_HELLO_SENSOR_NOTIFY,
+                HDLC_HELLO_SENSOR_NOTIFY_VALUE,
+                __UUID_CHARACTERISTIC_HELLO_SENSOR_NOTIFY,
+                GATTDB_CHAR_PROP_READ | GATTDB_CHAR_PROP_NOTIFY | GATTDB_CHAR_PROP_INDICATE,
+                GATTDB_PERM_READABLE | GATTDB_PERM_AUTH_READABLE),
+            /* Descriptor: Client Characteristic Configuration */
+            CHAR_DESCRIPTOR_UUID16_WRITABLE (
+                    HDLD_HELLO_SENSOR_NOTIFY_CLIENT_CHAR_CONFIG,
+                    __UUID_DESCRIPTOR_CLIENT_CHARACTERISTIC_CONFIGURATION,
+                    GATTDB_PERM_READABLE | GATTDB_PERM_WRITE_REQ | GATTDB_PERM_AUTH_WRITABLE),
+        /* Characteristic: Blink */
+        CHARACTERISTIC_UUID128_WRITABLE (
+                HDLC_HELLO_SENSOR_BLINK,
+                HDLC_HELLO_SENSOR_BLINK_VALUE,
+                __UUID_CHARACTERISTIC_HELLO_SENSOR_BLINK,
+                GATTDB_CHAR_PROP_READ | GATTDB_CHAR_PROP_WRITE | GATTDB_CHAR_PROP_WRITE_NO_RESPONSE,
+                GATTDB_PERM_READABLE | GATTDB_PERM_WRITE_REQ | GATTDB_PERM_WRITE_CMD),
+};
+
+/* Length of the GATT database */
+const uint16_t gatt_database_len = sizeof(gatt_database);
+
+/******************************************************************************
+* GATT Initial Value Arrays
+******************************************************************************/
+ 
+uint8_t app_gap_device_name[] = {'H', 'e', 'l', 'l', 'o', '\0',};
+uint8_t app_gap_appearance[] = {0x00, 0x00,};
+uint8_t app_gatt_service_changed[] = {0x00, 0x00, 0x00, 0x00,};
+uint8_t app_gatt_service_changed_client_char_config[] = {0x00, 0x00,};
+uint8_t app_hello_sensor_notify[] = {'H', 'e', 'l', 'l', 'o', ' ', '0',};
+uint8_t app_hello_sensor_notify_client_char_config[] = {0x00, 0x00,};
+uint8_t app_hello_sensor_blink[] = {0x00,};
+ 
+/******************************************************************************
+* GATT Lookup Table
+******************************************************************************/
+ 
+gatt_db_lookup_table_t app_gatt_db_ext_attr_tbl[] =
+{
+    {
+        HDLC_GAP_DEVICE_NAME_VALUE,                   /* attribute handle */
+        5,                                            /* maxlen */
+        5,                                            /* curlen */
+        app_gap_device_name,                          /* attribute data */
+    },
+    {
+        HDLC_GAP_APPEARANCE_VALUE,                    /* attribute handle */
+        2,                                            /* maxlen */
+        2,                                            /* curlen */
+        app_gap_appearance,                           /* attribute data */
+    },
+    {
+        HDLC_GATT_SERVICE_CHANGED_VALUE,              /* attribute handle */
+        4,                                            /* maxlen */
+        4,                                            /* curlen */
+        app_gatt_service_changed,                     /* attribute data */
+    },
+    {
+        HDLD_GATT_SERVICE_CHANGED_CLIENT_CHAR_CONFIG, /* attribute handle */
+        2,                                            /* maxlen */
+        2,                                            /* curlen */
+        app_gatt_service_changed_client_char_config,  /* attribute data */
+    },
+    {
+        HDLC_HELLO_SENSOR_NOTIFY_VALUE,               /* attribute handle */
+        7,                                            /* maxlen */
+        7,                                            /* curlen */
+        app_hello_sensor_notify,                      /* attribute data */
+    },
+    {
+        HDLD_HELLO_SENSOR_NOTIFY_CLIENT_CHAR_CONFIG,  /* attribute handle */
+        2,                                            /* maxlen */
+        2,                                            /* curlen */
+        app_hello_sensor_notify_client_char_config,   /* attribute data */
+    },
+    {
+        HDLC_HELLO_SENSOR_BLINK_VALUE,                /* attribute handle */
+        1,                                            /* maxlen */
+        1,                                            /* curlen */
+        app_hello_sensor_blink,                       /* attribute data */
+    },
+};
+
+/* Number of Lookup Table entries */
+const uint16_t app_gatt_db_ext_attr_tbl_size = 
+    (sizeof(app_gatt_db_ext_attr_tbl) / sizeof(gatt_db_lookup_table_t));
+
+/* Number of GATT initial value arrays entries */
+const uint16_t app_gap_device_name_len = 5;
+const uint16_t app_gap_appearance_len = (sizeof(app_gap_appearance));
+const uint16_t app_gatt_service_changed_len = (sizeof(app_gatt_service_changed));
+const uint16_t app_gatt_service_changed_client_char_config_len =
+    (sizeof(app_gatt_service_changed_client_char_config));
+const uint16_t app_hello_sensor_notify_len = (sizeof(app_hello_sensor_notify));
+const uint16_t app_hello_sensor_notify_client_char_config_len =
+    (sizeof(app_hello_sensor_notify_client_char_config));
+const uint16_t app_hello_sensor_blink_len = (sizeof(app_hello_sensor_blink));

+ 101 - 0
bsp/Infineon/psoc6-evaluationkit-062S2/libs/TARGET_RTT-062S2/bluetooth/cycfg_gatt_db.h

@@ -0,0 +1,101 @@
+/***************************************************************************//**
+* File Name: cycfg_gatt_db.h
+*
+* Description:
+* Definitions for constants used in the device's GATT database and function
+* prototypes.
+* This file should not be modified. It was automatically generated by
+* Bluetooth Configurator 2.60.0.1460
+*
+********************************************************************************
+* Copyright 2023 Cypress Semiconductor Corporation (an Infineon company) or
+* an affiliate of Cypress Semiconductor Corporation.
+* SPDX-License-Identifier: Apache-2.0
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*******************************************************************************/
+
+#if !defined(CYCFG_GATT_DB_H)
+#define CYCFG_GATT_DB_H
+
+#include "stdint.h"
+
+#define __UUID_SERVICE_GENERIC_ACCESS                   0x1800
+#define __UUID_CHARACTERISTIC_DEVICE_NAME               0x2A00
+#define __UUID_CHARACTERISTIC_APPEARANCE                0x2A01
+#define __UUID_SERVICE_GENERIC_ATTRIBUTE                0x1801
+#define __UUID_CHARACTERISTIC_SERVICE_CHANGED           0x2A05
+#define __UUID_DESCRIPTOR_CLIENT_CHARACTERISTIC_CONFIGURATION    0x2902
+#define __UUID_SERVICE_HELLO_SENSOR                     0x38, 0x28, 0x2E, 0x5F, 0xA5, 0x1E, 0xC7, 0xA4, 0xC2, 0x46, 0x47, 0x74, 0xB6, 0xC7, 0x81, 0x2F
+#define __UUID_CHARACTERISTIC_HELLO_SENSOR_NOTIFY       0xBD, 0xED, 0x5E, 0xC7, 0x28, 0x3A, 0x86, 0xAD, 0xAF, 0x44, 0x45, 0x9F, 0x3D, 0x62, 0xEA, 0x29
+#define __UUID_CHARACTERISTIC_HELLO_SENSOR_BLINK        0x8E, 0xB1, 0x5D, 0xFA, 0x97, 0x33, 0x5A, 0xA1, 0x61, 0x41, 0xA7, 0x13, 0x50, 0x36, 0xAD, 0xD2
+
+/* Service Generic Access */
+#define HDLS_GAP                                        0x0001
+/* Characteristic Device Name */
+#define HDLC_GAP_DEVICE_NAME                            0x0002
+#define HDLC_GAP_DEVICE_NAME_VALUE                      0x0003
+/* Characteristic Appearance */
+#define HDLC_GAP_APPEARANCE                             0x0004
+#define HDLC_GAP_APPEARANCE_VALUE                       0x0005
+
+/* Service Generic Attribute */
+#define HDLS_GATT                                       0x0006
+/* Characteristic Service Changed */
+#define HDLC_GATT_SERVICE_CHANGED                       0x0007
+#define HDLC_GATT_SERVICE_CHANGED_VALUE                 0x0008
+/* Descriptor Client Characteristic Configuration */
+#define HDLD_GATT_SERVICE_CHANGED_CLIENT_CHAR_CONFIG    0x0009
+
+/* Service Hello Sensor */
+#define HDLS_HELLO_SENSOR                               0x000A
+/* Characteristic Notify */
+#define HDLC_HELLO_SENSOR_NOTIFY                        0x000B
+#define HDLC_HELLO_SENSOR_NOTIFY_VALUE                  0x000C
+/* Descriptor Client Characteristic Configuration */
+#define HDLD_HELLO_SENSOR_NOTIFY_CLIENT_CHAR_CONFIG     0x000D
+/* Characteristic Blink */
+#define HDLC_HELLO_SENSOR_BLINK                         0x000E
+#define HDLC_HELLO_SENSOR_BLINK_VALUE                   0x000F
+
+
+/* External Lookup Table Entry */
+typedef struct
+{
+    uint16_t handle;
+    uint16_t max_len;
+    uint16_t cur_len;
+    uint8_t  *p_data;
+} gatt_db_lookup_table_t;
+
+/* External definitions */
+extern const uint8_t  gatt_database[];
+extern const uint16_t gatt_database_len;
+extern gatt_db_lookup_table_t app_gatt_db_ext_attr_tbl[];
+extern const uint16_t app_gatt_db_ext_attr_tbl_size;
+extern uint8_t app_gap_device_name[];
+extern const uint16_t app_gap_device_name_len;
+extern uint8_t app_gap_appearance[];
+extern const uint16_t app_gap_appearance_len;
+extern uint8_t app_gatt_service_changed[];
+extern const uint16_t app_gatt_service_changed_len;
+extern uint8_t app_gatt_service_changed_client_char_config[];
+extern const uint16_t app_gatt_service_changed_client_char_config_len;
+extern uint8_t app_hello_sensor_notify[];
+extern const uint16_t app_hello_sensor_notify_len;
+extern uint8_t app_hello_sensor_notify_client_char_config[];
+extern const uint16_t app_hello_sensor_notify_client_char_config_len;
+extern uint8_t app_hello_sensor_blink[];
+extern const uint16_t app_hello_sensor_blink_len;
+
+#endif /* CYCFG_GATT_DB_H */

+ 7 - 8
bsp/Infineon/psoc6-evaluationkit-062S2/libs/TARGET_RTT-062S2/config/GeneratedSource/cycfg_pins.h

@@ -58,15 +58,14 @@ extern "C" {
     #define CYBSP_J2_9 CYBSP_A4
     #define CYBSP_J2_9 CYBSP_A4
     #define CYBSP_A5 (P10_5)
     #define CYBSP_A5 (P10_5)
     #define CYBSP_J2_11 CYBSP_A5
     #define CYBSP_J2_11 CYBSP_A5
-    #define CYBSP_QSPI_FRAM_SSEL (P11_0)
-    #define CYBSP_QSPI_SS (P11_2)
-    #define CYBSP_QSPI_FLASH_SSEL CYBSP_QSPI_SS
-    #define CYBSP_QSPI_D3 (P11_3)
-    #define CYBSP_QSPI_D2 (P11_4)
-    #define CYBSP_QSPI_D1 (P11_5)
-    #define CYBSP_QSPI_D0 (P11_6)
-    #define CYBSP_QSPI_SCK (P11_7)
+    #define CYBSP_BT_UART_RX (P11_0)
+    #define CYBSP_BT_UART_TX (P11_1)
+    #define CYBSP_BT_UART_RTS (P11_2)
+    #define CYBSP_BT_UART_CTS (P11_3)
+    #define CYBSP_BT_DEVICE_WAKE (P11_6)
+    #define CYBSP_BT_POWER (P11_7)
     #define CYBSP_WIFI_HOST_WAKE (P12_6)
     #define CYBSP_WIFI_HOST_WAKE (P12_6)
+    #define CYBSP_BT_HOST_WAKE (P12_7)
     #define CYBSP_WIFI_SDIO_D0 (P2_0)
     #define CYBSP_WIFI_SDIO_D0 (P2_0)
     #define CYBSP_WIFI_SDIO_D1 (P2_1)
     #define CYBSP_WIFI_SDIO_D1 (P2_1)
     #define CYBSP_WIFI_SDIO_D2 (P2_2)
     #define CYBSP_WIFI_SDIO_D2 (P2_2)