# Copyright (c) 2014-2015 Wind River Systems, Inc.
# Copyright (c) 2024 Intel Corp.
# SPDX-License-Identifier: Apache-2.0
#
menu "Device Options"

config DEVICE_DEPS
	bool "Store device dependencies"
	help
	  When enabled, device dependencies will be stored so that they can be
	  queried at runtime. Device dependencies are typically inferred from
	  devicetree. Enabling this option will increase ROM usage (or RAM if
	  dynamic device dependencies are enabled).

config DEVICE_DEPS_DYNAMIC
	bool "Dynamic device dependencies"
	depends on DEVICE_DEPS
	help
	  Option that makes it possible to manipulate device dependencies at
	  runtime.

config DEVICE_MUTABLE
	bool "Mutable devices [EXPERIMENTAL]"
	select EXPERIMENTAL
	help
	  Support mutable devices. Mutable devices are instantiated in SRAM
	  instead of Flash and are runtime modifiable in kernel mode.

config DEVICE_DT_METADATA
	bool "Store additional devicetree metadata for each device"
	help
	  If enabled, additional data from the devicetree will be stored for
	  each device. This allows you to use device_get_by_dt_nodelabel(),
	  device_get_dt_metadata(), etc.

config DEVICE_DEINIT_SUPPORT
	bool "Support device de-initialization"
	help
	  In very specific case, it might be necessary to de-initialize
	  a device at runtime. This is possible by providing a function
	  to do so. Note, that this will grow every struct device by a
	  function pointer.

endmenu

menu "Initialization Priorities"

config KERNEL_INIT_PRIORITY_OBJECTS
	int "Kernel objects initialization priority"
	default 30
	help
	  Kernel objects use this priority for initialization. This
	  priority needs to be higher than minimal default initialization
	  priority.

config KERNEL_INIT_PRIORITY_LIBC
	int "LIBC initialization priority"
	default 35
	help
	  LIBC uses this priority for initialization. This
	  priority needs to be higher than minimal default initialization
	  priority.

config KERNEL_INIT_PRIORITY_DEFAULT
	int "Default init priority"
	default 40
	help
	  Default minimal init priority for each init level.

config KERNEL_INIT_PRIORITY_DEVICE
	int "Default init priority for device drivers"
	default 50
	help
	  Device driver, that depends on common components, such as
	  interrupt controller, but does not depend on other devices,
	  uses this init priority.

config APPLICATION_INIT_PRIORITY
	int "Default init priority for application level drivers"
	default 90
	help
	  This priority level is for end-user drivers such as sensors and display
	  which have no inward dependencies.


endmenu
