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