# CTHINGS.CO Connectivity Card board configuration

# Copyright (c) 2024 CTHINGS.CO
# SPDX-License-Identifier: Apache-2.0

if BOARD_CTCC_NRF52840

source "boards/common/usb/Kconfig.cdc_acm_serial.defconfig"

endif # BOARD_CTCC_NRF52840

if BOARD_CTCC_NRF9161 || BOARD_CTCC_NRF9161_NS

# Workaround for not being able to have commas in macro arguments.
# For explanation please see: boards/nordic/nrf9161dk/Kconfig.defconfig
DT_CHOSEN_Z_CODE_PARTITION := zephyr,code-partition

config FLASH_LOAD_SIZE
	default $(dt_chosen_reg_size_hex,$(DT_CHOSEN_Z_CODE_PARTITION))
	depends on BOARD_CTCC_NRF9161 && TRUSTED_EXECUTION_SECURE

if BOARD_CTCC_NRF9161_NS

config FLASH_LOAD_OFFSET
	default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CODE_PARTITION))

config FLASH_LOAD_SIZE
	default $(dt_chosen_reg_size_hex,$(DT_CHOSEN_Z_CODE_PARTITION))

endif # BOARD_CTCC_NRF9161_NS
endif # BOARD_CTCC_NRF9161 || BOARD_CTCC_NRF9161_NS
