# Cypress Semiconductor PSoC6 series configuration options

# Copyright (c) 2018, Cypress
# Copyright (c) 2020, ATL Electronics
# SPDX-License-Identifier: Apache-2.0

if SOC_SERIES_PSOC62 || \
	SOC_SERIES_PSOC63

config SOC_SERIES
	default "psoc6"

config SOC_PART_NUMBER
	default "CY8C6247BZI_D54" if SOC_PART_NUMBER_CY8C6247BZI_D54

config SOC_PART_NUMBER
	default "CY8C6347BZI_BLD53" if SOC_PART_NUMBER_CY8C6347BZI_BLD53

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 50000000

source "soc/arm/cypress/psoc6/Kconfig.defconfig.psoc*"

config SPI_PSOC6
	default y
	depends on SPI

config UART_PSOC6
	default y
	depends on SERIAL

endif   # SOC_SERIES_PSOC62 || \
	# SOC_SERIES_PSOC63
