#
#   Copyright (c) 2024-2025 Project CHIP Authors
#
#   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.
#

# The purpose of this file is to define new default values of settings used when building Matter samples.
# This file only changes defaults and thus all symbols here must be promptless
# and safeguarded so that they only are applied when building Matter.

if CHIP

config CHIP_OPERATIONAL_TIME_SAVE_INTERVAL
	default 1

if CHIP_FACTORY_DATA

config CHIP_DEVICE_VENDOR_ID
	default 4151 # 0x1037

config CHIP_DEVICE_MANUFACTURING_DATE
	default "2023-01-01"

config CHIP_DEVICE_PRODUCT_ID
	default 41510 if SOC_SERIES_RW6XX

endif # CHIP_FACTORY_DATA

config LOG
	default y

if LOG

choice LOG_MODE
	default LOG_MODE_MINIMAL
endchoice

choice MATTER_LOG_LEVEL_CHOICE
	default MATTER_LOG_LEVEL_DBG
endchoice

config CHIP_APP_LOG_LEVEL
	default 4 # debug

config LOG_DEFAULT_LEVEL
	default 1 # error

config CHIP_LOG_SIZE_OPTIMIZATION
	default y

endif

config PRINTK_SYNC
	default y

config ASSERT
	default y

config ASSERT_NO_COND_INFO
	default y

config ASSERT_NO_MSG_INFO
	default y

config HW_STACK_PROTECTION
	default y

config FPU
	default y

config SHELL
	default y

config PTHREAD_IPC
	bool
	default n

config POSIX_MAX_FDS
	int
	default 8

# Application stack size
config MAIN_STACK_SIZE
	default 3072

config INIT_STACKS
	default y

config NET_MGMT_EVENT_STACK_SIZE
	default 1024

config NET_MGMT_EVENT_QUEUE_SIZE
	default 20

config NET_IPV6_MLD
	default y

config NET_IF_MCAST_IPV6_ADDR_COUNT
	default 14

config NET_IF_MAX_IPV4_COUNT
	default 2

config NET_IF_MAX_IPV6_COUNT
	default 2

config NET_TC_TX_COUNT
	default 1

config NET_TC_RX_COUNT
	default 1

config NET_TC_THREAD_PRIO_CUSTOM
	default y

choice NET_TC_THREAD_TYPE
	default NET_TC_THREAD_PREEMPTIVE
endchoice

config NET_TCP_WORKER_PRIO
	default -16

config NET_TC_TX_THREAD_BASE_PRIO
	default 3

config NET_TC_RX_THREAD_BASE_PRIO
	default 3

config NET_TC_TX_SKIP_FOR_HIGH_PRIO
	default y

config NET_CONTEXT_PRIORITY
	default y

# Network buffers
config NET_PKT_RX_COUNT
	default 14

config NET_PKT_TX_COUNT
	default 14

config NET_BUF_RX_COUNT
	default 36

config NET_BUF_TX_COUNT
	default 36

config NET_BUF_DATA_SIZE
	default 256

# Bluetooth Low Energy configs

config BT
	default y

config BT_PERIPHERAL
	default y

config BT_CENTRAL
	default n

config BT_PERIPHERAL_PREF_MIN_INT
	default 36

config BT_PERIPHERAL_PREF_MAX_INT
	default 36

# Increase BT timeout to 5 s to improve connection reliability and avoid fast drop outs.
config BT_PERIPHERAL_PREF_TIMEOUT
	default 500

config BT_GAP_AUTO_UPDATE_CONN_PARAMS
	default y

# Decrease connection parameters update time, as some Matter controllers request
# enabling IP networking faster than BT connection parameters are updated, what may result
# in commissioning instabilities.
config BT_CONN_PARAM_UPDATE_TIMEOUT
	default 1000

config BT_GATT_DYNAMIC_DB
	default y

config BT_DEVICE_NAME_DYNAMIC
	default y

config BT_DEVICE_NAME_MAX
	default 15

config BT_MAX_CONN
	default 1

config BT_L2CAP_TX_MTU
	default 247

config BT_BUF_ACL_RX_SIZE
	default 251

config BT_BUF_ACL_TX_SIZE
	default 251

config BT_RX_STACK_SIZE
	default 2048 if NO_OPTIMIZATIONS && DEBUG
	default 1700

config BT_LONG_WQ_STACK_SIZE
	default 2560

config BT_DEVICE_NAME_GATT_WRITABLE
	bool
	default n

config HCI_NXP_ENABLE_AUTO_SLEEP
	default n

config CHIP_OTA_REQUESTOR
	default n

config CHIP_DEVICE_SOFTWARE_VERSION
	default 1

# Enable extended discovery
config CHIP_EXTENDED_DISCOVERY
	default y

config NVS_LOOKUP_CACHE
	default y

config NVS_LOOKUP_CACHE_SIZE
	default 1024

if CHIP_WIFI

choice NXP_WIFI_PART
	default NXP_RW610 if SOC_SERIES_RW6XX
endchoice

# Disable unnecessary features to save code size
# Saves 365kB of flash
config NXP_WIFI_SOFTAP_SUPPORT
	default n

# Saves 61kB of flash
config NXP_WIFI_CSI
	default n

# Saves 45kB of flash
config WIFI_NM_WPA_SUPPLICANT_ADVANCED_FEATURES
	default n

config NXP_WIFI_MON_TASK_STACK_SIZE
	default 1024

config NXP_WIFI_WLCMGR_TASK_STACK_SIZE
	default 2048

config NXP_WIFI_TX_TASK_STACK_SIZE
	default 1024

config NXP_WIFI_SCAN_TASK_STACK_SIZE
	default 1024

config ZVFS_OPEN_MAX
	default 30

choice SCHED_ALGORITHM
	default SCHED_MULTIQ
endchoice

config WIFI_NM_MAX_MANAGED_INTERFACES
	default 2

config WIFI_NM_WPA_SUPPLICANT_WQ_PRIO
	default 3

config WIFI_NM_WPA_SUPPLICANT_PRIO
	default 3

choice WIFI_NM_WPA_SUPPLICANT_LOG_LEVEL_CHOICE
	default WIFI_NM_WPA_SUPPLICANT_LOG_LEVEL_INF
endchoice

choice WIFI_NM_WPA_SUPPLICANT_CRYPTO_BACKEND
	default WIFI_NM_WPA_SUPPLICANT_CRYPTO_ALT
endchoice

config WIFI_NM_WPA_SUPPLICANT_THREAD_STACK_SIZE
	default 6144

config WIFI_NM_WPA_SUPPLICANT_WQ_STACK_SIZE
	default 5120

config WIFI_NM_WPA_SUPPLICANT_INF_MON
	default n

config SYSTEM_WORKQUEUE_STACK_SIZE
	default 2048

config NET_TCP_WORKQ_STACK_SIZE
	default 2048

# align these numbers to match the OpenThread config
config NET_IF_UNICAST_IPV6_ADDR_COUNT
	default 6

config NET_IF_MCAST_IPV6_ADDR_COUNT
	default 8

config NET_SOCKETS_POLL_MAX
	default 14

config NET_IPV4_FRAGMENT_MAX_COUNT
	default 3

config NET_IPV4_FRAGMENT_MAX_PKT
	default 7

config NET_IPV4_FRAGMENT_TIMEOUT
	default 3

config NET_IPV6_FRAGMENT_MAX_COUNT
	default 3

config NET_IPV6_FRAGMENT_MAX_PKT
	default 8

config NET_IPV6_FRAGMENT_TIMEOUT
	default 3

# options managed by IP4/IP6 simultaneous support
# aligned here to match OpenThread config
config NET_MAX_ROUTERS
	default 1

config NET_MAX_CONN
	default 10

config SHELL_STACK_SIZE
	default 1536

config HEAP_MEM_POOL_SIZE
	default 122880

config CHIP_MALLOC_SYS_HEAP_SIZE
	default 28672 # 28 kB

config ETH_DRIVER
	default n

endif

if CHIP_ETHERNET || CHIP_WIFI

choice LIBC_IMPLEMENTATION
	default NEWLIB_LIBC
endchoice

endif

if CHIP_ETHERNET

config NET_SOCKETS_POLL_MAX
	default 7

endif

# Configure MBEDTLS lib
config MBEDTLS
	default y

config MBEDTLS_CFG_FILE
	default "config-tls-generic.h"

config MBEDTLS_PSA_KEY_SLOT_COUNT
    default 64

config MBEDTLS_USER_CONFIG_ENABLE
    default y

config MBEDTLS_USER_CONFIG_FILE
    default "nxp-zephyr-mbedtls-config.h"

config MBEDTLS_ENTROPY_C
	default y

config MBEDTLS_ENTROPY_POLL_ZEPHYR
	default y

config MBEDTLS_SSL_MAX_CONTENT_LEN
	default 8192

config MBEDTLS_ENABLE_HEAP
	default y

config MBEDTLS_HEAP_SIZE
	default 15360

config MBEDTLS_CIPHER_AES_ENABLED
	default y

config MBEDTLS_CIPHER_CCM_ENABLED
	default y

config MBEDTLS_CTR_DRBG_ENABLED
	default y

config MBEDTLS_CIPHER_MODE_CBC_ENABLED
	default y

config MBEDTLS_ECP_C
	default y

config MBEDTLS_ECP_DP_SECP256R1_ENABLED
	default y

config CHIP_CRYPTO_PSA
	default y

if CHIP_CRYPTO_PSA

config MBEDTLS_PSA_CRYPTO_C
	default y

config WIFI_NM_WPA_SUPPLICANT_CRYPTO_MBEDTLS_PSA
	default y if WIFI_NM_WPA_SUPPLICANT

endif

config MCUX_ELS_PKC
	default y if SOC_SERIES_RW6XX

if MCUX_ELS_PKC

config MCUX_PSA_CRYPTO_DRIVER_ELS_PKC
	default y if CHIP_CRYPTO_PSA

config MCUX_PSA_CRYPTO_DRIVER_ELS_PKC_THREAD
	default y if CHIP_CRYPTO_PSA

config ENTROPY_GENERATOR
	default y

endif # MCUX_ELS_PKC


if SHELL

config SHELL_MINIMAL
	default y

config SHELL_HELP
	default y

config KERNEL_SHELL
	default y

config REBOOT
	default y

# Disable not used shell modules
config DEVICE_SHELL
	default n

config SHELL_WILDCARD
	default n

config SHELL_VT100_COLORS
	default n

config SHELL_STATS
	default n

config SENSOR_SHELL
	default n

config DATE_SHELL
	default n

config DEVMEM_SHELL
	default n

config MCUBOOT_SHELL
	default n

config FLASH_SHELL
	default n

endif # SHELL

endif
