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	default y
39	help
40	  In very specific case, it might be necessary to de-initialize
41	  a device at runtime. This is possible by providing a function
42	  to do so. Note, that this will grow every struct device by a
43	  function pointer. All device drivers that use the relevant
44	  macros and provide such function should select this option.
45
46endmenu
47
48menu "Initialization Priorities"
49
50config KERNEL_INIT_PRIORITY_OBJECTS
51	int "Kernel objects initialization priority"
52	default 30
53	help
54	  Kernel objects use this priority for initialization. This
55	  priority needs to be higher than minimal default initialization
56	  priority.
57
58config KERNEL_INIT_PRIORITY_LIBC
59	int "LIBC initialization priority"
60	default 35
61	help
62	  LIBC uses this priority for initialization. This
63	  priority needs to be higher than minimal default initialization
64	  priority.
65
66config KERNEL_INIT_PRIORITY_DEFAULT
67	int "Default init priority"
68	default 40
69	help
70	  Default minimal init priority for each init level.
71
72config KERNEL_INIT_PRIORITY_DEVICE
73	int "Default init priority for device drivers"
74	default 50
75	help
76	  Device driver, that depends on common components, such as
77	  interrupt controller, but does not depend on other devices,
78	  uses this init priority.
79
80config APPLICATION_INIT_PRIORITY
81	int "Default init priority for application level drivers"
82	default 90
83	help
84	  This priority level is for end-user drivers such as sensors and display
85	  which have no inward dependencies.
86
87
88endmenu
89