# SYSCON configuration options

# Copyright (c) 2021 Carlo Caione <ccaione@baylibre.com>
# SPDX-License-Identifier: Apache-2.0

#
# SYSCON options
#
menuconfig SYSCON
	bool "SYSCON (System Controller) drivers"
	help
	  SYSCON (System Controller) drivers. System controller node represents
	  a register region containing a set of miscellaneous registers. The
	  registers are not cohesive enough to represent as any specific type
	  of device. The typical use-case is for some other node's driver, or
	  platform-specific code, to acquire a reference to the syscon node and
	  extract information from there.

if SYSCON

module = SYSCON
module-str = syscon
source "subsys/logging/Kconfig.template.log_config"

DT_COMPAT_SYSCON := syscon

config SYSCON_GENERIC
	bool "Generic SYSCON (System Controller) driver"
	default $(dt_compat_enabled,$(DT_COMPAT_SYSCON))
	help
	  Enable generic SYSCON (System Controller) driver

config SYSCON_INIT_PRIORITY
	int "SYSCON (System Controller) driver init priority"
	default 50
	help
	  This option controls the priority of the syscon device
	  initialization. Higher priority ensures that the device is
	  initialized earlier in the startup cycle. If unsure, leave at default
	  value

endif # SYSCON
