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