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

# This file is used to set configs or override default configurations for
# the Door Lock application.

CONFIG_CHIP=y
CONFIG_CHIP_LIB_SHELL=y
CONFIG_BT_DEVICE_NAME="\"NXPLock\""
CONFIG_CHIP_DEVICE_PRODUCT_NAME="Lock"
CONFIG_CHIP_DEVICE_TYPE=10
CONFIG_CHIP_CUSTOM_BLE_ADV_DATA=n
CONFIG_CHIP_APP_LED_WIDGET=y

# SDK configs
CONFIG_MCUX_PRJSEG_module.board.boardfile=n
