1# Copyright (c) 2014-2015 Wind River Systems, Inc.
2# Copyright (c) 2024 Intel Corp.
3# SPDX-License-Identifier: Apache-2.0
4#
5menu "Device Options"
6
7config DEVICE_DEPS
8	bool "Store device dependencies"
9	help
10	  When enabled, device dependencies will be stored so that they can be
11	  queried at runtime. Device dependencies are typically inferred from
12	  devicetree. Enabling this option will increase ROM usage (or RAM if
13	  dynamic device dependencies are enabled).
14
15config DEVICE_DEPS_DYNAMIC
16	bool "Dynamic device dependencies"
17	depends on DEVICE_DEPS
18	help
19	  Option that makes it possible to manipulate device dependencies at
20	  runtime.
21
22config DEVICE_MUTABLE
23	bool "Mutable devices [EXPERIMENTAL]"
24	select EXPERIMENTAL
25	help
26	  Support mutable devices. Mutable devices are instantiated in SRAM
27	  instead of Flash and are runtime modifiable in kernel mode.
28
29config DEVICE_DT_METADATA
30	bool "Store additional devicetree metadata for each device"
31	help
32	  If enabled, additional data from the devicetree will be stored for
33	  each device. This allows you to use device_get_by_dt_nodelabel(),
34	  device_get_dt_metadata(), etc.
35
36config DEVICE_DEINIT_SUPPORT
37	bool "Support device de-initialization"
38	help
39	  In very specific case, it might be necessary to de-initialize
40	  a device at runtime. This is possible by providing a function
41	  to do so. Note, that this will grow every struct device by a
42	  function pointer. All device drivers that use the relevant
43	  macros and provide such function should select this option.
44
45endmenu
46
47menu "Initialization Priorities"
48
49config KERNEL_INIT_PRIORITY_OBJECTS
50	int "Kernel objects initialization priority"
51	default 30
52	help
53	  Kernel objects use this priority for initialization. This
54	  priority needs to be higher than minimal default initialization
55	  priority.
56
57config KERNEL_INIT_PRIORITY_LIBC
58	int "LIBC initialization priority"
59	default 35
60	help
61	  LIBC uses this priority for initialization. This
62	  priority needs to be higher than minimal default initialization
63	  priority.
64
65config KERNEL_INIT_PRIORITY_DEFAULT
66	int "Default init priority"
67	default 40
68	help
69	  Default minimal init priority for each init level.
70
71config KERNEL_INIT_PRIORITY_DEVICE
72	int "Default init priority for device drivers"
73	default 50
74	help
75	  Device driver, that depends on common components, such as
76	  interrupt controller, but does not depend on other devices,
77	  uses this init priority.
78
79config APPLICATION_INIT_PRIORITY
80	int "Default init priority for application level drivers"
81	default 90
82	help
83	  This priority level is for end-user drivers such as sensors and display
84	  which have no inward dependencies.
85
86
87endmenu
88