# Copyright (c) 2022 Nordic Semiconductor ASA

# SPDX-License-Identifier: Apache-2.0

# This file contains Zephyr hw module v2 Kconfig description for
# Nordic Semiconductor SoCs.
# The hw model v2 is generic and contains no Kconfig references outside its own
# tree structure and is therefore reusable in Kconfig trees outside a Zephyr build.

config SOC_SERIES
	default "nrf51" if SOC_SERIES_NRF51X
	default "nrf52" if SOC_SERIES_NRF52X
	default "nrf53" if SOC_SERIES_NRF53X
	default "nrf54h" if SOC_SERIES_NRF54HX
	default "nrf54l" if SOC_SERIES_NRF54LX
	default "nrf91" if SOC_SERIES_NRF91X
	default "nrf92" if SOC_SERIES_NRF92X

config SOC_FAMILY_NORDIC_NRF
	bool

config SOC_FAMILY
	default "nordic_nrf" if SOC_FAMILY_NORDIC_NRF

config SOC_SERIES_NRF51X
	bool
	help
	  Enable support for NRF51 MCU series

config SOC_SERIES_NRF52X
	bool
	select SOC_FAMILY_NORDIC_NRF
	help
	  Enable support for NRF52 MCU series

config SOC_SERIES_NRF53X
	bool
	select SOC_FAMILY_NORDIC_NRF
	help
	 Enable support for NRF53 MCU series

config SOC_SERIES_NRF54HX
	bool
	select SOC_FAMILY_NORDIC_NRF
	help
	  Nordic Semiconductor nRF54H series MCU

config SOC_SERIES_NRF54LX
	bool
	select SOC_FAMILY_NORDIC_NRF
	help
	  Nordic Semiconductor nRF54L series MCU

config SOC_SERIES_NRF91X
	bool
	select SOC_FAMILY_NORDIC_NRF
	help
	  Enable support for NRF91 MCU series

config SOC_SERIES_NRF92X
	bool
	select SOC_FAMILY_NORDIC_NRF
	help
	  Enable support for NRF92 MCU series

rsource "*/Kconfig.soc"
