#
#    Copyright (c) 2022 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.
#

# Enable CHIP
CONFIG_CHIP=y
CONFIG_CHIP_PROJECT_CONFIG="main/include/CHIPProjectConfig.h"
# 32784 == 0x8010 (example window-app)
CONFIG_CHIP_DEVICE_PRODUCT_ID=32784
CONFIG_STD_CPP14=y

# Add support for LEDs and buttons on Nordic development kits
CONFIG_DK_LIBRARY=y

# PWM support
CONFIG_PWM=y

# OpenThread configs
CONFIG_OPENTHREAD_NORDIC_LIBRARY_MTD=y
CONFIG_OPENTHREAD_MTD=y
CONFIG_OPENTHREAD_FTD=n
CONFIG_CHIP_ENABLE_SLEEPY_END_DEVICE_SUPPORT=y
CONFIG_CHIP_THREAD_SSED=y
CONFIG_CHIP_SED_IDLE_INTERVAL=500
CONFIG_CHIP_SED_ACTIVE_INTERVAL=500

# Enable ICD subscription platform specific handling
CONFIG_CHIP_ICD_SUBSCRIPTION_HANDLING=y

# Bluetooth Low Energy configuration
CONFIG_BT_DEVICE_NAME="MatterWinCov"

# Stack size settings
CONFIG_IEEE802154_NRF5_RX_STACK_SIZE=1024

# Other settings
CONFIG_THREAD_NAME=y
CONFIG_MPU_STACK_GUARD=y
CONFIG_RESET_ON_FATAL_ERROR=n

# Reduce application size
CONFIG_USE_SEGGER_RTT=n
