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