1# I3C configuration options
2#
3# Copyright (c) 2022 Intel Corporation
4#
5# SPDX-License-Identifier: Apache-2.0
6
7menuconfig I3C
8	bool "Improved Inter-Integrated Circuit (I3C) bus drivers"
9	help
10	  Enable I3C Driver Configuration
11
12if I3C
13
14module = I3C
15module-str = i3c
16source "subsys/logging/Kconfig.template.log_config"
17
18config I3C_USE_GROUP_ADDR
19	bool "Use Group Addresses"
20	default y
21	help
22	  Enable this to use group addresses if supported
23	  by the controllers and target devices.
24
25	  Says Y if unsure.
26
27menuconfig I3C_USE_IBI
28	bool "Use In-Band Interrupt (IBI)"
29	default y
30	help
31	  Enable this to use In-Band Interrupt (IBI).
32
33	  Says Y if unsure.
34
35if I3C_USE_IBI
36
37config I3C_IBI_MAX_PAYLOAD_SIZE
38	int "Maximum IBI Payload Size"
39	default 16
40	help
41	  Maxmium IBI payload size.
42
43menuconfig I3C_IBI_WORKQUEUE
44	bool "Use IBI Workqueue"
45	help
46	  Use global workqueue for processing IBI.
47
48	  This is enabled by driver if needed.
49
50if I3C_IBI_WORKQUEUE
51
52config I3C_IBI_WORKQUEUE_STACK_SIZE
53	int "IBI workqueue stack size"
54	default 1024
55	help
56	  Stack size for the IBI global workqueue.
57
58config I3C_IBI_WORKQUEUE_PRIORITY
59	int "IBI workqueue thread priority"
60	default -1
61	help
62	  Thread priority for the IBI global workqueue.
63
64config I3C_IBI_WORKQUEUE_LENGTH
65	int "IBI workqueue queue length"
66	default 8
67	help
68	  Define the maximum number of IBIs that can be
69	  queued in the workqueue.
70
71config I3C_IBI_WORKQUEUE_VERBOSE_DEBUG
72	bool "Verbose debug messages for IBI workqueue"
73	help
74	  This turns on verbose debug for the IBI workqueue
75	  when logging level is set to DEBUG, and prints
76	  the IBI payload.
77
78endif # I3C_IBI_WORKQUEUE
79
80endif # I3C_USE_IBI
81
82comment "Initialization Priority"
83
84config I3C_CONTROLLER_INIT_PRIORITY
85	int "I3C Controller Init Priority"
86	# Default is just after CONFIG_KERNEL_INIT_PRIORITY_DEVICE
87	default 50
88	help
89	  This is for setting up I3C controller device driver instance
90	  and also to perform bus initialization (e.g. dynamic address
91	  assignment).
92
93	  Note that this needs to be done before the device driver
94	  instances of the connected I2C and I3C devices start
95	  initializing those devices. This is because some devices
96	  may not be addressable until addresses are assigned by
97	  the controller.
98
99comment "Device Drivers"
100
101rsource "Kconfig.nxp"
102rsource "Kconfig.cdns"
103rsource "Kconfig.test"
104
105endif # I3C
106