1# Bluetooth Controller configuration options
2
3# Copyright (c) 2016-2017 Nordic Semiconductor ASA
4# SPDX-License-Identifier: Apache-2.0
5
6# The following symbols are enabled depending if the controller actually
7# supports the respective features.
8
9config BT_CTLR_ENTROPY_SUPPORT
10	bool
11
12config BT_CTLR_CRYPTO_SUPPORT
13	bool
14
15config BT_CTLR_LE_ENC_SUPPORT
16	bool
17
18config BT_CTLR_CONN_PARAM_REQ_SUPPORT
19	bool
20
21config BT_CTLR_EXT_REJ_IND_SUPPORT
22	bool
23
24config BT_CTLR_PER_INIT_FEAT_XCHG_SUPPORT
25	bool
26
27config BT_CTLR_DATA_LEN_UPDATE_SUPPORT
28	bool
29
30config BT_CTLR_PRIVACY_SUPPORT
31	bool
32
33config BT_CTLR_EXT_SCAN_FP_SUPPORT
34	bool
35
36config BT_CTLR_PHY_UPDATE_SUPPORT
37	bool
38
39config BT_CTLR_PHY_2M_SUPPORT
40	bool
41
42config BT_CTLR_PHY_CODED_SUPPORT
43	bool
44
45config BT_CTLR_ADV_EXT_SUPPORT
46	bool
47
48config BT_CTLR_ADV_EXT_CODING_SELECTION_SUPPORT
49	depends on BT_CTLR_PHY_CODED_SUPPORT
50	bool
51
52config BT_CTLR_ADV_PERIODIC_SUPPORT
53	depends on BT_CTLR_ADV_EXT_SUPPORT
54	bool
55
56config BT_CTLR_ADV_PERIODIC_RSP_SUPPORT
57	depends on BT_CTLR_ADV_PERIODIC_SUPPORT
58	bool
59
60config BT_CTLR_SYNC_PERIODIC_SUPPORT
61	depends on BT_CTLR_ADV_EXT_SUPPORT
62	bool
63
64config BT_CTLR_SYNC_PERIODIC_RSP_SUPPORT
65	depends on BT_CTLR_SYNC_PERIODIC_SUPPORT
66	bool
67
68config BT_CTLR_SYNC_TRANSFER_SENDER_SUPPORT
69	depends on BT_CTLR_SYNC_PERIODIC_SUPPORT || BT_CTLR_ADV_PERIODIC_SUPPORT
70	bool
71
72config BT_CTLR_SYNC_TRANSFER_RECEIVER_SUPPORT
73	depends on BT_CTLR_SYNC_PERIODIC_SUPPORT
74	bool
75
76config BT_CTLR_ADV_ISO_SUPPORT
77	depends on BT_CTLR_ADV_PERIODIC_SUPPORT
78	bool
79
80config BT_CTLR_SYNC_ISO_SUPPORT
81	depends on BT_CTLR_SYNC_PERIODIC_SUPPORT
82	bool
83
84config BT_CTLR_BROADCAST_ISO_ENC_SUPPORT
85	depends on BT_CTLR_ADV_ISO_SUPPORT || BT_CTLR_SYNC_ISO_SUPPORT
86	bool
87
88config BT_CTLR_CENTRAL_ISO_SUPPORT
89	bool
90
91config BT_CTLR_PERIPHERAL_ISO_SUPPORT
92	bool
93
94config BT_CTLR_CHAN_SEL_2_SUPPORT
95	bool
96
97config BT_CTLR_MIN_USED_CHAN_SUPPORT
98	bool
99
100config BT_CTLR_SMI_SUPPORT
101	bool
102
103config BT_CTLR_SCA_UPDATE_SUPPORT
104	bool
105
106config BT_CTLR_CONN_RSSI_SUPPORT
107	bool
108
109config BT_CTLR_ECDH_SUPPORT
110	bool
111
112config BT_CTLR_READ_ISO_LINK_QUALITY_SUPPORT
113	depends on BT_CTLR_SYNC_ISO_SUPPORT || \
114		   BT_CTLR_CENTRAL_ISO_SUPPORT || \
115		   BT_CTLR_PERIPHERAL_ISO_SUPPORT
116	bool
117
118config BT_CTLR_LE_POWER_CONTROL_SUPPORT
119	bool
120
121config BT_CTLR_LE_PATH_LOSS_MONITORING_SUPPORT
122	bool
123
124config BT_CTLR_SUBRATING_SUPPORT
125	bool
126
127config BT_CTLR_FRAME_SPACE_UPDATE_SUPPORT
128	bool
129
130config BT_CTLR_CHANNEL_SOUNDING_SUPPORT
131	bool
132
133config BT_CTLR_EXTENDED_FEAT_SET_SUPPORT
134	bool
135
136config BT_CTLR_SHORTER_CONNECTION_INTERVALS_SUPPORT
137	bool
138
139# Virtual option that all local LL implementations should select
140config HAS_BT_CTLR
141	bool
142
143config BT_LL_SW_SPLIT
144	bool "Software-based Bluetooth LE Link Layer"
145	default y
146	depends on DT_HAS_ZEPHYR_BT_HCI_LL_SW_SPLIT_ENABLED
147	select HAS_BT_CTLR
148	help
149	  Use Zephyr software Bluetooth LE Link Layer ULL LLL split implementation.
150
151config BT_CTLR_HCI
152	bool "Host Controller Interface (HCI)"
153	default y
154	depends on HAS_BT_CTLR
155	help
156	  Enable the Host Controller interface (HCI) in the Controller.
157	  This should almost always be enabled, except in a few special
158	  cases, like for unit testing.
159
160config BT_CTLR_HCI_NUM_CMD_PKT_MAX
161	# Hidden Controller implementation supported Num_HCI_Command_Packets value.
162	# This value will be used to calculate the total number of HCI command buffers to be
163	# allocated, BT_BUF_CMD_TX_COUNT, dependent on HCI Controller to Host data flow control
164	# being enabled.
165	int
166	depends on BT_CTLR_HCI
167	default 1 if BT_LL_SW_SPLIT
168	default 1
169
170if HAS_BT_CTLR
171
172comment "Bluetooth Controller configuration"
173
174config BT_CTLR_ENTROPY
175	bool "Random number generation in Controller"
176	depends on BT_CTLR_ENTROPY_SUPPORT
177	select ENTROPY_GENERATOR
178	default y
179	help
180	  Use random number generation selected by the Controller.
181
182	  Bluetooth Core Specification mandates a use of random number generator
183	  compliant with FIPS PUB 140-2.
184
185	  Deselecting this option allows for Controllers to use other entropy
186	  generators which may not be true random number generators, and hence
187	  would make the implementation experimental.
188
189	  A Controller implementation could also provide custom bare-metal
190	  random number generator implementation without any support in Zephyr
191	  driver, i.e. there is no ENTROPY_HAS_DRIVER enabled.
192
193config BT_CTLR_CRYPTO
194	bool "Crypto functions in Controller"
195	depends on BT_CTLR_CRYPTO_SUPPORT
196	default y
197	help
198	  Use random number generation and AES encryption support functions
199	  provided by the controller.
200
201	  Support for HCI LE Rand and HCI LE Encrypt commands is mandatory by
202	  Bluetooth Core Specification.
203
204	  In an Application/Host and Controller split (using a HCI transport) or
205	  combined builds for single CPU SoCs, applications can use their own
206	  FIPS-197 compliant cryptographic implementations. In this case the
207	  Controller cryptographic implementations can be disabled to save flash
208	  and RAM usage.
209
210config BT_CTLR_HCI_VS_BUILD_INFO
211	string "Zephyr HCI VS Build Info string"
212	default ""
213	depends on BT_CTLR_HCI && BT_HCI_VS
214	help
215	  User-defined string that will be returned by the Zephyr VS Read Build
216	  Information command after the Zephyr version and build time. When
217	  setting this to a value different from an empty string, a space
218	  character is required at the beginning to separate it from the
219	  already included information.
220
221config BT_CTLR_DUP_FILTER_LEN
222	int "Number of addresses in the scan duplicate filter"
223	depends on BT_OBSERVER
224	depends on BT_LL_SW_SPLIT
225	default 16
226	help
227	  Set the number of unique Bluetooth LE addresses that can be filtered as
228	  duplicates while scanning.
229
230config BT_CTLR_DUP_FILTER_ADV_SET_MAX
231	int "Number of Extended Advertising Sets in the scan duplicate filter"
232	depends on BT_OBSERVER && BT_CTLR_ADV_EXT && (BT_CTLR_DUP_FILTER_LEN > 0)
233	depends on BT_LL_SW_SPLIT
234	range 1 16
235	default 1
236	help
237	  Set the number of unique Advertising Set ID per Bluetooth Low Energy
238	  addresses that can be filtered as duplicates while Extended Scanning.
239
240config BT_CTLR_RX_BUFFERS
241	int "Number of Rx buffers"
242	depends on BT_LL_SW_SPLIT
243	default 6 if BT_HCI_RAW
244	default 1
245	range 1 18
246	help
247	  Set the number of Rx PDUs to be buffered in the controller. In a 7.5ms
248	  connection interval and 2M PHY, maximum 18 packets with L2CAP payload
249	  size of 1 byte can be received.
250
251config BT_CTLR_ISO_RX_BUFFERS
252	int "Number of Isochronous Rx buffers"
253	depends on BT_CTLR_SYNC_ISO || BT_CTLR_CONN_ISO
254	default 8
255	range 1 30
256	help
257	  Set the number of Isochronous Rx PDUs to be buffered in the
258	  controller. Number of required RX buffers would worst-case be
259	  the number of RX nodes prepared in one ISO event for each
260	  active ISO group. This depends on the number of bursts in an
261	  ISO group and number of groups, and may need to be set lower
262	  that the theoretical maximum. Default of 8 is for supporting
263	  two groups of 4 payloads, e.g. 2 CIGs with 2 CISes of BN=2.
264
265config BT_CTLR_ISO_TX_BUFFERS
266	int "Number of Isochronous Tx buffers"
267	depends on BT_CTLR_ADV_ISO || BT_CTLR_CONN_ISO
268	range 1 $(UINT8_MAX)
269	default BT_ISO_TX_BUF_COUNT if BT_ISO
270	default 3
271	help
272	  Set the number of Isochronous Tx PDUs to be queued for transmission
273	  in the controller.
274
275config BT_CTLR_ISO_TX_BUFFER_SIZE
276	int "Isochronous Tx buffer size"
277	depends on BT_CTLR_ADV_ISO || BT_CTLR_CONN_ISO
278	range 9 4103 if BT_LL_SW_SPLIT
279	range 1 $(UINT16_MAX)
280	default 9 if BT_LL_SW_SPLIT
281	default 1
282	help
283	  Size of the Isochronous Tx buffers and the value returned in HCI LE
284	  Read Buffer Size V2 command response. This is the data portion of the
285	  HCI ISO Data packet, corresponding to the Data_Total_Length field.
286
287	  Currently the maximum SDU length is 4095 bytes, hence add HCI ISO
288	  Data packet overhead (the Packet_Sequence_Number, ISO_SDU_Length,
289	  Packet_Status_Flag fields; and the optional Time_Stamp field, if
290	  supplied) of 8 bytes.
291
292config BT_CTLR_ISOAL_SOURCES
293	int "Number of Isochronous Adaptation Layer sources"
294	depends on BT_CTLR_ADV_ISO || BT_CTLR_CONN_ISO
295	range 1 64
296	default 1
297	help
298	  Set the number of concurrently active sources supported by the
299	  ISO AL.
300
301config BT_CTLR_ISOAL_SINKS
302	int "Number of Isochronous Adaptation Layer sinks"
303	depends on BT_CTLR_SYNC_ISO || BT_CTLR_CONN_ISO
304	range 1 64
305	default 1
306	help
307	  Set the number of concurrently active sinks supported by the
308	  ISO AL.
309
310config BT_CTLR_ISO_RX_SDU_BUFFERS
311	int "Number of SDU fragments that the ISO-AL can buffer"
312	depends on BT_CTLR_SYNC_ISO || BT_CTLR_CONN_ISO
313	default 0
314	range 0 64
315	help
316	  Set the number of Isochronous Rx SDU fragments to be buffered in the
317	  ISO-AL per sink. Buffering is required to compute the size and status
318	  of the received SDU across all the fragments before each is released.
319	  The number of buffers and maximum SDU fragment size will limit the
320	  maximum size of an SDU that can be accurately declared in the HCI ISO
321	  Data header.
322
323config BT_CTLR_ISO_VENDOR_DATA_PATH
324	bool "Vendor-specific ISO data path"
325	depends on BT_CTLR_SYNC_ISO || BT_CTLR_CONN_ISO
326	select BT_CTLR_HCI_CODEC_AND_DELAY_INFO
327
328choice BT_CTLR_TX_PWR
329	prompt "Tx Power"
330	default BT_CTLR_TX_PWR_0
331	depends on BT_CTLR_TX_PWR_ANTENNA = 0 || BT_LL_SW_SPLIT
332	help
333	  Select a supported Bluetooth LE Radio transmit power level in dBm.
334	  Only values supported natively by the SoC are available.
335	  The value set here represents the actual default power level fed
336	  to the antenna.
337
338config BT_CTLR_TX_PWR_PLUS_21
339	bool "+21 dBm"
340	depends on SOC_FAMILY_ESPRESSIF_ESP32
341
342config BT_CTLR_TX_PWR_PLUS_18
343	bool "+18 dBm"
344	depends on SOC_FAMILY_ESPRESSIF_ESP32
345
346config BT_CTLR_TX_PWR_PLUS_15
347	bool "+15 dBm"
348	depends on SOC_FAMILY_ESPRESSIF_ESP32
349
350config BT_CTLR_TX_PWR_PLUS_12
351	bool "+12 dBm"
352	depends on SOC_FAMILY_ESPRESSIF_ESP32
353
354config BT_CTLR_TX_PWR_PLUS_10
355	bool "+10 dBm"
356	depends on SOC_SERIES_NRF54HX
357
358config BT_CTLR_TX_PWR_PLUS_9
359	bool "+9 dBm"
360	depends on SOC_SERIES_NRF54HX || SOC_FAMILY_ESPRESSIF_ESP32
361
362config BT_CTLR_TX_PWR_PLUS_8
363	bool "+8 dBm"
364	depends on HAS_HW_NRF_RADIO_TX_PWR_HIGH || SOC_SERIES_NRF54HX || SOC_COMPATIBLE_NRF54LX
365
366config BT_CTLR_TX_PWR_PLUS_7
367	bool "+7 dBm"
368	depends on HAS_HW_NRF_RADIO_TX_PWR_HIGH || SOC_SERIES_NRF54HX || SOC_COMPATIBLE_NRF54LX
369
370config BT_CTLR_TX_PWR_PLUS_6
371	bool "+6 dBm"
372	depends on HAS_HW_NRF_RADIO_TX_PWR_HIGH || SOC_SERIES_NRF54HX || SOC_COMPATIBLE_NRF54LX || SOC_FAMILY_ESPRESSIF_ESP32
373
374config BT_CTLR_TX_PWR_PLUS_5
375	bool "+5 dBm"
376	depends on HAS_HW_NRF_RADIO_TX_PWR_HIGH || SOC_SERIES_NRF54HX || SOC_COMPATIBLE_NRF54LX
377
378config BT_CTLR_TX_PWR_PLUS_4
379	bool "+4 dBm"
380	depends on SOC_SERIES_NRF51X || SOC_COMPATIBLE_NRF52X || SOC_SERIES_NRF54HX || SOC_COMPATIBLE_NRF54LX
381
382config BT_CTLR_TX_PWR_PLUS_3
383	bool "+3 dBm"
384	depends on SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF53X || SOC_SERIES_NRF54HX || SOC_COMPATIBLE_NRF54LX || SOC_FAMILY_ESPRESSIF_ESP32
385
386config BT_CTLR_TX_PWR_PLUS_2
387	bool "+2 dBm"
388	depends on HAS_HW_NRF_RADIO_TX_PWR_HIGH || SOC_COMPATIBLE_NRF53X || SOC_SERIES_NRF54HX || SOC_COMPATIBLE_NRF54LX
389
390config BT_CTLR_TX_PWR_PLUS_1
391	bool "+1 dBm"
392	depends on SOC_COMPATIBLE_NRF53X || SOC_SERIES_NRF54HX || SOC_COMPATIBLE_NRF54LX
393
394config BT_CTLR_TX_PWR_0
395	bool "0 dBm"
396
397config BT_CTLR_TX_PWR_MINUS_1
398	bool "-1 dBm"
399	depends on SOC_COMPATIBLE_NRF53X || SOC_SERIES_NRF54HX || SOC_COMPATIBLE_NRF54LX
400
401config BT_CTLR_TX_PWR_MINUS_2
402	bool "-2 dBm"
403	depends on SOC_COMPATIBLE_NRF53X || SOC_SERIES_NRF54HX || SOC_COMPATIBLE_NRF54LX
404
405config BT_CTLR_TX_PWR_MINUS_3
406	bool "-3 dBm"
407	depends on SOC_COMPATIBLE_NRF53X || SOC_COMPATIBLE_NRF54LX || SOC_FAMILY_ESPRESSIF_ESP32
408
409config BT_CTLR_TX_PWR_MINUS_4
410	bool "-4 dBm"
411
412config BT_CTLR_TX_PWR_MINUS_5
413	bool "-5 dBm"
414	depends on SOC_COMPATIBLE_NRF53X || SOC_COMPATIBLE_NRF54LX
415
416config BT_CTLR_TX_PWR_MINUS_6
417	bool "-6 dBm"
418	depends on SOC_COMPATIBLE_NRF53X || SOC_COMPATIBLE_NRF54LX || SOC_FAMILY_ESPRESSIF_ESP32
419
420config BT_CTLR_TX_PWR_MINUS_7
421	bool "-7 dBm"
422	depends on SOC_COMPATIBLE_NRF53X || SOC_COMPATIBLE_NRF54LX
423
424config BT_CTLR_TX_PWR_MINUS_8
425	bool "-8 dBm"
426
427config BT_CTLR_TX_PWR_MINUS_9
428	bool "-9 dBm"
429	depends on SOC_COMPATIBLE_NRF54LX || SOC_FAMILY_ESPRESSIF_ESP32
430
431config BT_CTLR_TX_PWR_MINUS_10
432	bool "-10 dBm"
433	depends on SOC_COMPATIBLE_NRF54LX
434
435config BT_CTLR_TX_PWR_MINUS_12
436	bool "-12 dBm"
437
438config BT_CTLR_TX_PWR_MINUS_14
439	bool "-14 dBm"
440	depends on SOC_COMPATIBLE_NRF54LX
441
442config BT_CTLR_TX_PWR_MINUS_15
443	bool "-15 dBm"
444	depends on SOC_FAMILY_ESPRESSIF_ESP32
445
446config BT_CTLR_TX_PWR_MINUS_16
447	bool "-16 dBm"
448
449config BT_CTLR_TX_PWR_MINUS_18
450	bool "-18 dBm"
451	depends on SOC_FAMILY_ESPRESSIF_ESP32
452
453config BT_CTLR_TX_PWR_MINUS_20
454	bool "-20 dBm"
455
456config BT_CTLR_TX_PWR_MINUS_21
457	bool "-21 dBm"
458	depends on SOC_FAMILY_ESPRESSIF_ESP32
459
460config BT_CTLR_TX_PWR_MINUS_24
461	bool "-24 dBm"
462	depends on SOC_FAMILY_ESPRESSIF_ESP32
463
464config BT_CTLR_TX_PWR_MINUS_26
465	bool "-26 dBm"
466	depends on SOC_COMPATIBLE_NRF54LX
467
468config BT_CTLR_TX_PWR_MINUS_30
469	bool "-30 dBm"
470	depends on SOC_SERIES_NRF51X || SOC_SERIES_NRF54HX
471
472config BT_CTLR_TX_PWR_MINUS_40
473	bool "-40 dBm"
474	depends on SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF53X || SOC_SERIES_NRF54HX || SOC_COMPATIBLE_NRF54LX
475
476config BT_CTLR_TX_PWR_MINUS_46
477	bool "-46 dBm"
478	depends on SOC_COMPATIBLE_NRF54LX
479
480config BT_CTLR_TX_PWR_MINUS_70
481	bool "-70 dBm"
482	depends on SOC_SERIES_NRF54HX
483
484endchoice
485
486config BT_CTLR_TX_PWR_DBM
487	int
488	default 21 if BT_CTLR_TX_PWR_PLUS_21
489	default 18 if BT_CTLR_TX_PWR_PLUS_18
490	default 15 if BT_CTLR_TX_PWR_PLUS_15
491	default 12 if BT_CTLR_TX_PWR_PLUS_12
492	default 10 if BT_CTLR_TX_PWR_PLUS_10
493	default 9 if BT_CTLR_TX_PWR_PLUS_9
494	default 8 if BT_CTLR_TX_PWR_PLUS_8
495	default 7 if BT_CTLR_TX_PWR_PLUS_7
496	default 6 if BT_CTLR_TX_PWR_PLUS_6
497	default 5 if BT_CTLR_TX_PWR_PLUS_5
498	default 4 if BT_CTLR_TX_PWR_PLUS_4
499	default 3 if BT_CTLR_TX_PWR_PLUS_3
500	default 2 if BT_CTLR_TX_PWR_PLUS_2
501	default 1 if BT_CTLR_TX_PWR_PLUS_1
502	default 0 if BT_CTLR_TX_PWR_0
503	default -1 if BT_CTLR_TX_PWR_MINUS_1
504	default -2 if BT_CTLR_TX_PWR_MINUS_2
505	default -3 if BT_CTLR_TX_PWR_MINUS_3
506	default -4 if BT_CTLR_TX_PWR_MINUS_4
507	default -5 if BT_CTLR_TX_PWR_MINUS_5
508	default -6 if BT_CTLR_TX_PWR_MINUS_6
509	default -7 if BT_CTLR_TX_PWR_MINUS_7
510	default -8 if BT_CTLR_TX_PWR_MINUS_8
511	default -9 if BT_CTLR_TX_PWR_MINUS_9
512	default -10 if BT_CTLR_TX_PWR_MINUS_10
513	default -12 if BT_CTLR_TX_PWR_MINUS_12
514	default -14 if BT_CTLR_TX_PWR_MINUS_14
515	default -15 if BT_CTLR_TX_PWR_MINUS_15
516	default -16 if BT_CTLR_TX_PWR_MINUS_16
517	default -18 if BT_CTLR_TX_PWR_MINUS_18
518	default -20 if BT_CTLR_TX_PWR_MINUS_20
519	default -21 if BT_CTLR_TX_PWR_MINUS_21
520	default -24 if BT_CTLR_TX_PWR_MINUS_24
521	default -26 if BT_CTLR_TX_PWR_MINUS_26
522	default -30 if BT_CTLR_TX_PWR_MINUS_30
523	default -40 if BT_CTLR_TX_PWR_MINUS_40
524	default -46 if BT_CTLR_TX_PWR_MINUS_46
525	default -70 if BT_CTLR_TX_PWR_MINUS_70
526
527config BT_CTLR_TX_PWR_ANTENNA
528	int "Set TX power (dBm)"
529	range -127 127
530	default 0
531	depends on !BT_LL_SW_SPLIT
532	help
533	  Request a TX power in dBm. The power level set will be equal to or
534	  less than the one requested, based on the values supported by the
535	  hardware used. Values outside the supported range will be set to the
536	  nearest supported value.
537	  The value set here represents the actual power level fed to the
538	  antenna. When a Front-End Module is used, gain values for the SoC and
539	  FEM are calculated automatically to guarantee the closest possible
540	  match to the value requested by the user at the RF output.
541
542config BT_CTLR_TX_PWR_DYNAMIC_CONTROL
543	bool "Tx Power Dynamic Control"
544	depends on BT_HCI_VS
545	help
546	  Enable dynamic control of Tx power per role/connection.
547	  Provides HCI VS commands to set and get the current Tx
548	  power on an individual role/connection basis.
549
550comment "Bluetooth Controller features"
551
552if BT_CONN
553
554config BT_CTLR_LE_ENC
555	bool "LE Encryption"
556	depends on BT_CTLR_LE_ENC_SUPPORT
557	default y
558	help
559	  Enable support for Bluetooth v4.0 LE Encryption feature in the
560	  Controller.
561
562config BT_CTLR_ECDH
563	bool "Elliptic Curve Diffie-Hellman (ECDH)"
564	depends on BT_CTLR_ECDH_SUPPORT
565	default y if BT_HCI_RAW
566	help
567	  Enable support for Bluetooth v4.2 Elliptic Curve Diffie-Hellman
568	  feature in the controller.
569
570config BT_CTLR_CONN_PARAM_REQ
571	bool "Connection Parameter Request"
572	depends on BT_CTLR_CONN_PARAM_REQ_SUPPORT
573	select BT_CTLR_EXT_REJ_IND
574	default y
575	help
576	  Enable support for Bluetooth v4.1 Connection Parameter Request feature
577	  in the Controller.
578
579config BT_CTLR_EXT_REJ_IND
580	bool "Extended Reject Indication"
581	depends on BT_CTLR_EXT_REJ_IND_SUPPORT
582	default y
583	help
584	  Enable support for Bluetooth v4.1 Extended Reject Indication feature
585	  in the Controller.
586
587config BT_CTLR_PER_INIT_FEAT_XCHG
588	bool "Peripheral-initiated Features Exchange"
589	depends on BT_CTLR_PER_INIT_FEAT_XCHG_SUPPORT
590	default y
591	help
592	  Enable support for Bluetooth v4.1 Peripheral-initiated Features Exchange
593	  feature in the Controller.
594
595config BT_CTLR_LE_PING
596	bool "LE Ping"
597	depends on BT_CTLR_LE_ENC
598	default y
599	help
600	  Enable support for Bluetooth v4.1 LE Ping feature in the Controller.
601
602config BT_CTLR_DATA_LENGTH
603	# Hidden option to enable support for Bluetooth v4.2 LE Data Length
604	# Update procedure in the Controller.
605	bool
606	depends on BT_DATA_LEN_UPDATE && BT_CTLR_DATA_LEN_UPDATE_SUPPORT
607	default y
608
609config BT_CTLR_DATA_LENGTH_MAX
610	int "Maximum data length supported"
611	depends on BT_CTLR_DATA_LENGTH
612	default BT_BUF_ACL_RX_SIZE if BT_BUF_ACL_RX_SIZE <= 251
613	default 27
614	range 27 BT_BUF_ACL_RX_SIZE if BT_BUF_ACL_RX_SIZE < 251
615	range 27 251
616	help
617	  Set the maximum data length of PDU supported in the Controller.
618
619config BT_CTLR_PHY
620	# Hidden option to enable support for Bluetooth 5.0 PHY Update
621	# Procedure in the Controller.
622	bool
623	depends on BT_PHY_UPDATE && BT_CTLR_PHY_UPDATE_SUPPORT
624	select BT_CTLR_EXT_REJ_IND
625	default y
626
627config BT_CTLR_MIN_USED_CHAN
628	bool "Minimum Number of Used Channels"
629	depends on BT_CTLR_MIN_USED_CHAN_SUPPORT
630	default y
631	help
632	  Enable support for Bluetooth 5.0 Minimum Number of Used Channels
633	  Procedure in the Controller.
634
635config BT_CTLR_SCA_UPDATE
636	bool "Sleep Clock Accuracy Update procedure"
637	depends on BT_SCA_UPDATE && BT_CTLR_SCA_UPDATE_SUPPORT
638	default y if BT_CTLR_CONN_ISO
639	help
640	  Enable support for Bluetooth 5.1 Sleep Clock Accuracy
641	  Update procedure in the Controller.
642
643config BT_CTLR_CONN_RSSI
644	bool "Connection RSSI"
645	depends on BT_CTLR_CONN_RSSI_SUPPORT
646	default y if BT_HCI_RAW
647	help
648	  Enable connection RSSI measurement.
649
650config BT_CTLR_LE_POWER_CONTROL
651	bool "LE Power Control Request Feature"
652	depends on BT_CTLR_LE_POWER_CONTROL_SUPPORT
653	default y if BT_TRANSMIT_POWER_CONTROL
654	help
655	  Enable support for LE Power Control Request feature that is defined in the
656	  Bluetooth Core specification, Version 5.4 | Vol 6, Part B, Section 4.6.31.
657
658config BT_CTLR_LE_PATH_LOSS_MONITORING
659	bool "LE Path Loss Monitoring Feature"
660	depends on BT_CTLR_LE_PATH_LOSS_MONITORING_SUPPORT
661	default y if BT_PATH_LOSS_MONITORING
662	help
663	  Enable support for LE Path Loss Monitoring feature that is defined in the
664	  Bluetooth Core specification, Version 5.4 | Vol 6, Part B, Section 4.6.32.
665
666endif # BT_CONN
667
668config BT_CTLR_FILTER_ACCEPT_LIST
669	bool "Filter Accept List Support"
670	default y if BT_HCI_RAW || BT_FILTER_ACCEPT_LIST
671	help
672	  Enable support for controller Filter Accept List feature
673
674config BT_CTLR_PRIVACY
675	bool "LE Controller-based Privacy"
676	depends on BT_CTLR_PRIVACY_SUPPORT
677	select BT_CTLR_FILTER_ACCEPT_LIST if BT_LL_SW_SPLIT
678	select BT_RPA
679	default y if BT_HCI_RAW || BT_SMP
680	help
681	  Enable support for Bluetooth v4.2 LE Controller-based Privacy feature
682	  in the Controller.
683
684config BT_CTLR_FAL_SIZE
685	int "LE Controller-based Privacy Accept List size"
686	depends on BT_CTLR_FILTER_ACCEPT_LIST
687	default 8
688	range 1 8  if  (SOC_COMPATIBLE_NRF || SOC_OPENISA_RV32M1)
689	range 1 16 if !(SOC_COMPATIBLE_NRF || SOC_OPENISA_RV32M1)
690	help
691	  Set the size of the Filter Accept List for LE Controller-based Privacy.
692	  On nRF5x-based controllers, the hardware imposes a limit of 8 devices.
693	  On OpenISA-based controllers, the hardware imposes a limit of 8 devices.
694
695config BT_CTLR_RL_SIZE
696	int "LE Controller-based Privacy Resolving List size"
697	depends on BT_CTLR_PRIVACY
698	default 8
699	range 1 8 if SOC_COMPATIBLE_NRF
700	range 1 8 if SOC_OPENISA_RV32M1
701	help
702	  Set the size of the Resolving List for LE Controller-based Privacy.
703	  On nRF5x-based controllers, the hardware imposes a limit of 8 devices.
704	  On OpenISA-based controllers, the hardware imposes a limit of 8 devices.
705
706config BT_CTLR_EXT_SCAN_FP
707	bool "LE Extended Scanner Filter Policies"
708	depends on BT_OBSERVER && BT_CTLR_EXT_SCAN_FP_SUPPORT
709	default y
710	help
711	  Enable support for Bluetooth v4.2 LE Extended Scanner Filter Policies
712	  in the Controller.
713
714config BT_CTLR_PHY_2M
715	bool "2Mbps PHY Support"
716	depends on (BT_CTLR_PHY || BT_CTLR_ADV_EXT) && BT_CTLR_PHY_2M_SUPPORT
717	default y
718	help
719	  Enable support for Bluetooth 5.0 2Mbps PHY in the Controller.
720
721config BT_CTLR_PHY_CODED
722	bool "Coded PHY Support"
723	depends on (BT_CTLR_PHY || BT_CTLR_ADV_EXT) && BT_CTLR_PHY_CODED_SUPPORT
724	default y if BT_HCI_RAW
725	help
726	  Enable support for Bluetooth 5.0 Coded PHY in the Controller.
727
728config BT_CTLR_CHAN_SEL_2
729	bool "Channel Selection Algorithm #2"
730	depends on (BT_CONN || (BT_BROADCASTER && BT_CTLR_ADV_EXT) || BT_CTLR_ADV_PERIODIC || BT_CTLR_SYNC_PERIODIC) && BT_CTLR_CHAN_SEL_2_SUPPORT
731	default y
732	help
733	  Enable support for Bluetooth 5.0 LE Channel Selection Algorithm #2 in
734	  the Controller.
735
736config BT_CTLR_ADV_EXT
737	bool "LE Advertising Extensions"
738	depends on BT_CTLR_ADV_EXT_SUPPORT
739	select BT_CTLR_CHAN_SEL_2 if BT_LL_SW_SPLIT && BT_BROADCASTER
740	select BT_CTLR_SCAN_REQ_NOTIFY if BT_LL_SW_SPLIT && BT_BROADCASTER
741	default y if BT_EXT_ADV
742	help
743	  Enable support for Bluetooth 5.0 LE Advertising Extensions in the
744	  Controller.
745
746if BT_CTLR_ADV_EXT
747
748config BT_CTLR_ADV_SET
749	int "LE Advertising Extensions Sets"
750	depends on BT_BROADCASTER
751	range 1 64
752	default BT_EXT_ADV_MAX_ADV_SET if BT_EXT_ADV
753	help
754	  Maximum supported advertising sets.
755
756config BT_CTLR_ADV_INTERVAL_MAX
757	hex "Primary Advertising Interval Maximum"
758	depends on BT_BROADCASTER
759	range 0x000020 0x004000 if BT_LL_SW_SPLIT
760	range 0x000020 0xFFFFFF
761	default 0x004000 if BT_LL_SW_SPLIT
762	default 0xFFFFFF
763	help
764	  Supported Primary Advertising Interval Maximum value.
765	  Bluetooth Core Specification v5.3 permitted range is 0x000020 to
766	  0xFFFFFF in 0.625 ms units.
767
768config BT_CTLR_ADV_DATA_LEN_MAX
769	int "Maximum Advertising Data Length"
770	depends on BT_BROADCASTER
771	range 31 191 if BT_LL_SW_SPLIT && !BT_CTLR_ADV_DATA_CHAIN
772	range 31 1650
773	help
774	  Maximum Extended Advertising Data Length.
775
776config BT_CTLR_ADV_PERIODIC
777	bool "LE Periodic Advertising in Advertising State"
778	depends on BT_BROADCASTER && BT_CTLR_ADV_PERIODIC_SUPPORT
779	select BT_CTLR_CHAN_SEL_2
780	default y if BT_PER_ADV
781	help
782	  Enable support for Bluetooth 5.0 LE Periodic Advertising in the
783	  Controller.
784
785config BT_CTLR_ADV_PERIODIC_RSP
786	bool "LE Periodic Advertising with Responses in Advertising State"
787	depends on BT_BROADCASTER && BT_CTLR_ADV_PERIODIC_RSP_SUPPORT
788	select BT_CTLR_CHAN_SEL_2
789	default y if BT_PER_ADV_RSP
790	help
791	  Enable support for Bluetooth 5.4 LE Periodic Advertising with
792	  Responses in the Controller.
793
794config BT_CTLR_ADV_EXT_CODING_SELECTION
795	bool "Advertising Coding Selection support"
796	depends on BT_CTLR_PHY_CODED && BT_CTLR_ADV_EXT_CODING_SELECTION_SUPPORT
797	select BT_CTLR_SET_HOST_FEATURE if BT_OBSERVER
798	default y if BT_EXT_ADV_CODING_SELECTION
799	help
800	  Enable support for Bluetooth 6.0 Advertising Coding Selection
801	  in the Controller.
802
803if BT_CTLR_ADV_PERIODIC
804
805config BT_CTLR_ADV_PERIODIC_ADI_SUPPORT
806	bool "Periodic Advertising ADI support"
807	default y
808	help
809	  Enable support for adding AdvDataInfo in Periodic Advertising PDUs.
810
811config BT_CTLR_ADV_PERIODIC_INTERVAL_MAX
812	hex "Periodic Advertising Interval Maximum"
813	range 0x0006 0x2000 if BT_LL_SW_SPLIT
814	range 0x0006 0xFFFF
815	default 0x2000 if BT_LL_SW_SPLIT
816	default 0xFFFF
817	help
818	  Supported Periodic Advertising Interval Maximum value.
819	  Bluetooth Core Specification v5.3 permitted range is 0x0006 to
820	  0xFFFF in 1.25 ms units.
821
822endif # BT_CTLR_ADV_PERIODIC
823
824config BT_CTLR_SYNC_PERIODIC
825	bool "LE Periodic Advertising in Synchronization State"
826	depends on BT_OBSERVER && BT_CTLR_SYNC_PERIODIC_SUPPORT
827	select BT_CTLR_CHAN_SEL_2
828	default y if BT_PER_ADV_SYNC
829	help
830	  Enable support for Bluetooth 5.0 LE Periodic Advertising in
831	  Synchronization state in the Controller.
832
833config BT_CTLR_SYNC_PERIODIC_RSP
834	bool "LE Periodic Advertising with Responses in Synchronization State"
835	depends on BT_OBSERVER && BT_CTLR_SYNC_PERIODIC_RSP_SUPPORT
836	select BT_CTLR_CHAN_SEL_2
837	default y if BT_PER_ADV_SYNC_RSP
838	help
839	  Enable support for Bluetooth 5.4 LE Periodic Advertising with
840	  Responses in Synchronization state in the Controller.
841
842if BT_CTLR_SYNC_PERIODIC
843
844config BT_CTLR_SYNC_PERIODIC_ADV_LIST
845	bool "LE Periodic Advertiser List support"
846	default y
847	help
848	  Enable support for LE Periodic Advertiser List support.
849
850config BT_CTLR_SYNC_PERIODIC_ADV_LIST_SIZE
851	int "LE Periodic Advertiser List size"
852	depends on BT_CTLR_SYNC_PERIODIC_ADV_LIST
853	range 1 $(UINT8_MAX)
854	default 8
855	help
856	  Set Periodic Advertiser List size, this will be return in the HCI LE
857	  Read Periodic Advertiser List Command.
858
859config BT_CTLR_SYNC_PERIODIC_ADI_SUPPORT
860	bool "Periodic Advertising Sync with ADI support (duplicate filtering)"
861	default y
862	help
863	  Enable support for duplicate filtering using AdvDataInfo present in
864	  Periodic Advertising PDUs.
865
866config BT_CTLR_SYNC_PERIODIC_CTE_TYPE_FILTERING
867	bool "LE Periodic Advertiser filtering by CTE type"
868	default y
869	help
870	  Enable filtering of periodic advertisements depending on type of
871	  Constant Tone Extension.
872
873config BT_CTLR_SYNC_TRANSFER_RECEIVER
874	bool "Periodic Advertising Sync Transfer receiver"
875	depends on BT_CTLR_SYNC_TRANSFER_RECEIVER_SUPPORT
876	default BT_PER_ADV_SYNC_TRANSFER_RECEIVER
877	help
878	  Enable support for the Periodic Advertising Sync Transfer control procedure
879	  as a receiver of the LL_PERIODIC_SYNC_IND. See Core_v5.3, Vol 6, Part B,
880	  Section 5.1.13
881
882endif # BT_CTLR_SYNC_PERIODIC
883
884config BT_CTLR_SYNC_TRANSFER_SENDER
885	bool "Periodic Advertising Sync Transfer sender"
886	depends on BT_CTLR_SYNC_TRANSFER_SENDER_SUPPORT
887	select BT_TICKER_LAZY_GET if BT_LL_SW_SPLIT
888	default BT_PER_ADV_SYNC_TRANSFER_SENDER
889	help
890	  Enable support for the Periodic Advertising Sync Transfer control procedure
891	  as a transmitter of the LL_PERIODIC_SYNC_IND. See Core_v5.3, Vol 6, Part B,
892	  Section 5.1.13
893
894config BT_CTLR_ADV_ISO
895	bool "LE Broadcast Isochronous Channel advertising" if !BT_LL_SW_SPLIT
896	depends on BT_ISO_BROADCASTER && BT_CTLR_ADV_ISO_SUPPORT
897	select BT_CTLR_ADV_PERIODIC
898	select BT_CTLR_SET_HOST_FEATURE
899	select BT_CTLR_ADV_ISO_SEQUENTIAL if !BT_CTLR_ADV_ISO_INTERLEAVED
900	default y if BT_ISO_BROADCASTER
901	help
902	  Enable support for Bluetooth 5.2 LE Isochronous Advertising in the
903	  Controller.
904
905config BT_CTLR_ADV_ISO
906	bool "LE Broadcast Isochronous Channel advertising (Split Link Layer) [EXPERIMENTAL]" if BT_LL_SW_SPLIT
907	select EXPERIMENTAL if BT_LL_SW_SPLIT
908
909config BT_CTLR_ADV_ISO_SEQUENTIAL
910	bool "LE Broadcast Isochronous Channel advertising sequential packing"
911	depends on BT_CTLR_ADV_ISO
912
913config BT_CTLR_ADV_ISO_INTERLEAVED
914	bool "LE Broadcast Isochronous Channel advertising interleaved packing"
915	depends on BT_CTLR_ADV_ISO
916
917config BT_CTLR_SYNC_ISO
918	bool "LE Broadcast Isochronous Channel advertising sync" if !BT_LL_SW_SPLIT
919	depends on BT_ISO_SYNC_RECEIVER && BT_CTLR_SYNC_ISO_SUPPORT
920	select BT_CTLR_SYNC_PERIODIC
921	select BT_CTLR_SET_HOST_FEATURE
922	select BT_CTLR_SYNC_ISO_SEQUENTIAL if !BT_CTLR_SYNC_ISO_INTERLEAVED
923	default y if BT_ISO_SYNC_RECEIVER
924	help
925	  Enable support for Bluetooth 5.2 LE Isochronous Advertising sync in
926	  the Controller.
927
928config BT_CTLR_SYNC_ISO
929	bool "LE Broadcast Isochronous Channel advertising sync (Split Link Layer) [EXPERIMENTAL]" if BT_LL_SW_SPLIT
930	select EXPERIMENTAL if BT_LL_SW_SPLIT
931
932config BT_CTLR_SYNC_ISO_SEQUENTIAL
933	bool "LE Broadcast Isochronous Channel advertising sync sequential packing"
934	depends on BT_CTLR_SYNC_ISO
935	default y
936
937config BT_CTLR_SYNC_ISO_INTERLEAVED
938	bool "LE Broadcast Isochronous Channel advertising sync interleaved packing"
939	depends on BT_CTLR_SYNC_ISO
940	default y
941
942config BT_CTLR_BROADCAST_ISO
943	bool
944	default BT_CTLR_ADV_ISO || BT_CTLR_SYNC_ISO
945
946config BT_CTLR_BROADCAST_ISO_ENC
947	bool
948	depends on BT_CTLR_BROADCAST_ISO_ENC_SUPPORT && BT_CTLR_BROADCAST_ISO
949	select BT_CRYPTO if BT_LL_SW_SPLIT
950	default y
951
952config BT_CTLR_ADV_ISO_SET
953	int "LE Isochronous Channel advertising sets"
954	depends on BT_CTLR_ADV_ISO
955	range 1 32
956	default BT_ISO_MAX_BIG
957	help
958	  Maximum supported advertising sets.
959
960config BT_CTLR_ADV_ISO_STREAM_MAX
961	int "Maximum supported Broadcast ISO Streams per Broadcast ISO group"
962	depends on BT_CTLR_ADV_ISO
963	range 1 31
964	help
965	  Maximum supported Broadcast ISO Streams per Broadcast ISO group.
966
967config BT_CTLR_ADV_ISO_STREAM_COUNT
968	int "Maximum Broadcast ISO Streams"
969	depends on BT_CTLR_ADV_ISO
970	range BT_CTLR_ADV_ISO_STREAM_MAX 64
971	default BT_ISO_MAX_CHAN
972	help
973	  Maximum Broadcast ISO Streams supported in the Controller across
974	  all Broadcast ISO groups.
975
976config BT_CTLR_ADV_ISO_PDU_LEN_MAX
977	int "Maximum Broadcast Isochronous Channel PDU Length"
978	depends on BT_CTLR_ADV_ISO
979	range 1 251
980	default 251
981	help
982	  Maximum Broadcast Isochronous Channel PDU Length.
983
984config BT_CTLR_SCAN_SYNC_ISO_SET
985	int "LE ISO Broadcast Isochronous Groups Sync Sets"
986	depends on BT_CTLR_SYNC_ISO
987	range 1 64
988	default BT_ISO_MAX_BIG
989	help
990	  Maximum supported broadcast isochronous groups (BIGs) sync sets.
991
992config BT_CTLR_SYNC_ISO_STREAM_MAX
993	int "Maximum supported ISO Synchronized Receiver Streams per Broadcast ISO group"
994	depends on BT_CTLR_SYNC_ISO
995	range 1 31
996	help
997	  Maximum supported ISO Synchronized Receiver Streams per Broadcast ISO
998	  group.
999
1000config BT_CTLR_SYNC_ISO_STREAM_COUNT
1001	int "Maximum ISO Synchronized Receiver Streams"
1002	depends on BT_CTLR_SYNC_ISO
1003	range BT_CTLR_SYNC_ISO_STREAM_MAX 64
1004	default BT_ISO_MAX_CHAN
1005	help
1006	  Maximum ISO Synchronized Receiver Streams supported in the
1007	  Controller across all Broadcast ISO groups.
1008
1009config BT_CTLR_SYNC_ISO_PDU_LEN_MAX
1010	int "Maximum Synchronized Isochronous Channel PDU Length"
1011	depends on BT_CTLR_SYNC_ISO
1012	range 251 251 if BT_HCI_RAW
1013	range 1 251
1014	default 251
1015	help
1016	  Maximum Synchronized Receiver Isochronous Channel PDU Length.
1017
1018endif # BT_CTLR_ADV_EXT
1019
1020config BT_CTLR_SET_HOST_FEATURE
1021	bool "LE Set Host Feature Command" if !BT_LL_SW_SPLIT
1022	help
1023	  Enables optional LE Set Host Feature Command
1024
1025config BT_CTLR_SET_HOST_FEATURE
1026	bool "LE Set Host Feature Command (Split Link Layer) [EXPERIMENTAL]" if BT_LL_SW_SPLIT
1027	select EXPERIMENTAL if BT_LL_SW_SPLIT
1028
1029config BT_CTLR_CENTRAL_ISO
1030	bool "LE Connected Isochronous Stream Central" if !BT_LL_SW_SPLIT
1031	depends on BT_CTLR_CENTRAL_ISO_SUPPORT && BT_ISO_CENTRAL
1032	default y if BT_ISO_CENTRAL
1033	help
1034	  Enable support for Bluetooth 5.2 LE Connected Isochronous Stream
1035	  Central role in the Controller.
1036
1037config BT_CTLR_CENTRAL_ISO
1038	bool "LE Connected Isochronous Stream Central (Split Link Layer) [EXPERIMENTAL]" if BT_LL_SW_SPLIT
1039	depends on BT_CTLR_CENTRAL_ISO_SUPPORT && BT_ISO_CENTRAL
1040	default y if BT_ISO_CENTRAL
1041	select BT_CTLR_SET_HOST_FEATURE
1042	select EXPERIMENTAL if BT_LL_SW_SPLIT
1043
1044config BT_CTLR_PERIPHERAL_ISO
1045	bool "LE Connected Isochronous Stream Peripheral" if !BT_LL_SW_SPLIT
1046	depends on BT_CTLR_PERIPHERAL_ISO_SUPPORT && BT_ISO_PERIPHERAL
1047	default y if BT_ISO_PERIPHERAL
1048	help
1049	  Enable support for Bluetooth 5.2 LE Connected Isochronous Stream
1050	  Peripheral role in the Controller.
1051
1052config BT_CTLR_PERIPHERAL_ISO
1053	bool "LE Connected Isochronous Stream Peripheral (Split Link Layer) [EXPERIMENTAL]" if BT_LL_SW_SPLIT
1054	depends on BT_CTLR_PERIPHERAL_ISO_SUPPORT && BT_ISO_PERIPHERAL
1055	default y if BT_ISO_PERIPHERAL
1056	select BT_CTLR_SET_HOST_FEATURE
1057	select EXPERIMENTAL if BT_LL_SW_SPLIT
1058
1059config BT_CTLR_CONN_ISO
1060	bool
1061	default BT_CTLR_CENTRAL_ISO || BT_CTLR_PERIPHERAL_ISO
1062
1063config BT_CTLR_CONN_ISO_STREAMS
1064	int "LE Connected Isochronous Streams"
1065	depends on BT_CTLR_CONN_ISO
1066	range 1 64
1067	default BT_ISO_MAX_CHAN
1068	help
1069	  Maximum supported total number of CISes.
1070
1071config BT_CTLR_CONN_ISO_GROUPS
1072	int "LE Connected Isochronous Groups"
1073	depends on BT_CTLR_CONN_ISO
1074	range 1 240
1075	default BT_ISO_MAX_CIG
1076	help
1077	  Maximum supported CIGs.
1078
1079config BT_CTLR_CONN_ISO_STREAMS_PER_GROUP
1080	int "LE Connected Isochronous Streams per Group"
1081	depends on BT_CTLR_CONN_ISO
1082	range 1 31
1083	default 2
1084	help
1085	  Maximum supported CISes per CIG.
1086
1087config BT_CTLR_CONN_ISO_PDU_LEN_MAX
1088	int "Maximum Connected Isochronous Channel PDU Length"
1089	depends on BT_CTLR_CONN_ISO
1090	range 251 251 if BT_HCI_RAW
1091	range 1 251
1092	default 251
1093	help
1094	  Maximum Connected Isochronous Channel PDU Length.
1095
1096config BT_CTLR_ISO_TX_SDU_LEN_MAX
1097	int "Maximum Isochronous Channel Transmit SDU Length"
1098	depends on BT_CTLR_ADV_ISO || BT_CTLR_CONN_ISO
1099	range 1 4095
1100	default 1
1101	help
1102	  Maximum Isochronous Channel Transmit SDU Length.
1103
1104config BT_CTLR_CONN_ISO_STREAMS_MAX_NSE
1105	int "LE Connected Isochronous Streams max number of subevents"
1106	depends on BT_CTLR_CONN_ISO
1107	range 1 31
1108	default 31
1109	help
1110	  Maximum number of CIS subevents.
1111
1112config BT_CTLR_CONN_ISO_STREAMS_MAX_FT
1113	int "LE Connected Isochronous Streams max flush timeout"
1114	depends on BT_CTLR_CONN_ISO
1115	range 1 $(UINT8_MAX)
1116	default $(UINT8_MAX)
1117	help
1118	  Maximum number of CIS flush timeout events.
1119
1120config BT_CTLR_ISO
1121	bool
1122	default BT_CTLR_BROADCAST_ISO || BT_CTLR_CONN_ISO
1123
1124config BT_CTLR_READ_ISO_LINK_QUALITY
1125	bool "LE Read ISO Link Quality"
1126	depends on BT_CTLR_READ_ISO_LINK_QUALITY_SUPPORT
1127	depends on BT_CTLR_SYNC_ISO || BT_CTLR_CONN_ISO
1128	help
1129	  Enable support for LE Read ISO Link Quality command.
1130
1131config BT_CTLR_SMI_RX
1132	bool "Stable modulation index - Receiver"
1133	depends on BT_CTLR_SMI_SUPPORT
1134	help
1135	  Enable support for Bluetooth 5.0 SMI RX in the Controller.
1136
1137config BT_CTLR_SMI_TX
1138	bool "Stable modulation index - Transmitter"
1139	depends on BT_CTLR_SMI_SUPPORT
1140	help
1141	  Enable support for Bluetooth 5.0 SMI TX in the Controller.
1142
1143config BT_CTLR_SMI_TX_SETTING
1144	bool "Stable modulation index - Transmitter as setting"
1145	depends on BT_CTLR_SMI_TX && BT_CTLR_SETTINGS
1146	help
1147	  Enable support for Bluetooth 5.0 SMI TX through a system setting.
1148
1149config BT_CTLR_HCI_CODEC_AND_DELAY_INFO
1150	bool "Codecs and controller delay information commands"
1151	depends on BT_CTLR_HCI
1152	help
1153	  Enable HCI commands to read information about supported
1154	  codecs, codec capabilities, and controller delay.
1155
1156config BT_CTLR_SUBRATING
1157	bool "LE Connection Subrating"
1158	depends on BT_CTLR_SUBRATING_SUPPORT
1159	select BT_CTLR_SET_HOST_FEATURE
1160	default y if BT_SUBRATING
1161	help
1162	  Enable support for Bluetooth v5.3 LE Connection Subrating
1163	  in the Controller.
1164
1165config BT_CTLR_FRAME_SPACE_UPDATE
1166	bool "Frame Space Update"
1167	depends on BT_CTLR_FRAME_SPACE_UPDATE_SUPPORT
1168	default y if BT_FRAME_SPACE_UPDATE
1169	help
1170	  Enable support for Bluetooth 6.0 Frame Space Update
1171	  in the Controller.
1172
1173config BT_CTLR_CHANNEL_SOUNDING
1174	bool "Channel Sounding support"
1175	depends on BT_CTLR_CHANNEL_SOUNDING_SUPPORT
1176	select BT_CTLR_SET_HOST_FEATURE
1177	default y if BT_CHANNEL_SOUNDING
1178	help
1179	  Enable support for Bluetooth 6.0 Channel Sounding in the
1180	  Controller.
1181
1182config BT_CTLR_EXTENDED_FEAT_SET
1183	bool "LL Extended Feature Set support"
1184	depends on BT_CTLR_EXTENDED_FEAT_SET_SUPPORT
1185	default y if BT_LE_EXTENDED_FEAT_SET
1186	help
1187	  Enable support for Bluetooth 6.0 LL Extended Feature Set
1188	  in the Controller.
1189
1190config BT_CTLR_SHORTER_CONNECTION_INTERVALS
1191	bool "Shorter Connection Intervals"
1192	depends on BT_CTLR_SHORTER_CONNECTION_INTERVALS_SUPPORT
1193	depends on BT_CTLR_EXTENDED_FEAT_SET
1194	depends on BT_CTLR_SUBRATING
1195	select BT_CTLR_SET_HOST_FEATURE
1196	default y if BT_SHORTER_CONNECTION_INTERVALS
1197	help
1198	  Enable support for Bluetooth 6.2 Shorter Connection Intervals
1199	  in the controller.
1200
1201rsource "Kconfig.df"
1202rsource "Kconfig.ll_sw_split"
1203rsource "Kconfig.dtm"
1204
1205config BT_CTLR_ASSERT_OPTIMIZE_FOR_SIZE_SUPPORT
1206	bool
1207
1208config BT_CTLR_ASSERT_DEBUG
1209	bool "Development asserts"
1210	default y
1211	help
1212	  This option enables development asserts used for code coverage.
1213
1214	  The Controller will continue to function without memory leak or corruption with these
1215	  assertion checks disabled. Example, run-time mis-aligned memory access etc. which do
1216	  otherwise implicitly cause CPU fault during development testing. But these type of
1217	  asserted are essentially required for debugging, code and unit test coverage during
1218	  development cycle.
1219
1220config BT_CTLR_ASSERT_HANDLER
1221	bool "Application Defined Assertion Handler"
1222	help
1223	  This option enables an application-defined sink for the
1224	  controller assertion mechanism. This must be defined in
1225	  application code as void \"bt_ctlr_assert_handle(char \*, int)\"
1226	  and will be invoked whenever the controller code encounters
1227	  an unrecoverable error.
1228
1229config BT_CTLR_ASSERT_OPTIMIZE_FOR_SIZE
1230	bool "Assertions optimized for code size"
1231	depends on BT_CTLR_ASSERT_OPTIMIZE_FOR_SIZE_SUPPORT
1232	default y
1233	help
1234	  Optimize Controller assertion check for code size.
1235
1236	  Example, reduces assertion check code size for ARM Cortex-M CPUs by using the undefined
1237	  instruction exception.
1238	  `arm-none-eabi-addr2line` commandline can be used to get the source file and line number
1239	  from the program counter value.
1240
1241config BT_CTLR_VS_SCAN_REQ_RX
1242	bool "Use scan request reporting"
1243	depends on BT_HCI_VS && !BT_CTLR_ADV_EXT
1244	select BT_CTLR_SCAN_REQ_NOTIFY
1245	help
1246	  Enables usage of VS Scan Request Reports Command and Scan Request Received Event
1247
1248endif # HAS_BT_CTLR
1249
1250config BT_CTLR_DEBUG_PINS_CPUAPP
1251	bool "Bluetooth Controller Debug Pins"
1252	depends on BOARD_NRF5340DK_NRF5340_CPUAPP
1253	help
1254	  Route debug GPIO toggling for the Bluetooth Controller. Enable this when
1255	  using Bluetooth Controller Debug Pins in co-processor and the main
1256	  processor needs to setup and/or route the signals.
1257