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