# 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"
	default y
	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. All device drivers that use the relevant
	  macros and provide such function should select this option.

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
