# Copyright (c) 2022 Project CHIP Authors
# Copyright 2023 NXP
#
# 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.

declare_args() {
  # Indicates the name of the nxp platform targeted
  nxp_platform = ""

  # Specifies the CHIP_DEVICE_LAYER_TARGET in src/platform/BUILD.gn
  nxp_device_layer = "nxp/common"

  # Enables target nxp_lwip. Used by RT platforms.
  nxp_use_lwip = true

  # Enables target nxp_mbedtls. Used by RT platforms.
  nxp_use_mbedtls_port = true

  # Enables the support of the Matter CLI
  chip_enable_matter_cli = false

  # Enables the support of factory data
  chip_with_factory_data = 0

  # Enables the auto pairing advertisement at boot
  chip_enable_pairing_autostart = 1

  # Indicates if the nxp SDK used has the SDK package format
  is_sdk_package = false

  # Indicates if the nxp SDK used has the nxp SDK internal format
  is_sdk_internal = false

  # Defines the current software version
  nxp_software_version = 1

  # Defines the current software string version
  nxp_software_version_string = "1.3"

  # ICD Matter Configuration flags
  nxp_ot_idle_interval_ms = 2000  # 2s Idle Intervals
  nxp_ot_active_interval_ms = 500  # 500ms Active Intervals

  nxp_idle_mode_duration_s = 600  # 10min Idle Mode Interval
  nxp_active_mode_duration_ms = 10000  # 10s Active Mode Interval
  nxp_active_mode_threshold_ms = 5000  # 5s Active Mode Threshold
  nxp_icd_supported_clients_per_fabric = 2  # 2 registration slots per fabric
}

declare_args() {
  nxp_sdk_name = "${nxp_platform}_sdk"
}

assert(nxp_platform != "", "nxp_platform should be defined")
